MAC配置多版本PHP环境

  • Post author:
  • Post category:php





在mac里面有预装的php和apache,我的本本预装的是php7.1,现在我想配置一个php7.2和php7.3加nginx或者apache+php7.1+7.2+7.3



一、配置系统预装的php7.1+apache2.4环境(如果不需要apache服务器则略过)

启动,停止和重启apache

sudo apachectl start 
sudo apachectl stop
sudo apachectl restart


sudo apachectl start

启动apache后在浏览器中输入

http://localhost

,会出现 It works!的页面

此时apache已经可以用了

然后输入命令打开配置文件


sudo vim /private/etc/apache2/httpd.conf


找到下图中的代码把前面的#去掉,修改完配置记得重启apache

在这里插入图片描述

好了,现在我们进入

/Library/WebServer/Documents/

新建一个index.php

<?php
    phpinfo();

此时应该就可以打印出php的信息了。配置虚拟域名啥的在这就不详细说了,不知道的可以评论区留言



二、安装php7.2+php7.3+nginx

mac安装软件不得不说的一个神器

homebrew


安装过得跳过,没安装过运行下面的命令就行了

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


1、nginx

安装好homebrew,我们用下面命令先安装nginx来配置系统预装的php7.1

brew install nginx

如果提示安装xcode-select就点安装

安装好nginx后我们先启动它

brew services start nginx
// 或者
sudo nginx -s reload | stop | reopen

启动nginx的时候可能会提示找不到nginx.pid

nginx: [error] open() "/usr/local/Cellar/nginx/1.15.8/logs/nginx.pid" failed (2: No such file or directory)

解决办法:执行下面命令后再重新执行启动命令

nginx -c /usr/local/etc/nginx/nginx.conf 

然后浏览器输入

localhost

能显示出nginx的欢迎页就好了

在这里插入图片描述



nginx安装好后配置系统预装的php7.1

执行下面命令拷贝生成php-fpm.conf

sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf

修改php-fpm.conf中的

error_log

,修改为下面这个

error_log = /usr/local/var/log/php-fpm.log

不修改启动 php-fpm 时会报错:

ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)

去掉php-fpm.conf配置文件最下面

include=/private/etc/php-fpm.d/*.conf

前面的注释执行下面命令

sudo cp /private/etc/php-fpm.d/www.conf.default /private/etc/php-fpm.d/www.conf

修改好了后记得修改nginx.conf

sudo vim /usr/local/etc/nginx/nginx.conf

加上默认执行的index.php和去掉下面圈出的注释(对了,忘记说了,

listen 8080

记得要改成80,如果你喜欢用8080就不用改)

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

改为

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

在这里插入图片描述

这些做完了后重新启动nginx然后启动php-fpm就行了


sudo php-fpm

命令就可以启动php-fpm,停止命令下面说。

现在nginx和php-fpm都启动了,在

/usr/local/var/www

新建

index.php

<?php
    phpinfo();

浏览器输入

localhost

即可打印php信息



2、php7.2

执行下面命令安装php7.2

brew install php@7.2

安装完成后输入

php -v

依旧还是显示7.1版本,不要急,我们先把新装的php加入环境变量

sudo vim ~/.bash_profile

# 下面两段添加进去
export PATH="/usr/local/Cellar/php@7.2/7.2.15/bin:$PATH"
export PATH="/usr/local/Cellar/php@7.2/7.2.15/sbin:$PATH"

# 保存文件后,source下这个文件,使刚刚添加的环境变量生效
source ~/.bash_profile

这个时候你在执行php -v就会显示你版本7.2了

但是这不是我们想要,因为php7.1被覆盖了

我们只要修改下


/usr/local/Cellar/php@7.2/7.2.15/bin

目录下的php更名为php72


/usr/local/Cellar/php@7.2/7.2.15/sbin

目录下的php-fpm更名为php-fpm72

然后终端查看如下

在这里插入图片描述

现在nginx如何在两个php版本中切换呢?

很简单。

只需要把开始启动的php-fpm干掉启动php-fpm72就行,干掉php-fpm命令如下

# 开启和关闭 php-fpm
sudo php-fpm
sudo killall php-fpm
# 开启和关闭 php-fpm72
sudo php-fpm72 -D
sudo killall php-fpm72
# ps:-D 是以守护进程开启

php7.3版本安装重复php7.2的安装方法



最后


假如有两个项目需要同时运行两个版本的话只需要修改一个php的启动端口号改成9001就行,nginx配置虚拟域名的时候记得也要改,我就不截图一步步教了,因为我自己也没有改

apache 切换php版本的话修改

/private/etc/apache2/httpd.conf

中的配置

LoadModule php7_module libexec/apache2/libphp7.so 
#后面的路径改掉成
/usr/local/Cellar/php@7.2/7.2.15/lib/httpd/modules/libphp7.so

然后重启apache 就可以了



版权声明:本文为u010324331原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。