安装多版本php(php5.6,php7.2)

安装多版本php(php5.6,php7.2)安装多版本php(php5.6,php7.2)

大家好,又见面了,我是你们的朋友全栈君。

说明:之前项目使用laravel5.3 (php版本>=5.5.9)在不影响以前项目的情况下,新项目使用laravel5.7 (php版本>=7.1.3)

安装php7.1.3

(1)下载:

查看下载地址

[root@lnmp ~]# cd /usr/local/src
[root@lnmp src]# wget -c http://cn2.php.net/distributions/php-7.2.8.tar.gz

(2)解压:

[root@lnmp src]# tar -zxvf php-7.2.8.tar.gz

(3)安装

安装依赖包

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

[root@lnmp src]# cd php-7.2.8
[root@lnmp php-7.2.8]#

./configure –prefix=/usr/local/php7 –with-config-file-path=/usr/local/php7/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –enable-intl –with-mcrypt –with-libmbfl –enable-ftp –with-gd –enable-gd-jis-conv –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –with-gettext –disable-fileinfo –enable-opcache –with-pear –enable-maintainer-zts –with-ldap=shared –without-gdbm

1,报错:configure: WARNING: unrecognized options: –with-mysql, –with-mcrypt, –with-curlwrappers, –enable-gd-native-ttf
解决:删除–with-mysql –enable-gd-native-ttf –with-mcrypt ,从新安装
安装目录为:–prefix=/usr/local/php7 (可自定义)

./configure –prefix=/usr/local/php7 –with-config-file-path=/usr/local/php7/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –enable-intl –with-libmbfl –enable-ftp –with-gd –enable-gd-jis-conv –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –with-gettext –disable-fileinfo –enable-opcache –with-pear –enable-maintainer-zts –with-ldap=shared –without-gdbm

2,报错:configure: error: Cannot find ldap.h

[root@lnmp php-7.2.8]yum list | grep openldap

[root@lnmp php-7.2.8]yum install openldap-devel

3,报错:configure: error: Please reinstall readline – I cannot find readline.h

yum install readline-devel
[root@lnmp php-7.2.8]# make
[root@lnmp php-7.2.8]# echo $?
为0时表示没有问题
[root@lnmp php-7.2.8]# make install
[root@lnmp php-7.2.8]# echo $?

4,报错:
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

说明:./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数

解决1:
vim Makefile
EXTRA_LIBS = … -lcrypt 在最后加上 -liconv

j解决2:
make ZEND_EXTRA_LIBS=’-liconv’

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/

解决完报错执行:make clean && make && make install

5,安装完成后,查看php版本,如下显示安装成功

[root@lnmp etc]# /usr/local/php7/bin/php -v
PHP 7.2.8 (cli) (built: Mar  9 2019 15:10:06) ( ZTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
(4)配置php.ini
[root@lnmp php-7.2.8]# cp php.ini-development /usr/local/php7/lib/php.ini
[root@lnmp php-7.2.8]# vim /usr/local/php7/lib/php.ini

查找 mysqli.default_socket 改成:

mysqli.default_socket = /var/lib/mysql/mysql.sock

根据自己需要修改时区,查找 date.timezone,将前面的 ; 去掉,改成:

date.timezone = PRC

(5)配置php-fpm
[root@lnmp php-7.2.8]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@lnmp php-7.2.8]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
[root@lnmp php-7.2.8]# vim /usr/local/php7/etc/php-fpm.d/www.conf

查找 user 将

user = nobody
group = nobody

改成

user = nginx
group = nginx

查找 listen 将

listen = 127.0.0.1:9000

改成

listen = 127.0.0.1:9001

这里是因为 PHP 7 已经占用了 9000 端口,所以用 9001 端口,可以自定义哦!

(6)配置 php-fpm 服务

因为 PHP 7 的服务文件为 php-fpm.service 所以这里用 php5-fpm.service

[root@lnmp php-7.2.8]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php7-fpm.service
[root@lnmp php-7.2.8]# vim /usr/lib/systemd/system/php7-fpm.service

将:

PIDFile=${prefix}/var/run/php-fpm.pid

ExecStart=${exec_prefix}/sbin/php-fpm –nodaemonize –fpm-config ${prefix}/etc/php-fpm.conf

改成

PIDFile=/usr/local/php7/var/run/php-fpm.pid
ExecStart=/usr/local/php7/sbin/php-fpm –nodaemonize –fpm-config /usr/local/php7/etc/php-fpm.conf

(6)启动php-fpm服务

重新载入 systemd

 [root@lnmp php-7.2.8]# systemctl daemon-reload

