一个合格的程序员,至少应该是半个合格的运维工程师,对于系统的安装、常见问题处理、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) |