> CentOS > CentOS服务器 > 环境配置 >

Centos6.3编译安装nginx+php步骤

一个合格的程序员,至少应该是半个合格的运维工程师,对于系统的安装、常见问题处理、WebServer的安装和Web站点的部署、部署和运行过程中的常见问题排查,都要有相当的解决能力,这是我的一些见解。 

做了多年的Asp.net开发,自认对于IIS6/IIS7的部署和常见问题,都有一定的解决能力,但是转PHP以来,对Linux和其下的WebServer部署还没有一个完整的历程(之前都是基于公司的框架,没有用开源代码独立部署过),因此决定尝试一遍,先从nginx的部署开始吧。

第一步骤,编译安装nginx 

0、先确认已经安装了gcc编译器,执行gcc -v,如果安装了会返回版本信息,没装可以用: 

yum -y install gcc 

1、自然是下载源码包,最新版本在这里:http://nginx.org/en/download.html 
在centos命令行下,执行下面的命令下载(也可以下载好拷贝过去): 
wget http://nginx.org/download/nginx-1.9.4.tar.gz 


2、解压: 
tar zxvf nginx-1.9.4.tar.gz 


3、配置nginx 
cd nginx-1.9.4.tar.gz 
./configure –prefix=/home/work/nginx –with-http_stub_status_module 
注1:–prefix是nginx要安装到的路径,–with是要安装的模块,具体可以运行./configure –help 查看有效模块 
注2:如果配置过程中出错,要安装对应的模块,如: 
yum -y install pcre-devel 
yum -y install openssl openssl-devel 


4、编译和安装nginx 
make && make install 
完成后,在上面的安装路径下就会出现编译完成的nginx相关文件了 
/home/work/nginx/sbin/nginx 就是生成的可执行文件 
/home/work/nginx/conf/nginx.conf 就是默认的配置文件,比如listen表示web服务器端口 
/home/work/nginx/conf/mime.types 就是指定扩展名输出的ContentType 


5、启动/停止/重启nginx的3条命令: 
/home/work/nginx/sbin/nginx 
/home/work/nginx/sbin/nginx -s stop 
/home/work/nginx/sbin/nginx -s reload 
注1:如果启动报错:Permission denied,那是因为1024以下端口只能root使用 
注2:如果无法停止,可以用ps aux|grep nginx加上kill命令强制停止进程

第二步骤、编译安装php,官方参考:http://php.net/manual/zh/install.unix.php 


1、下载php源码,最新版本看这里:http://php.net/downloads.php,下载命令: 
wget http://cn2.php.net/get/php-5.6.13.tar.gz/from/this/mirror 



2、没得说,解压: 
tar zxvf php-5.6.13.tar.gz 


3、配置,这里找来的http://www.cnblogs.com/zxpo/p/3798983.html 

./configure –prefix=/home/work/php –with-config-file-path=/home/work/php –enable-inline-optimization –disable-debug –disable-rpath –enable-shared –enable-opcache –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-gettext –enable-mbstring –with-iconv –with-mcrypt –with-mhash –with-openssl –enable-bcmath –enable-soap –with-libxml-dir –enable-pcntl –enable-shmop –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-sockets –with-curl –with-zlib –enable-zip –with-bz2 –with-readline –without-sqlite3 –without-pdo-sqlite –with-pear 


注1:各种出错时,参考和安装: 
sudo yum install libxml2-devel 
sudo yum install openssl openssl-devel 
sudo yum install bzip2 bzip2-devel 
sudo yum -y install curl-devel 
sudo yum install readline-devel 



注2:由于版权的原因centos源不能安装libmcrypt-devel,因此要用第三方源,在root下执行: 
wget http://www.atomicorp.com/installers/atomic 
sh ./atomic 
yum install php-mcrypt libmcrypt libmcrypt-devel 



4、编译安装 
make && make install 



5、安装完成后,启动php-fpm,如果启动报错,可以加sudo试试 
/home/work/php/sbin/php-fpm 
注:记得先编辑/usr/local/php/etc/php-fpm.conf,修改运行账户: 
user = work 
group = work 


6、php-fpm启动后,编辑nginx.conf文件,添加:

location ~ \.php$ {
    root /home/work/app/webroot;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /home/work/app/webroot$fastcgi_script_name;
    include fastcgi_params;
}

7、重启nginx  /home/work/nginx/sbin/nginx -s reload  8、ok,打开web页测试吧

(责任编辑:IT)