ubuntu18.04上已有java环境下如何安装php服务(多版本)

在继续本教程之前,请确保满足以下先决条件:
您有一个指向服务器公共IP的域名。我们将使用example.com。
您以具有sudo权限的用户身份登录。
已安装nginx版本

数据库已安装(未安装的话,自行安装)

将软件包索引和系统软件包更新为最新版本:

sudo apt update 
sudo apt upgrade

由于php项目需要多套服务环境,所以需要安装多套php-fpm解释器

1、安装php7.2

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

发现问题了:

找不到php相关的包,所以需要去更新php的包源

继续安装,发现还是不行 Unable to locate package php7.2。。。
最后找到一个网站:
https://www.howtoforge.com/tutorial/how-to-install-php-7-for-ispconfig-3-from-debian-packages-on-debian-8-and-9/
这才可以继续下去

根据方法更新源:

apt-get install -y apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

以下命令只能在一行输入,不可换行

```bash
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update
apt-get upgrade

2、安装php5.6

apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm php5.6-gd php5.6-mysql php5.6-imap php5.6-curl php5.6-intl php5.6-pspell php5.6-recode php5.6-sqlite3 php5.6-tidy php5.6-xmlrpc php5.6-xsl php5.6-zip php5.6-mbstring php5.6-soap php5.6-opcache libicu65 php5.6-common php5.6-json php5.6-readline php5.6-xml

启动php5.6

service php5.6-fpm restart

然后我再在nginx下的http中包含引进web项目的配置文件
如下:

include /opt/nginx/conf/conf.d/*.conf;

这个*就是指我所有的php项目的配置文件;
再检测配置文件是否有问题: 通过nginx的服务——nginx -t验证

验证通过后,重启nginx服务 : /opt/nginx/sbin/nginx -s reload

访问情况如下:

安装成功!

以上是php5.6安装的整个过程。之后依葫芦画瓢,即可安装多版本的php服务

安装php7.2

apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm php7.2-gd php7.2-mysql php7.2-imap php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php7.2-zip php7.2-mbstring php7.2-soap php7.2-opcache php7.2-common php7.2-json php7.2-readline php7.2-xml

安装成功后,启动服务

service php7.2-fpm restart

ubuntu18.04上已有java环境下如何安装php服务(多版本)

大工告成!

等等,貌似还有个事情要说,我在启动的时候发现在用的TCP服务中,没有查看到php-fpm,这是咋回事?

原来默认是启用sock服务来支持php的,详情
打开:/etc/php/7.2/fpm/php-fpm.conf
引入的文件地址在:/etc/php/7.2/fpm/pool.d/*.conf
打开/etc/php/7.2/fpm/pool.d/www.conf
搜索 listen:第36行,屏蔽使用

当然你也可以不和我这个方式来处理,只是在配置nginx服务解释php脚本的时候,需要注意到这个!

在配置 fastcgi_pass 使用原始的 sock文件来运行服务,也是OK的!

上一篇:yum安装php7


下一篇:xdebug调试出现nginx 504错误, xdebug不一会自动断开跳出调试,踩坑的过来人告诉你实质上只要增加一条配置就可以完美解决!!!