开发过程中经常遇到不同的项目对php版本有特殊的要求,来回切换php环境也比较麻烦。macos可以使用homebrew快速搭建多php版本开发环境,nginx 配置中指定不同版本php-fpm实现多版本php同时运行,再不需要再去手动切换了(*^▽^*)……
备注:在执行安装之前,请确保自行安装homebrew,nginx。
1.安装php56:
执行命令:brew install php56 --without-apache --with-fpm
安装完成有很多操作提示,可以参照操作提示执行,比如环境变量的设置等等。此处讲启动php56。
2.启动php56
执行命令:brew services start php@5.6
3.安装php72
执行命令:brew install php72
1、通过brew install安装应用最先是放在/usr/local/Cellar/目录下。
2、有些应用会自动创建软链接放在/usr/bin或者/usr/sbin,同时也会将整个文件夹放在/usr/local
3、可以使用brew list 软件名确定安装位置。
比如查找安装mysql 在那个位置
可以在终端直接输入 brew list mysql
安装后的文件路径:/usr/local/Cellar/php/8.0.3/bin/php
4.php-fpm修改
通过安装完成的配置可以看到php-fpm配置存放目录,修改监听端口,两个php-fpm监听端口不能相同,否则会冲突。
5.6的配置文件在/usr/local/etc/php/5.6/php-fpm.conf
7.2的配置文件在/usr/local/etc/php/7.2/php-fpm.d/www.conf
修改其中任意一个即可,我修改的是56版本的php-fpm配置
执行命令:vim /usr/local/etc/php/5.6/php-fpm.conf
修改listen = 127.0.0.1:9000为listen = 127.0.0.1:9001
保存。
5.启动php72
参考php56
6.nginx配置
(1)在nginx.conf中添加vhost配置,如下:
在/usr/local/etc/nginx/nginx.conf文件中最后一行添加:include servers/*;
(2)增加项目配置,示例如下:
cd /usr/local/etc/nginx/servers/
vim 8011.conf
文件内容:
server {
listen 8011;
server_name localhost;
root /Users/eva/Documents/project1/; # 该项要修改为你准备存放相关网页的路径
location / {
index index.php index.html;
autoindex on;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
#proxy the php scripts to php-fpm
location ~ \.php$ {
#include /usr/local/etc/nginx/fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存并退出。
按照上边方法再新建php56版本的项目配置,其中fastcgi_pass 127.0.0.1:9000;修改为fastcgi_pass 127.0.0.1:9001;即可执行php56.
7.启动或重启nginx
启动nginx:brew services start nginx
重启nginx:brew services restart nginx
有话要说