可以设置开机启动:

[root@lnmp php-7.2.8]# systemctl enable php7-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php7-fpm.service to /usr/lib/systemd/system/php7-fpm.service

立即启动 php-fpm

[root@lnmp php-7.2.8]# systemctl start php7-fpm

查看运行状态:

[root@lnmp php-7.2.8]# systemctl status php7-fpm
● php7-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php7-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-03-09 18:04:53 CST; 13s ago
 Main PID: 19796 (php-fpm)
   CGroup: /system.slice/php7-fpm.service
           ├─19796 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
           ├─19797 php-fpm: pool www
           └─19798 php-fpm: pool www
[root@lnmp php-7.2.8]# ps -ef|grep php 或者 ps aux|grep php
root     19796  0.0  0.2 256432 10476 ?        Ss   18:04   0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
root      2131  0.0  0.1 300624  6760 ?        Ss    2018   5:32 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www       2132  0.0  0.6 406988 26580 ?        S     2018   0:48 php-fpm: pool www
www       2133  0.0  0.6 406672 26136 ?        S     2018   0:50 php-fpm: pool www
www       2134  0.0  0.6 405892 25804 ?        S     2018   0:50 php-fpm: pool www
(7)不同nginx 站点使用不用的 PHP 版本,配置如下
[root@lnmp w3c]# cd /w3c/lnmp/
[root@lnmp lnmp]# vim index.php
<?php
echo phpinfo();
server { 
   
    listen       80;
    server_name  www.lnmp.cn;
    root         /w3c/lnmp/index.php
    location / { 
   
        index  index.php index.html index.htm;
    }
    location ~ \.php$ { 
   
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

php5 6项目配置:

fastcgi_pass   127.0.0.1:9000;

php7项目配置

fastcgi_pass   127.0.0.1:9001;

读取nginx配置:

[root@lnmp vhost]# systemctl reload nginx || /etc/init.d/nginx reload
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105876.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 免费高清第二波!12个无版权限制的大图特供网站

    免费高清第二波!12个无版权限制的大图特供网站推荐:cyRotel2014/08/21in酷站推荐更多22上次优设分享了10个高清无码图库后,竟然有同学评论下回复好人一生平安,盛怒之下,小编意犹未尽马不停蹄精挑细选了这15个大图网站,质量上乘,看着舒服,不担心眼睛。用着舒心,不担心侵权。看入迷了,也不用紧张,永久免费下载。就是这么棒棒哒!对了,上次那篇右戳:《免费高清!10个无版权限制的大图特供…

  • easymock单元测试(控制测试)

    本文转自:点击打开链接测试驱动开发是软件开发的重要部分。如果代码不进行测试,就是不可靠的。所有代码都必须测试,而且理想情况下应该在编写代码之前编写测试。但是,有些东西容易测试,有些东西不容易。如果要编写一个代表货币值的简单的类,那么很容易测试把$1.23和$2.8相加是否能够得出$4.03,而不是$3.03或$4.029999998。测试是否不会出现$

  • SpringBoot整合ElasticSearch详细过程

    SpringBoot整合ElasticSearch详细过程一、创建工程使用IntelliJ创建SpringBoot工程SpringBoot版本为2.0.4ElasticSearch为5.6.10删掉蓝框中的文件(如上)最后我们的目录结构(如下)下面pom文件主要修改的是把springboot从IntelliJ默认的版本换成2.0.4以及添加netty3的客户端否则启动会报错&amp;amp;lt;?xmlversion=…

  • 802.1ag CFM/802.3ah EFM OAM/Y.1731 ETH OAM学习笔记

    802.1ag CFM/802.3ah EFM OAM/Y.1731 ETH OAM学习笔记相关协议:1)IEEE802.1ag连通性故障管理(CFM:ConnectivityFaultManagement)2)IEEE802.3ah第一英里的以太网(EFM:EthernetintheFirstMile),其中第57章的以太网OAM3)ITU-TY.1731以太网OAM(Operation,AdministrationandMaintenance

  • emWin实战教程V2.0_powershell实战指南

    emWin实战教程V2.0_powershell实战指南转 http://www.chuxue123.com/forum.php?mod=viewthread&tid=5363&extra=page%3D1   http://www.chuxue123.com/forum.php?mod=viewthread&tid=1504下面是自己的学习笔记1.emWIN与ucGUI关系,而大家所熟悉的ucGUI,其实就是emWin的一个版本

    2022年10月10日
  • JavaScript实现进制转换

    JavaScript实现进制转换

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号