文档章节

Ubuntu Server安装Nginx PHP fpm配置教程

Junn
 Junn
发布于 2014/06/24 18:02
字数 1084
阅读 678
收藏 0
点赞 0
评论 0

安装 Ubuntu Server

你可能听过别的 Linux 发行版, 但如果你是初学者, 并且对 Nginx + PHP 安装不了解, 我建议你安装 Ubuntu Server. 请到 Ubuntu 的官网下载最新版本的 ISO 文件, 我用的是 12.04.3-server-amd64.iso.

安装依赖软件

在 Ubuntu 下安装软件, 可以用 sudo aptitude 命令. 这是一个类似图形界面的软件, 启动后, 按 “/” 输入软件名进行搜索, 选中后按 “+”, 再按 “g” 即可安装.

需要安装的依赖软件包是: libpcre3-dev, libxml2-dev, zlib1g-dev.

源码安装 Nginx

编译 Nginx

Nginx 的官网下载最新版本的 Nginx 源码, 当前(2013-11-11)的最新版本是 1.5.6, 未来会有升级, 所以下载的 wget 只是一个示例, 你应该替换成最新的版本.

wget http://nginx.org/download/nginx-1.6.0.tar.gz
tar xzf nginx-1.6.0.tar.gz
cd nginx-1.6.0
./configure
make
sudo make install

Nginx 会被安装在 /usr/local/nginx 目录下.

启动 Nginx

sudo /usr/local/nginx/sbin/nginx

停止 Nginx

sudo /usr/local/nginx/sbin/nginx -s stop

验证 Nginx 是否已经启动

打开浏览器, 访问 http://127.0.0.1/ 看看网页是否能打开. 如果你在另一台机器上访问, 把 127.0.0.1 换成 Ubuntu 服务器的 IP 地址即可. 如下图

图

更多的 Nginx 配置文件的修改, 等我们安装完 PHP 之后再关心, 先使用默认的配置文件运行起来. 默认的配置文件在 /usr/local/nginx/conf/nginx.conf 文件.

源码安装 PHP fpm fastcgi

编译 PHP

同样, 到 PHP 的官网下载最新版本的 PHP 源码.

wget http://us1.php.net/get/php-5.5.5.tar.bz2/from/cn2.php.net/mirror
tar xjf mirror
cd php-5.5.5
./configure --enable-fpm
make
sudo make install

PHP 的可执行文件(php, php-cgi)会被安装到 /usr/local/bin 目录下. 配置文件是 /usr/local/lib/php.ini, 这个文件并不存储, 你需要自己创建.

验证 PHP 是否已经安装成功

php -v

上面的命令应该有版本信息输出.

创建 php.ini 配置文件

sudo cp php.ini-production /usr/local/lib/php.ini

不过, 现在你还用不上, 等用的时候再修改这个文件.

修改 Nginx 配置文件支持 PHP

编译 Nginx 的配置文件 /usr/local/nginx/conf/nginx.conf, 加入下面的内容. 原配置文件里有类似的内容, 你加在那段内容的紧跟后面即可.

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

然后重启 Nginx

sudo /usr/local/nginx/sbin/nginx -s reload

这时候, Nginx + PHP 还不能工作, 你还需要启动 php-cgi 进程.

启动 php-cgi

/usr/local/bin/php-cgi -b 9000

验证 Nginx + PHP 已经正常工作

首先, 你需要创建一个 PHP 脚本, 新建一个文件 /usr/local/nginx/html/index.php, 这个文件的内容只有一行:

<?php phpinfo();

然后修改它的文件属性

sudo chmod ugo+rwx -R /usr/local/nginx/html

然后, 用浏览器访问 http://127.0.0.1/index.php 你应该能看到 PHP 的信息, 如下图

图

用 fpm 方式启动 php-cgi 进程

刚才的一行命令虽然启动了 php-cgi, Nginx + PHP 也正常工作了, 但这不是正式环境的做法, 只是一种临时方法. 正式的生产环境一般用 fpm 方式启动 php-cgi 为守护进程.

php-fpm 程序安装在 /usr/local/sbin/php-fpm.

创建 php-fpm.conf

PHP 默认安装了一个 php-fpm.conf.default 的模板文件, 需要将它改名:

sudo cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

然后修改 /usr/local/etc/php-fpm.conf, 将

;pid = run/php-fpm.pid

前面的分号(注释)去掉.

创建 nobody 用户

sudo groupadd nobody
sudo useradd -g nobody nobody

启动和停止 php-fpm

# 启动
sudo /usr/local/sbin/php-fpm
# 停止
sudo kill `cat /usr/local/var/run/php-fpm.pid`

这时候, php-cgi 已经作为守护进程启动了.

单独编译安装 PHP 模块

