Centos7+Nginx+PHP(PHP-fpm)基础web运行环境手工部署
准备工作
1.安装编译支持库
yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++
2.安装PCRE
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz tar -xzf pcre-8.40.tar.gz -C ./ cd pcre-8.40 ./configure --prefix=/usr/local/pcre make && make install cd ..
3.安装zlib
wget http://zlib.net/zlib-1.2.11.tar.gz tar -xzf zlib-1.2.11.tar.gz -C ./ cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make && make install cd ..
4.安装openssl
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz tar -xzf openssl-1.0.2k.tar.gz -C ./ #注意,这里不需要进行安装,后面步骤省略。
安装Nginx
官方下载http://Nginx.org/en/download.html
wget http://Nginx.org/download/Nginx-1.12.0.tar.gz tar -xzf Nginx-1.12.0.tar.gz -C ./ cd Nginx-1.12.0 ./configure \ --prefix=/usr/local/Nginx \ --sbin-path=/usr/local/Nginx/Nginx \ --conf-path=/usr/local/Nginx/Nginx.conf \ --pid-path=/usr/local/Nginx/Nginx.pid \ --with-http_ssl_module \ --with-pcre=/mnt/tools/pcre-8.40/ \ --with-zlib=/mnt/tools/zlib-1.2.11/ \ --with-openssl=/mnt/tools/openssl-1.0.2k/ #注:cpre、zlib、openssl等依赖包的路径是解压的源码路径不是安装后的路径。 make make install
安装PHP
安装依赖扩展
yum install -y libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-devel
官网下载http://PHP.net/releases/index.PHP
官网安装文档http://PHP.net/manual/zh/install.unix.Nginx.PHP
wget http://PHP.net/get/PHP-5.6.29.tar.gz/from/this/mirror -O PHP-5.6.29.tar.gz tar -xzf PHP-5.6.29.tar.gz -C ./ cd PHP-5.6.29 ./configure --prefix=/usr/local/PHP/PHP5.6.29/\ --with-config-file-path=/usr/local/PHP/PHP5.6.29/\ --with-libdir=lib64\ --enable-fpm\ --with-fpm-user=PHP-fpm\ --with-fpm-group=www\ --enable-MysqLnd\ --with-MysqL=MysqLnd\ --with-MysqLi=MysqLnd\ --with-pdo-MysqL=MysqLnd\ --enable-opcache\ --enable-pcntl\ --enable-mbstring\ --enable-soap\ --enable-zip\ --enable-calendar\ --enable-bcmath\ --enable-exif\ --enable-ftp\ --enable-intl\ --with-openssl\ --with-zlib\ --with-curl\ --with-gd\ --with-zlib-dir=/usr/lib\ --with-png-dir=/usr/lib\ --with-jpeg-dir=/usr/lib\ --with-gettext\ --with-mhash\ --with-ldap make && make install
配置文件
#创建配置文件 cd /usr/local/PHP/PHP-5.6.29/ cp PHP.ini-development /usr/local/PHP/PHP5.6.29/PHP.ini cp /usr/local/PHP/PHP5.6.29/etc/PHP-fpm.conf.default /usr/local/PHP/PHP5.6.29/etc/PHP-fpm.conf #复制PHP-fpm管理器脚本 cp sapi/fpm/init.d.PHP-fpm /etc/init.d/PHP-fpm
vi /usr/local/PHP/PHP5.6.29/PHP.ini #需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, #以避免遭受恶意脚本注入的攻击。 #定位到 cgi.fix_pathinfo= 并将其修改为如下所示: cgi.fix_pathinfo=0
创建PHP-fpm运行用户,可通过配置查看当前配置用户及组名。
vi /usr/local/etc/PHP-fpm.conf ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set,the default user's group ; will be used. user = PHP-fpm group = www #创建用户 useradd -s /sbin/nologin -M PHP-fpm #创建组 groupadd www
通过PHP-fpm脚本,启动PHP服务(停止、重启、重载)。
service PHP-fpm start service PHP-fpm restart service PHP-fpm stop service PHP-fpm reload
vi /usr/local/Nginx/Nginx.conf
修改默认的 location 块,使其支持 .PHP 文件:
location / { root html; index index.PHP index.html index.htm; }
下一步配置来保证对于 .PHP 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:
location ~ \.PHP$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; include fastcgi_params; }
测试运行
重启 Nginx
/usr/local/Nginx/Nginx -s stop /usr/local/Nginx/Nginx #注意前面应该启动 PHP-fpm ,如:service PHP-fpm start
echo "<?PHP PHPinfo(); ?>" > /usr/local/Nginx/html/index.PHP
访问 http://www.example.com已经成功。
本文注意细节已经在过程步骤中说明,留意查看。如有疑问,请在文末留言,谢谢。
更多关于Nginx、apache等web服务环境部署及生成环境部署优化,欢迎关注本博客文章。
续篇文章