记一次安装多版本php的四个雷区,你踩着了吗

                     记一次安装多版本的php的四个雷区,你踩着了吗php

 

需求:公司须要在同一台服务器上安装不一样版本的php,而这一台的服务上已经安装了php.7.1,现须要同时存在两个版本,而另外一个版本为php5.六、mysql

 

原版本的php是使用一键安装工具oneinstack来装的 工具下载可参考官网:https://oneinstack.com/install/nginx

 

(如下安装都是以oneinstack来安装)sql

1、安装另外一个版本php5.6vim

注意如下是正确的安装,遇到的坑下面再说bash

1、 安装php5.6服务器

由于之前的php也是使用oneinstack安装的因此启动文件是是php-fpm,咱们须要修改php-fpm文件名,防止再次安装被覆盖。php7

中止本地的php7.1composer

#service php-fpm stop

                   

更改php-fpm启动文件名ide

#mv /etc/init.d/php-fpm   /etc/init.d/php-fpm.bk


 

2、修改oneinstack的options.conf文件

使用oneinstack工具安装,每次都会读取options.conf这跟文件,而后再安装,因此须要修改该文件的php路径,不然会提示,已经安装

进入options.conf文件

#vim /root/oneinstack/options.conf


php_install_dir=/usr/local/php 改成

php_install_dir=/usr/local/php56

 

3、执行安装脚本安装

#./install.sh


1.png

而后是漫长的等待

4、修改php配置文件

咱们须要先中止刚刚安装php-fpm由于使用oneinstack默认安装完自动启动

中止php5.6

#service php-fpm stop


把php-fpm更改为php5-fpm ,变成php5.6的启动文件                                     

#mv /etc/init.d/php-fpm /etc/init.d/php5-fpm


恢复本地php7.1启动脚本             

mv /etc/init.d/php-fpm.bk /etc/init.d/php-fpm

             

5、设置php5.六、php7.1开机自启动:

 

#chkconfig --add php5-fpm
#chkconfig --add php-fpm


#chkconfig php5-fpm on
#chkconfig php-fpm on


 

6、修改sock的冲突文件,防止启动冲突

更改php5.6的配置文件就好

#vim /usr/local/php56/etc/php-fpm.conf
:


listen = /dev/shm/php-cgi.sock


修改成:                

listen = /dev/shm/php5-cgi.sock

             

 

7、修改php的环境变量

vim /etc/profile


去到最后一行

export PATH=/usr/local/php56/bin:/usr/local/php/bin:$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:$PATH


改成

export PATH=/usr/local/php/bin:/usr/local/php/bin:$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:$PATH


这个为何要改呢,由于php5.6版本,在我执行一些命令的时候,出现错误(原项目一直用的是php7.1的,就须要改,这是一个大坑,下面再说)

8、重启php服务

启动php7.1

#service php-fpm start


启动php5.6

#service php5-fpm start


9、查看多版本运行状况

以下图:

 2.png

安装完成

2、容易的踩到的雷区及解决办法

雷区1、没有备份php-fpm文件,直接安装

    过程缘由:

    第一安装的时候,可把我给害惨了,没有对oneinstack用的很熟练而后就直接安装了,致使一会儿忘记把php-fpm备份

    结果:

    安装完后,发现,原来的php-fpm文件给覆盖了,致使把原来的php7.1重装。

雷区2、没有修改php-fpm.conf文件就启动php

    过程缘由:

直接启动php7.1,再启动5.6,发现启动不了,搞了好久,才发现原来是php-cgi.sock文件占用问题

    结果:

    把php56目录下的的php-fpm.conf文件的php-cgi.sock配置改为php5-cgi.sock后,重启,完毕。

雷区3、没有修改环境变量

过程缘由

    由于安装php5.6或,随着就会更改环境变量的文件/etc/profile的变量环境目录,会把原来的/usr/local/php改成/usr/local/php56,这个更改,致使个人一些命令执行出错,好比composer,php等等。

  结果:

    把/etc/profile的/usr/local/php56改成/usr/local/php,执行php -v,发现版本回来了,命令执行也能够了。

 

 

雷区4、 修改nginx虚拟主机应用php版本

   过程缘由

   oneinstack执行./vhost.sh脚本建立虚拟主机是,默认是默认调用php的接口是的php-cgi.sock文件,而个人新的项目上,是调用php5.6。

   结果:

把新建完的虚拟主机所调用的php接口改成fastcgi_pass unix:/dev/shm/php-cgi.sock; 改成fastcgi_pass unix:/dev/shm/php5-cgi.sock;从新新加载nginx,项目部署成功。

3、总结

    一个服务的多版本问题,主要考虑的是的兼容性,当咱们在一台服务器上安装多个版本的服务,咱们须要有足够的把握,才去部署,你能够在本地安装测试完再部署到线上的环境,另外,对一些热门的软件,须要要熟练的掌握才行,避免操做出错。

相关文章
相关标签/搜索