Mac下安装php7.0+php5.6+nginx多版本开发环境

    php7的发布对于我等phper是一个重大的消息,做为一只码农,怎么不能够去膜拜一番呢,在保留工作时用的php5.6环境,再安装个php7.因此猿猿我用了个周末把环境搭了一遍,但是,其中走了不少弯路,写出来以便大

家以后碰到类似的问题而不用大废周折。

   我平时开发用的是MAC,因此只针对MAC下的开发用户。用过ubuntu和centos的同类们,都知道apt-get,和yum这俩个神器,Mac 也有和这俩工具差不多的玩意,homebrew,

安装软件特别方便,建议大家没有安装的话最好安装一下,省的被各种以来弄得脑袋疼。在安装之前,有必要解释下apache和nginx解析php的原理。以前,我一直使用的是apache做web服务器,配置过apache的都应该知道,php是挂在apache下的一个模块,当http请求一个php文件的话,apache会调用php模块儿进行解析,然后返回html给apache。

而nginx又点不一样,它必须通过一个FastCGI的进程管理器来启动php解析,也就是是php-fpm,当nginx接受的php请求时,它会向它监听的fpm发送一个请求,当fpm接受到请求以后,在创建一个子进程来调用php进行解析。当解析完成后,回收线程,返回html给nginx,这里也引出了一个问题,那就是php鸡肋一般的单例,由于php的生命周期是伴随着一个请求的开始和结束,当这个请求完毕后,该线程就会自动回收了,所以php的静态对象,只能存在于一个请求当中,不想JAVA等其他语言,静态变量会一直存在。

好了,下面上安装步骤(提前安装好homebrew)

1.卸载mac自带的apache和php,有用集成环境,建议也删掉

   先停掉apache:

            sudo apachectl stop

    然后统统删掉

           sudo rm /usr/sbin/httpd
           sudo rm -r /etc/apache2/

2.安装nginx

      brew install nginx

      安装完后,先不急着修改配置文件

      先设置权限

            sudo chown root:wheel/usr/local/opt/nginx/bin/nginx
            sudo chmod u+s/usr/local/opt/nginx/bin/nginx

      如果想设开机启动的话

           mkdir -p ~/Library/LaunchAgents
           cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
           launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

            launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist(取消开机启动)

      nginx命令

           sudo nginx #打开 nginx
           nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
           nginx -t   #测试配置是否有语法错误
           如果提示pid丢失的话,就用这句话
           nginx -c "/usr/local/etc/nginx/nginx.conf"

       好了nginx安装完毕,大家可以localhost一下,就可以看到nginx的信息了

3.安装mysql

       brew install mysql

       加入开机启动
              cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
               launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

              launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist(取消开机启动)

       初始化mysql

             cd /usr/local/Cellar/mysql/5.7.11/bin

             mysql_install_db

       设置root账户和密码

            ./mysql_secure_installation 一直跟着提示走就行

 4.先安装php7

      brew install php70 --without-apache --with-fpm

      因为我们用nginx,所有--without-apache,并且加上--with-fpm来编译php

      安装完成后,加入全局变量

              vim ~/.bash_profile 添加  export PATH=/usr/local/bin:/usr/sbin:$PATH

              然后 vim ~/.bashrc  添加   export PATH = "$(brew --prefix homebrew/php/php70)/bin:$PATH"

              最后 sourc ~/.bash_profile  source ~/.bashrc

      然后加入开机自启

               mkdir -p ~/Library/LaunchAgents
               cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~/Library/LaunchAgents/
               launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist  

5.安装php5.6.18

           brew install php56 --without-apache --with-fpm   

          vim ~/.bashrc  修改 export PATH = "$(brew --prefix homebrew/php/php70)/bin:$PATH"  为 export PATH = "$(brew --prefix homebrew/php/php70)/bin:$(brew --prefix             homebrew/php/php56)/bin$PATH";

         

        然后加入开机自启

               mkdir -p ~/Library/LaunchAgents
               cp /usr/local/opt/php70/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
               launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist       

6.安装php版本切换公具

         brew install php-version

        安装完成后 vim ~/.bashrc 添加  source $(brew --prefix php-version)/php-version.sh && php-version 7后面的 &&php-version是你想默认开启的php版本。自己选一个就行

        sourc .bashrc后,命令行输入php-version,就可以看到在你电脑中的所有php版本,你想用哪个就php-version 5.6.18 或 php-version7.0.2来切换版本

7.安装php扩展包

        其实很简单,比如你想安装php7的xdebug扩展,就brew install php70-xdebug,想安装mcrypt就 brew install php70-mcrypt

        如果想按5.6的就 brew install php56-xxxx,是不so easy,另外你可以 brew search php70,可以看到所有php7的扩展库,同理

       也可以查php56的

8.配置nginx 和 php-fpm

      nginx 配置 很简单,nginx的配置文件在 /usr/local/etc/nginx/文件中  vim nginx.conf

      然后 根据 自己的需求去配置就行,这里就不用详细说了

      php-fpm的配置:     先cd到  /usr/local/etc/php,你可以看到7.0和5.6这俩个文件夹,至于你想要改哪个,就改就行

     这没什么配置的,就是把nginx和fpm的端口统一就行

9.最后关键

      每次修改了php.ini文件。都要重启php-fpm,就行启动apache一样,不过这会不用重启nginx

     重启步骤

    sudo killall php-fpm 先停掉所有php-fpm的进程

    cd  /usr/local/Cellar/php/版本号/sbin

    不同版本的php,sbin目录里会有不同的php-fpm,比如php7.0的是php70-fpm, php5.6.18的是 php56-fpm,你想启动哪个fpm就

   敲 sudo ./php70-fpm start 或php56-fpm start就行

结束语,

   好了,大概就是这么个步骤,可能大家的实际安装配置过程中有所不同,但大体思路就是这样。遇到问题,不要灰心,解决了任何一个问题都会对自己有一个提高,每次解决完问题后的喜悦,不就当初选择这行的原因吗!

你可能感兴趣的:(原创,php)