如何在MAC上同时使用多个php版本

分类:PHP |

由于php54+ 有大的更新,而php53版本流行过长,不可能一下子消失,过渡期,项目基什么版本的都有,因此必需要在本机部署多套php版本了,

win平台下推荐phpStudy, linux 下任意, 这里介绍一下 mac下的一种方法:


目前本机安装的是php56 版本,是通过 brew install 安装的

blob.png


如果再使用 brew install 安装,会提示先删除之前的版本, 所以此种方法不可行,还要找其它方式:

blob.png


只好使用macports 来管理:

下载地址:https://www.macports.org/install.php

直接下载安装即可,安装完毕后,在命令行执行:port  , 

blob.png


默认安装路径: /opt/local/bin/port


如果你这里提示找不到文件,可以将此目前放到 $PATH 里


o了, port 安装完毕,现在开始使用port 安装 php53 php53-fpm php53-mysql php53-gd php53-mcrypt


>sudo port install php53 php53-fpm php53-mysql php53-gd php53-mcrypt


等待安装完毕


1. 配置文件添加, 默认配置文件放置目录:/opt/local/etc/php53, 

>cp php-fpm.conf.default  php-fpm.conf 

>cp php.ini-development  php.ini

blob.png


2. 配置启动项,文件地址:/Library/LaunchDaemons/org.macports.php53-fpm.plist


blob.png



blob.png

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>org.macports.php53-fpm</string>
<key>ProgramArguments</key>
<array>
    <string>/opt/local/bin/daemondo</string>
    <string>--label=php53-fpm</string>
    <string>--start-cmd</string>
    <string>/opt/local/sbin/php-fpm53</string>
    <string>--fpm-config</string>
    <string>/opt/local/etc/php53/php-fpm.conf</string>
    <string>--pid=exec</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>


这其中, --start-cmd  --pid 都是选项,指向你的配置文件即可


blob.png


4. 修改配置,

> vim /opt/local/etc/php53/php-fpm.conf

listen = 127.0.0.1:9000

改为

listen = 127.0.0.1:9001

以避免和之前的Php56-fpm 的端口冲突


3. 启动服务:

sudo launchctl load -w /Library/LaunchDaemons/org.macports.php53-fpm.plist

验证结果,9000和9001 都已在listen 状态,启动成功: 

blob.png



以上只是记录一下解决过程,有问题可以留言交流




其它 参考资料:

--------------------------------------------------

使用MacPorts配置PHP开发环境(PHP54+PHP FPM+NGINX+MYSQL55)

    在MAC系统下进行PHP开发,最简单的方法是到http://www.apachefriends.org/en/xampp-macosx.html下载个文件,装上就可直接进行开发了,好处很明显,简单易用。

    使用MacPorts配置PHP开发环境(PHP54+PHP FPM+NGINX+MYSQL55),首先需要安装port,访问:http://www.macports.org/install.php,直接下载源代码: https://distfiles.macports.org/MacPorts/MacPorts-2.1.3.tar.gz。

    安装port:

    1. tar xzvf MacPorts-2.1.3.tar.gz  解压

    2. cd MacPorts-2.1.3

    3. ./configure && make && sudo make install

    这样就安装好port了。

    4. vi ~/.bash_profile

    按i键进入编辑方式,粘下以下文字:

    export PATH=/opt/local/bin:$PATH

    按ESC键退出编辑方式,按:键再输入wq保存退出。

    现在我们就可以很方便地使用port了。

    安装php:

    1. port info php 列出所支持的php信息,可以根据需要来选对应的版本安装,我选php54这个版本。

    2. sudo port install php54 php54-fpm php54-mysql php54-mbstring php54-mcrypt php54-sockets php54-curl 可以根据需要增加或者减少

    3. cd /opt/local/etc/php54/

    4. sudo cp ./php-fpm.conf.default ./php-fpm.conf

    5. sudo cp ./php.ini-development ./php.ini 可以根据需要换成php.ini-production的

    6. vi ~/.bash_profile 加上以下内容:

#php-fpm
alias fpm_start='sudo launchctl load -w /Library/LaunchDaemons/org.macports.php54-fpm.plist'
alias fpm_stop='sudo launchctl unload -w /Library/LaunchDaemons/org.macports.php54-fpm.plist'
alias fpm_restart='fpm_stop; fpm_start'

    7. 打开个新的命令窗口,输入:fpm_start,php-fpm就开始运行了,可以用top命令查看或者用ps -e | grep php-fpm查看。

    这样子php就已经搞定了。

    nginx:

    1. sudo port install nginx

    2. vi ~/.bash_profile 加上以下内容:

# nginx
alias nginx_start='sudo launchctl load -w /Library/LaunchDaemons/org.macports.nginx.plist'
alias nginx_stop='sudo launchctl unload -w /Library/LaunchDaemons/org.macports.nginx.plist'
alias nginx_restart='nginx_stop; nginx_start;'

    3. cd /opt/local/etc/nginx/

    4. sudo cp fastcgi.conf.example fastcgi.conf 如此类推,把那些以.example为后缀的拷出一份没有.example为后缀的文件来。

    5. sudo vi nginx.conf 找到

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 这段,内容改成这样子:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/local/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

其实就是去掉前面的#号和改了一下fastcgi_param SCRIPT_FILENAME /opt/local/share/nginx/html$fastcgi_script_name;

    6. nginx_start就可以启动了

    7. cd /opt/local/share/nginx/html/

    8. vi phpinfo.php 加入以下内容:

<?php phpinfo(); ?>

    9. 通过浏览器访问:http://localhost/phpinfo.php 完成。

    MYSQL:

    1. sudo port install mysql55 再根据安装完成后的内容设置数据库

    2. vi ~/.bash_profile 加上以下内容:

#mysql
alias mysql_start='sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql55-server.plist'
alias mysql_stop='sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql55-server.plist'
alias mysql_restart='mysql_stop; mysql_start'

    3. mysql_start

    4. sudo vi /opt/local/ect/mysql55/my.cnf 注掉# !include /opt/local/etc/mysql55/macports-default.cnf 这一行,再加上: [mysqld_safe] socket = /tmp/mysql.sock, 否则mysql命令可以连接,工具连不上。