很无语,CentOS居然php版本才5.1.6,很多开源的CMS无法安装。





查看php版本命令:
  #php -v
下面的命令是删除不干净的
  #yum remove php
因为使用这个命令以后再用
  #php -v
还是会看到有版本信息的。。。。。





 





必须强制删除,使用下面命令查看全部php软件包
  #rpm -qa|grep php
提示如下:
  #php-pdo-5.1.6-27.el5_5.3

#php-mysql-5.1.6-27.el5_5.3 #php-xml-5.1.6-27.el5_5.3 #php-cli-5.1.6-27.el5_5.3 #php-common-5.1.6-27.el5_5.3 #php-gd-5.1.6-27.el5_5.3

注意卸载要先卸载没有依赖的





pdo是mysql的依赖项;common是gd的依赖项;

例如:# rpm -e php-pdo-5.1.6-27.el5_5.3 error: Failed dependencies: php-pdo is needed by (installed) php-mysql-5.1.6-27.el5_5.3.i386

所以正确的卸载顺序是(卸载顺序很重要):
  # rpm -e php-mysql-5.1.6-27.el5_5.3

rpm -e php-pdo-5.1.6-27.el5_5.3

rpm -e php-xml-5.1.6-27.el5_5.3

rpm -e php-cli-5.1.6-27.el5_5.3

rpm -e php-gd-5.1.6-27.el5_5.3

rpm -e php-common-5.1.6-27.el5_5.3

再用
  # php -v
查看版本信息已经没有提示
## 关于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的版本列表





![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222135638429-399501886.png)





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

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

  </div>
  
  

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

  
  <div class="cnblogs_code">
    <div class="top-box hide">
      <div class="alert-info">
      </div>
    </div>
    
    ```
#mv mirror php-5.6.30.tar.gz
#tar zxvf php-5.6.30.tar.gz
#cd php-5.6.30

配置安装

进入到目录,我们需要在安装的时候将安装目录配置到/usr/local/php/里
<div class="top-box hide">
  <div class="alert-info">
  </div>
</div>

```

#./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

    
    <div class="cnblogs_code_toolbar">
      <span class="cnblogs_code_copy"><a title="复制代码">![复制代码](https://common.cnblogs.com/images/copycode.gif)</a></span>
    </div>
  </div>
  
  

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

  
  

    错误1  

  
  <div class="cnblogs_code">
    <div class="top-box hide">
      <div class="alert-info">
      </div>
    </div>
    
    ```
xml2-config not found. Please check your libxml2 installation.
解决办法





安装libxml2相关组件
``` #yum install libxml2 #yum install libxml2-devel -y ```
错误2:
```

/include/curl/" data-snippet-id=“ext.212df541b0fb06adb59198e5569a12d6” data-snippet-saved=“false” data-codota-status=“done”>Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

  </div>
  
  

    安装curl相关组件
  

  
  <div class="cnblogs_code">
    ```
#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:
```

= 1.1.0 distribution" data-snippet-id=“ext.c1578c4835ee681a52395d65c1c30f51” data-snippet-saved=“false” data-codota-status=“done”>xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

  </div>
  
  

    安装libxslt相关组件
  

  
  <div class="cnblogs_code">
    ```
#yum install libxslt-devel
好的,当我们看到下面这句话的时候,说明你的php已经配置完成啦!





![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222212310929-2087784236.png)





接下来我们只需要编译安装即可完成php的安装
``` #make && make install ```
看到这句话,表明安装完成!





![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222214326898-859959823.png)





为了保险起见,我们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

  </div>
  
  ### php-fpm配置
  
  

    拷贝php-fpm配置文件
  

  
  <div class="cnblogs_code">
    <div class="top-box hide">
      <div class="alert-info">
      </div>
    </div>
    
    ```
#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)

  </div>
  
  

    启动
  

  
  <div class="cnblogs_code">
    ```
#/etc/init.d/php-fpm
查看php是否启动成功
``` #ps aux | grep php ```
![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222220434788-885246487.png)





看到这些,表明你的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代码段里。





![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222221437929-431643452.png)





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





![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222222833320-1693195452.png)





&nbsp;





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





![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222222355632-1795566322.png)





注释掉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![](https://images2015.cnblogs.com/blog/465728/201702/465728-20170222223026976-871816997.png)





看到这个页面,恭喜你,你的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

  </div>
</div>

<div id="blog_post_info_block">
</div>

💬 评论