macos同时运行多个版本php程序(nginx+php56+php72)

时间:2024-05-21 15:01:38

开发过程中经常遇到不同的项目对php版本有特殊的要求,来回切换php环境也比较麻烦。macos可以使用homebrew快速搭建多php版本开发环境,nginx 配置中指定不同版本php-fpm实现多版本php同时运行,再不需要再去手动切换了(*^▽^*)……

备注:在执行安装之前,请确保自行安装homebrew,nginx。

1.安装php56:

执行命令:brew install php56 --without-apache --with-fpm

安装完成有很多操作提示,可以参照操作提示执行,比如环境变量的设置等等。此处讲启动php56。

macos同时运行多个版本php程序(nginx+php56+php72)(图片为安装完全部分提示信息)

2.启动php56

执行命令:brew services start [email protected]

3.安装php72

参考php56安装

4.php-fpm修改

通过安装完成的配置可以看到php-fpm配置存放目录,修改监听端口,两个php-fpm监听端口不能相同,否则会冲突。

5.6的配置文件在/usr/local/etc/php/5.6/php-fpm.conf

7.0的配置文件在/usr/local/etc/php/7.0/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

brew unlink [email protected]

参考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

8.设置开机启动,全局变量等

此处略