上面编译的 PHP 可能没有包含一些你需要的模块, 不过别担心, 你可以不必重新编译整个 PHP, 而是只编译和安装缺少的那个模块. 这也是 PHP 模块化的好处. 下面以单独安装 PHP 的 sockets 模块为例.

进入你的 PHP 源码的 ext/sockets 目录. ext 目录是所有模块的总目录. 然后执行

/usr/local/bin/phpize
./configure
make
sudo cp modules/sockets.so /usr/local/lib/php/extensions/no-debug-non-zts-20121212/

然后修改 php.ini 配置文件, 找到

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

在其后面加上

extension=sockets.so

然后重启 php-fpm. 这样, sockets 模块就已经安装成功了.

© 著作权归作者所有

共有 人打赏支持
Junn
粉丝 145
博文 372
码字总数 288918
作品 0
海淀
高级程序员
Ubuntu/Debian上安装Nginx+php环境

  尽管Apache已经占据半片江山,但很多人仍然在寻找其他的方式去托管他们的站点,Apache不只是一个选择,其他很多优秀的服务器程序例如lighthttp和nginx也是不错的选择。本教程将要向您展现...

一曲忠臣的战歌 ⋅ 2015/05/15 ⋅ 0

初学者的 Linux 安装 Nginx PHP fpm 配置教程

网上的很多 Linux 操作系统下安装 Nginx + PHP 的教程都很老, 而且各种依赖, 对于初学者来说比较容易混淆, 所以, 我重新写了此篇博客, 用于介绍最简单的 Linux 下安装 Nginx + PHP 的方法. 此...

Yomut ⋅ 2016/12/22 ⋅ 0

如何在Ubuntu中安装nginx、mysql、php

最近工作中需要部署一些PHP的程序,通过这篇文章记录一下部署过程。 关于Lemp LEMP 是一组实现web server的开源软件。 lemp是Linux,Nginx,MySQL,PHP的缩写,因为我平时喜欢Ubuntu所以加下...

caol ⋅ 2016/06/20 ⋅ 0

Mantis 迁移手记(Ubuntu Server 10.04 + Nginx 1.x + PHP-FPM 5.x + Mantis 1.2.8)

公司原来的Mantis在个人的机器上,现在购置了服务器,迁移到Linux系统中,以下是手记 1.MySQL安装配置 1.1.安装 $sudo apt-get install mysql-server 1.2.配置 $mysql -uroot -p 输入root密码...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Ubuntu下安装Naginx, PHP5(及PHP-FPM),MySQL

环境:ubuntu 12.0.4 LTSnginx(发音"engine x")是一个自由,开放源码,高性能的HTTP server。Nginx以稳定性,丰富的功能集,简单的配置,和低资源消耗而出名。本文将向你展示怎么在ubuntu 12...

雪之丞 ⋅ 2014/06/23 ⋅ 0

Ubuntu15.04下搭建LNMP环境 - 无需整理

親測 PHP查詢數據庫正常 LNMP是Linux+Nginx+MySQL+PHP的简称,是一套完整的PHP网站服务器架构环境。 所用Linux发行版为Ubuntu Gnome 15.04,所有需要的软件均使用Ubuntu自带apt源下载安装。 ...

鬼谷子灬 ⋅ 2016/03/20 ⋅ 0

Vagrant搭设ubuntu的LNMP环境

安装Vagrant和Virtualbox. 这个不多说, 安装完成两个软件后, 在一个空闲的硬盘分区中 mkdir ubuntu_lnmpvagrant init ubuntu/trusty64 打开vagrantfile打开这两个配置 config.vm.network "p...

夏诺风 ⋅ 2015/02/26 ⋅ 1

Ubuntu安装nginx php5-fpm mysql (lnmp环境搭建)

配置环境说明: 系统:ubuntu 12.04 32位 内存:512M 硬盘:20G 一、安装nginx 1:ubuntu因为安全策略,一般是禁用了root用户,所以每次执行命令时一般需要加上sudo去操作。为了方面后面其他...

度外网络 ⋅ 2012/09/26 ⋅ 0

WIN10 bash on ubuntu 初使用三:PHP7.1 + Nginx1.10

前言:由于我阿里云主机在编译PHP7.1 时,出现错误,无法成功编译;今在win10 下面编译安装 Nginx1.10 + PHP7.1 Nginx 下载 http://nginx.org/en/download.html PHP7.1 下载 http://php.net...

Per_O ⋅ 2016/12/23 ⋅ 0

新版TeamTalk完整部署教程

首 页 阅览室 馆友 我的图书馆 帐号 新版TeamTalk完整部署教程 2015-08-04 oskycar 原文链接 阅 2740 转 48 转藏到我的图书馆分享到微信新版TeamTalk部署教程 新版TeamTalk已经在2015年03月2...

andyhe91 ⋅ 2016/04/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部