安装多版本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)


相关推荐

  • 哈夫曼树

    哈夫曼树一、哈夫曼树的概念和定义 什么是哈夫曼树?让我们先举一个例子。判定树:       在很多问题的处理过程中,需要进行大量的条件判断,这些判断结构的设计直接影响着程序的执行效率。例如,编制一个程序,将百分制转换成五个等级输出。大家可能认为这个程序很简单,并且很快就可以用下列形式编写出来:  if(score<60) cout<<"Bad"<

  • 电平转换方法_为什么低电平有效

    电平转换方法_为什么低电平有效咸鱼NOFASHION硬件开发过程中常常遇到电平不匹配的问题,就这个问题作简要说明与总结:电平匹配或者电平转换方法:直接选用转换芯片,此方案对于设计来说最简单、通信速率高、性能稳定、成本一般较高;但作为一个合格的硬件工程师,需要考虑成本、空间、结构等问…

  • LoadRunner11完美激活成功教程「建议收藏」

    LoadRunner11完美激活成功教程「建议收藏」今天装完LoadRunner后,发现怎么都启动不了,最后找了很久的注册码global-100:AEAMAUIK-YAFEKEKJJKEEA-BCJGIweb-10000:AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB很管用了!

  • Rectified Linear Unit_激活函数图像

    Rectified Linear Unit_激活函数图像传统Sigmoid系激活函数传统神经网络中最常用的两个激活函数,Sigmoid系(Logistic-Sigmoid、Tanh-Sigmoid)被视为神经网络的核心所在。从数学上来看,非线性的Sigmoid函数对中央区的信号增益较大,对两侧区的信号增益小,在信号的特征空间映射上,有很好的效果。从神经科学上来看,中央区酷似神经元的兴奋态,两侧区酷似神经元的抑制态,因而在

    2022年10月29日
  • 用tcping检查网站开放的端口

    用tcping检查网站开放的端口neo之前分享过一款小巧玲珑工具软件:tcping,即在tcp层进行端口的ping。tcping可以用来检查和确认我们的网站有哪些端口是开放的,使用很顺手。比如neo这几天在研究如何关闭mysql的3306端口,就通过使用tcping工具来确认关闭端口是否成功。Linux下有有个netstat命令,总是对其输出看得云里雾里,虽然netstat-l的输出看不到3306端口,是tcping还能p…

  • 批处理文件中%~dp0是什么意思?

    批处理文件中%~dp0是什么意思?看批处理文件时,常遇到%~dp0之类的东西,不知其意思。打开WindowsXP自带的帮助系统,搜索“batch”关键字,能找到有关介绍批处理文件的帮助。通过帮助我终于明白了%~dp0是什么意思,总结如下:    我们知道,%*是用来指批处理文件传入的参数。例如%0表

发表回复

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

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