下载​nginx-1.10.3.tar.gz​​,​php-7.0.9.tar.gz​​。也可以去​nginx官网​​,​php官网​下载想要的版本。我选择nginx1.10.3稳定版和php7.0.9最新版。php源码包下载速度可能会很慢,建议使用迅雷等工具,下载完成后通过stfp工具把源码包上传到服务器上,为方便测试,我直接放置在root家目录下:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql


 

使用源码安装要确保服务器安装好gcc(编辑工具)和make(安装工具),若没安装可以执行命令安装:

# yum install gcc
# yum install make

 

安装ngix之前还需要安装好以下依赖工具:

# yum -y install pcre-devel openssl openssl-devel

 

解压php、nginx源码包:

# tar xvf php-7.0.9.tar.gz 
# tar xvf nginx-1.10.3.tar.gz

 

安装nginx,进入解压目录:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_php_02


 

编辑configure文件:

# ./configure --prefix=/usr/local/nginx

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_03


 

编译结束没有错误以后执行安装:

# make && make install

 

因为编译安装,并没使用yum,所以没法直接使用nginx命令了。

PS

启动:/usr/local/nginx/sbin/nginx
停止/重新加载:/usr/local/nginx/sbin/nginx -s stop(quit、reload)
验证配置文件是否合法:/usr/local/nginx/sbin/nginx -t
命令帮助:/usr/local/nginx/sbin/nginx -h

 

添加全局命令,把nginx绝对路径的执行命令通过软链接添加到系统bin目录下:

# ln -s /usr/local/nginx/sbin/nginx /bin/

 

测试全局命令,任意位置执行nginx命令:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_php_04


 

查看是否启动:

# ps -aux | grep nginx

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_05


 

浏览器测试,浏览器输入服务器公网ip:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_06


 

 


 

安装php7.0.9:

一并安装php7所需依赖库否则配置时会报错:

# yum -y install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype freetype-devel gd jpegsrc libmcrypt libpng libpng-devel libjpeg libjpeg-devel libxml2 libxml2-devel zlib curl curl-devel openssl  openssl-devel libxml2 libxml2-devel readline-devel libedit-devel pcre-devel

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_07


 

命令行执行命令,进行安装配置

# ./configure --prefix=/usr/local/php  --enable-bcmath  --enable-mbstring   --enable-mysqlnd  --enable-opcache  --enable-pcntl  --enable-xml  --enable-zip --with-libedit  --with-openssl  --with-zlib  --with-mysqli  --with-pdo-mysql --with-pear --enable-fpm --enable-bcmath  --enable-mbstring   --enable-mysqlnd  --enable-opcache  --enable-pcntl  --enable-xml  --enable-zip  --with-curl  --with-mysqli  --with-pdo-mysql

 

如果修改php安装后的路径,需要重新编译安装php,必须删除旧解压后的php安装包,重新解压编译安装才能生效

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc  --enable-bcmath  --enable-mbstring   --enable-mysqlnd  --enable-opcache  --enable-pcntl  --enable-xml  --enable-zip --with-libedit  --with-openssl  --with-zlib  --with-mysqli  --with-pdo-mysql --with-pear  --enable-fpm --enable-bcmath  --enable-mbstring   --enable-mysqlnd  --enable-opcache  --enable-pcntl  --enable-xml  --enable-zip  --with-curl  --with-mysqli  --with-pdo-mysql

 

PHP安装配置详解:

--prefix=/usr/local/php

指定 php 安装目录


--with-apxs2=/usr/local/apache/bin/apxs

整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块


--with-config-file-path=/usr/local/php/etc

指定php.ini位置


--with-MySQL=/usr/local/mysql

mysql安装目录,对mysql的支持


--with-mysqli=/usr/local/mysql/bin/mysql_config

mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。

--enable-safe-mode 打开安全模式

--enable-ftp 打开ftp的支持

--enable-zip 打开对zip的支持

