CentOS7.0下安装PHP5.6.30服务的教程详解


Posted in PHP onSeptember 29, 2018

关于php-fpm

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的。

PHP在 5.3.3 之后已经讲php-fpm写入php源码核心了。所以已经不需要另外下载了。

获取PHP下载地址

为什么选择5.6.30这个版本,因为学习,不是研究。诚然,7.0新增了很多PHP的新特性,性能上面也有些提升,如果是研究,倒是可以折腾一番,后面得空再讲7.0的版本以及如何在各个PHP版本之间切换。

打开php的官网:http://php.net/ ,查看php的版本列表

CentOS7.0下安装PHP5.6.30服务的教程详解

右击,复制链接地址,在远程主机登录,下载该软件(我选的是Australia的主机mirror下载的)

# wget http://au1.php.net/get/php-5.6.30.tar.gz/from/this/mirror

下载下来的是一个mirror文件,改成我们需要的文件名

#mv mirror php-5.6.30.tar.gz#tar zxvf php-5.6.30.tar.gz#cd php-5.6.30

配置安装

进入到目录,我们需要在安装的时候将安装目录配置到/usr/local/php/里

#./configure 
--prefix=/usr/local/php 
--with-curl 
--with-freetype-dir 
--with-gd 
--with-gettext 
--with-iconv-dir 
--with-kerberos 
--with-libdir=lib64 
--with-libxml-dir 
--with-MySQL 
--with-mysqli 
--with-openssl 
--with-pcre-regex 
--with-pdo-mysql 
--with-pdo-sqlite 
--with-pear
 --with-png-dir 
--with-xmlrpc 
--with-xsl 
--with-zlib 
--enable-fpm 
--enable-bcmath 
--enable-libxml 
--enable-inline-optimization 
--enable-gd-native-ttf 
--enable-mbregex 
--enable-mbstring 
--enable-opcache 
--enable-pcntl 
--enable-shmop 
--enable-soap 
--enable-sockets 
--enable-sysvsem 
--enable-xml 
--enable-zip

配置的过程中可能会报如下错误

错误1:

xml2-config not found. 
Please check your libxml2 installation.

解决办法

安装libxml2相关组件

#yum install libxml2#yum install libxml2-devel -y

错误2:

Please reinstall the libcurl 
distribution - 
easy.h 
should be in
 <curl-dir>/include/curl/

安装curl相关组件

#yum install curl curl-devel

错误3:

configure: error: png.h not found.

安装libpng相关组件

#yum install libpng#yum install libpng-devel

错误4:

freetype-config not found.

安装freetype相关组件

#yum install freetype-devel

错误5:

xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

安装libxslt相关组件

#yum install libxslt-devel

好的,当我们看到下面这句话的时候,说明你的php已经配置完成啦!

CentOS7.0下安装PHP5.6.30服务的教程详解

接下来我们只需要编译安装即可完成php的安装

#make && make install

看到这句话,表明安装完成!

CentOS7.0下安装PHP5.6.30服务的教程详解

为了保险起见,我们make test一把,看看是否真的成功了。

配置相关php.ini配置

首先我们需要配置的是php.ini这个文件

安装目录有2个文件:php.ini-development和php.ini-production

php.ini-production 线上版本使用

php.ini-development 开发版本使用

我们选择development进行配置

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

php-fpm配置

拷贝php-fpm配置文件

#cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf

拷贝启用文件

#cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm(已弃用,详细的见注1)

启动

#/etc/init.d/php-fpm

查看php是否启动成功

#ps aux | grep php

CentOS7.0下安装PHP5.6.30服务的教程详解

看到这些,表明你的php已经启动成功啦!

重启及关闭

#kill -9 进程号
#/etc/init.d/php-fpm

配置Nginx支持PHP

进入nginx主目录,/usr/local/nginx;

#cd /usr/local/nginx

进入配置目录

#cd conf

Nginx支持PHP需要修改nginx.conf

#vim nginx.conf

代开下面代码,让Nginx支持PHP,在server代码段里。

CentOS7.0下安装PHP5.6.30服务的教程详解

修改完,这段代码变为,红色部分为我们主机目录为/usr/www,需要修改fastcgi_param SCRIPT_FILENAME指向对应目录即可:

CentOS7.0下安装PHP5.6.30服务的教程详解

设置主目录设置为/usr/www。

CentOS7.0下安装PHP5.6.30服务的教程详解

注释掉root那行,新增一行:root /usr/www;

保存退出。

根据Nginx章的解释,我们重启Nginx服务。

#/etc/init.d/nginx restart

如果你没有按照我们在Nginx的方法配置,可以按照以下的方式重启Nginx服务

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

 重启成功!下面我们在/usr/www目录下添加一个新文件。

#vim /usr/www/phpinfo.php

插入以下内容

<?php phpinfo(); ?>

在浏览器中打开http://远程ip/phpinfo.php

CentOS7.0下安装PHP5.6.30服务的教程详解

看到这个页面,恭喜你,你的PHP已经安装配置完成。你可以在这个页面看到所有php依赖的组件,下一节我将和大家详细讲解一下这个页面,如果对本节有什么疑问的,欢迎在评论区和我交流讨论,有留言必回。^_^ 

设置php开机自启动与开启php服务便捷方式

上面的方法中,我在拷贝php-fpm的服务时出了问题,不应该直接将php-fpm的可执行文件拷贝到/etc/init.d/目录下去,应该将php给我们准备好的init.d.php-fpm。

#cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

将php-fpm服务添加到chkconfig列表

#chkconfig --add php-fpm

设置开机自启动

#chkconfig php-fpm on

以后重启和停止php的方式为

#service php-fpm start
#service php-fpm stop
#service php-fpm restart
#service php-fpm reload

上面是我的问题,请大家及时更正。

PHP 相关文章推荐
PHP动态图像的创建
Oct 09 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
供参考的 php 学习提高路线分享
Oct 23 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 #PHP
PHP从尾到头打印链表实例讲解
Sep 27 #PHP
实现php删除链表中重复的结点
Sep 27 #PHP
浅析php如何实现爬取数据原理
Sep 27 #PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 #PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 #PHP
PHP实现SMTP邮件的发送实例
Sep 27 #PHP
You might like
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
总结Python中逻辑运算符的使用
2015/05/13 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
优秀生推荐信范文
2013/11/28 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
融资合作协议书范本
2014/10/17 职场文书
2014年学生会工作总结
2014/11/07 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript