序
在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 就可以了