--with-bz2 打开对bz2文件的支持

--with-jpeg-dir 打开对jpeg图片的支持

--with-png-dir 打开对png图片的支持

--with-freetype-dir 打开对freetype字体库的支持

--without-iconv 关闭iconv函数,种字符集间的转换

--with-libXML-dir 打开libxml2库的支持

--with-XMLrpc 打开xml-rpc的c语言

--with-zlib-dir 打开zlib库的支持

--with-gd 打开gd库的支持

--enable-gd-native-ttf 支持TrueType字符串函数库

--with-curl 打开curl浏览工具的支持

--with-curlwrappers 运用curl工具打开url流

--with-ttf 打开freetype1.*的支持,可以不加了

--with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件

--with-gettext 打开gnu 的gettext 支持,编码库用到

--with-pear 打开pear命令的支持,PHP扩展用的

--enable-calendar 打开日历扩展功能

--enable-mbstring 多字节,字符串的支持

--enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块

--enable-sockets 打开 sockets 支持

--enable-exif 图片的元数据支持

--enable-magic-quotes 魔术引用的支持

--disable-rpath 关闭额外的运行库文件

--disable-debug 关闭调试模式

--with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置

 

看到Thank you for use php表示配置成功,可以执行make来进行安装了:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_08


 

安装php7:

# make && make install

 

安装完毕:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_09


 

把php、php-fpm局部命令添加到系统全局命令中:

# ln -s /usr/local/php/bin/php /bin/
# ln -s /usr/local/php/sbin/php-fpm /sbin/

 

PHP安装是完成了,但是没找到配置文件,因为配置文件 php.ini需要自己从安装包中拷贝过来

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_10


centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_11


 

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_12


 

该把源码包中的php.ini拷贝到哪里呢?执行(# php -ini), Configuration File Path就是php.ini需要存放的位置:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_13


# cp ~/php-7.0.9/php.ini-development /usr/local/php/lib/php.ini

 

 

/usr/local/php/etc目录复制粘贴创建php-fpm.conf   

/usr/local/php/etc/php-fpm.d目录复制粘贴创建www.conf

centos7.2源码安装php7.0.9和nginx1.10.3服务器_php_14


 

*.conf 是php-fpm的配置文件,没有它启动php-fpm时候会报错

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_15


 

优化php-fpm配置:

# vim www.conf
pm.max_children = 30 //最大子进程 (默认是5个)
pm.start_servers = 10 //php-fpm启动起始进程数
pm.min_spare_servers = 10 //php-fpm的最小空闲进程数
pm.max_spare_servers = 24 //php-fpm的最大空闲进程数
pm.max_requests = 500 //所有子进程重启时间

 

 

解决 nginx报错open() “fastcgi_temp” failed (13: Permission denied)的解决办法

php输出流量过大时候会使用到fastcgi_temp,需要给这个目录设置权限,否则可能会报错:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_php_16

给fastcgi_temp设置用户权限: 

# chown -R daemon:root fastcgi_temp/

 

开启php-fpm

# /usr/local/php/sbin/php-fpm &

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_17


 

如果端口被占用,启动失败​

centos7.2源码安装php7.0.9和nginx1.10.3服务器_php_18



查看占端口应用,杀掉应用

# netstat -ntlp | grep 9000
# killall php-fpm


让nginx支持php扩展:(编辑nginx.conf)

打开这几行代码注释,把红线位置的/scripts改成项目源码存放的位置,根据实际情况,保存退出。

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_19



重启nginx服务器:

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

 

对应目录创建index.php文件测试:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_20


 

浏览器测试:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_nginx_21


 

测试全局命令php:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_22


 

测试全局命令php-fpm:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_mysql_23


 

设置nginx、php-fpm开机自动启动,编辑/etc/rc.local文件,添加nginx、php-fpm的启动命令到其中保存即可:

centos7.2源码安装php7.0.9和nginx1.10.3服务器_php_24


 

a