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模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
php编程每天必学之验证码
Mar 03 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
php7新特性的理解和比较总结
Apr 14 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 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函数的常用方法及注意之处小结
2011/07/10 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php设计模式之单例模式代码
2016/06/11 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
Python实现随机爬山算法
2021/01/29 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
专科应届生求职信
2013/11/24 职场文书
简历里的自我评价范文
2014/02/24 职场文书
销售目标责任书
2014/07/23 职场文书
社区助残日活动总结
2014/08/29 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书