美文网首页
mac下php开发环境搭建:nginx+mysql+php+ph

mac下php开发环境搭建:nginx+mysql+php+ph

作者: 楠木唯香 | 来源:发表于2017-12-15 11:51 被阅读0次

    一、安装Homebrew

    Brew是Mac下面的包管理工具,就像centos下面的yum一样。HomeBrew可以通过ruby来安装,mac系统是自带ruby的,所以只要在终端运行下面的代码即可安装HomeBrew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    在安装的时候会有下面的提示,你应该仔细看下,要清楚知道HomeBrew给你安装了哪些脚本,给你创建了哪些文件夹,路径是在哪里的。仔细的看下安装时出现的说明信息,这样即使没有用过的软件,你根本不用看文档,都是能够使用它的最基础功能的。如果你一定要研究下细致的,可以看HomeBrew的官网:https://brew.sh/

    ==> This script will install:
    /usr/local/bin/brew
    /usr/local/share/doc/homebrew
    /usr/local/share/man/man1/brew.1
    /usr/local/share/zsh/site-functions/_brew
    /usr/local/etc/bash_completion.d/brew
    /usr/local/Homebrew
    ==> The following new directories will be created:
    /usr/local/Cellar
    /usr/local/Homebrew
    /usr/local/Frameworks
    /usr/local/bin
    /usr/local/etc
    /usr/local/include
    /usr/local/lib
    /usr/local/opt
    /usr/local/sbin
    /usr/local/share
    /usr/local/share/zsh
    /usr/local/share/zsh/site-functions
    /usr/local/var

    现在我们已经安装完HomeBrew了,其实你只要运行brew help就能知道该怎么用这个软件了。


    自检Brew

    安装完成之后,建议执行一下自检,brew doctor如果看到Your system is ready to brew.那么你的brew已经可以开始使用。
    "这里是我已经安装了oh-my-zsh"


    这里是我已经安装了Oh-My-Zsh下面会说怎么安装

    Homebrew 常用命令一览

    $ brew --help        #简洁命令帮助
    $ man brew          #完整命令帮助
    $ brew install git    #安装软件包(这里是示例安装的Git版本控制)
    $ brew uninstall git #卸载软件包
    $ brew search git    #搜索软件包
    $ brew list            #显示已经安装的所有软件包
    $ brew update      #同步远程最新更新情况,对本机已经安装并有更新的软件用*标明
    $ brew outdated      #查看已安装的哪些软件包需要更新
    $ brew upgrade git  #更新单个软件包
    $ brew info git      #查看软件包信息
    $ brew home git      #访问软件包官方站
    $ brew cleanup      #清理所有已安装软件包的历史老版本
    $ brew cleanup git  #清理单个已安装软件包的历史版本
    

    美化下终端

    安装oh-my-zsh

    brew我们已经安装好了,现在已经可以使用了,但是看上面的图,我们的终端太他妈的丑了,mac默认使用的shell是bash,如果把它换成zsh,并安装zsh的插件oh-my-zsh,那就会好很多了,mac系统已经自带了zsh,我们就不用去安装了,执行zsh --version可以查看zsh的版本,我们需要安装个zsh的插件oh-my-zsh

    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    

    终端执行上面的代码即可
    接下来我们先安装字体,设置稍后再说。


    安装FiraCode字体

    我们安装个比较流行的编程字体FireCode,可以进入:https://github.com/tonsky/FiraCode点击下载,下载后解压然后找到TTF文件夹,安装其中的五个字体。

    下载位置在这里

    现在打开终端,点击终端->偏好设置,在这里按自己的喜欢设置一下背景,字体,颜色,行间距等即可


    设置样式,自己看着调整吧

    设置完就成为下面这样了,嗯,这样就好看多了

    这个样子我感觉还不错,哈哈

    设置启动安装完oh-my-zsh后会自动帮我们把shell切换为zsh,现在我们的终端就变成这样了,注:oh-my-zsh还可以更换主题和装插件的,具体访问:http://ohmyz.sh


    安装终端的命令自动提示

    在终端下操作会经常需要输入一些常用的命令,要不出错的输入这些命令也不是件容易的事,zsh还有一个很好用的补全命令的插件zsh-autosuggestions, 我们通过下面命令安装下:

    brew install zsh-autosuggestions
    

    安装完成后我们需要设置一下变量:
    这里根据之前查阅资料设置以后,执行后只有本次有效,关闭后再打开就无效了,所以在这里进行了修改,增加echo 'xxx' >> ~/.zshrc,这样每次打开都有提示了!不知道是不是只有我这样。

    echo 'source /usr/local/Cellar/zsh-autosuggestions/0.4.2/share/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
    
    source ~/.zshrc
    

    好了,然后你可以执行source ~/.zshrc或者重新打开终端,看下效果,输入b以后会自动提示输入过的内容,然后按向右的箭头就可以自动补全:

    自动提示,对于新手,老司机都很好用

    二、安装Mysql

    先查找下mysql

    brew search mysql
    

    ==> Searching local taps...
    mysql ✔ mysql-connector-c
    automysqlbackup mysql-connector-c++
    josegonzalez/php/php53-mysqlnd_ms mysql-sandbox
    josegonzalez/php/php54-mysqlnd_ms mysql-search-replace
    josegonzalez/php/php55-mysqlnd_ms mysql-utilities
    josegonzalez/php/php56-mysqlnd_ms mysql@5.5
    mysql++ mysql@5.6
    mysql-cluster mysqltuner
    ……

    看一下mysql的版本信息

    brew info mysql  
    

    mysql: stable 5.7.20 (bottled), devel 8.0.3-rc
    Open source relational database management system
    https://dev.mysql.com/doc/refman/5.7/en/
    ……

    下面就用brew install mysql安装下吧,安装时的消息有这么一句话We've installed your MySQL database without a root password. To secure it run:mysql_secure_installation,那就来设置下root的密码

    # 第一步:打开mysql服务
    mysql.server start
    # 第二步:执行mysql_secure_installation
    mysql_secure_installation 
    # 执行后按照提示信息进行设置,慢慢看下英文,都能看懂的,主要修改密码,和一些基本配置,实在看不懂可以用翻译软件
    

    登录mysql

    mysql -u root -p
    

    Enter password: #输入你设置的密码
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 4
    Server version: 5.7.20 Homebrew
    ……

    设置mysql开机启动

    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    

    三、安装PHP

    直接brew search php72 也可以,你可以试下看看提示信息,只是有时候会有包错误,要先添加php扩展其中php72中的72对应版本号,如:你要安装php5.6那么就是php56

    brew update # 安装软件前都要习惯的更新下brew源
    brew tap homebrew/dupes
    brew tap josegonzalez/homebrew-php
    

    现在brew search php就可以了,出来一堆版本的php,我们就安装php7.2版本吧。

    可以先brew options php72看看你安装的时候要哪些选项,我选择了下面这些,因为后面我们会用nginx作为反向代理,所以就不要用--with-apache选项了,也不要添加--without-fpm选项

    brew install php72 --with-debug --with-gmp --with-homebrew-curl --with-homebrew-libressl --with-homebrew-libxml2 --with-homebrew-libxslt --with-imap --with-libmysql --with-mssql
    

    由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本,我们用的是zsh,所以放进/.zshrc中,如果你用的shell是bash,那么可以把下面的信息写入到/.bash_profile文件中,如果这个文件没有,你自己建一个就行。

    注:上面我们有安装过oh-my-zsh,所以我们在~/.zshrc文件中写入内容,如果你没有安装,请将下段中的~/.zshrc替换为~/.bash_profile。

    echo 'export PATH="$(brew --prefix php72)/bin:$PATH"' >> ~/.zshrc #for php
    echo 'export PATH="$(brew --prefix php72)/sbin:$PATH"' >> ~/.zshrc #for php-fpm
    echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' >> ~/.zshrc #for other brew install soft
    source ~/.zshrc
    

    测试下效果
    输入php -v和php-fpm -v查看版本是不是自己安装的版本

    #brew安装的php
    ➜  ~ php -v    
    PHP 7.2.0 (cli) (built: Dec 14 2017 21:50:48) ( NTS DEBUG )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
        with Xdebug v2.6.0alpha1, Copyright (c) 2002-2017, by Derick Rethans
    #brew安装的php-fpm
    ➜  ~ php-fpm -v
    PHP 7.2.0 (fpm-fcgi) (built: Dec 14 2017 21:50:50) (DEBUG)
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
        with Xdebug v2.6.0alpha1, Copyright (c) 2002-2017, by Derick Rethans
    #mac自带的php
    ➜  ~ /usr/bin/php -v
    PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    #mac自带的php-fpm,呵呵没找到。。
    ➜  ~ /usr/bin/php-fpm -v
    zsh: no such file or directory: /usr/bin/php-fpm
    

    下面先来看下php-fpm的配置文件,路径在/usr/local/etc/php/7.0/php-fpm.conf, 大家应该都猜的到。我们主要看下pid和log文件会放在哪里

    1. [global]
    2. ; Pid file
    3. ; Note: the default prefix is /usr/local/var
    4. ; Default Value: none
    5. pid = run/php-fpm.pid
    6. ; Error log file
    7. ; If it's set to "syslog", log is sent to syslogd instead of being written
    8. ; into a local file.
    9. ; Note: the default prefix is /usr/local/var
    10. ; Default Value: log/php-fpm.log
    11. error_log = log/php-fpm.log

    自己看下上面的信息,去掉17行和24行前面的分号,使用php-fpm -t测试下配置是否正确,按提示信息是不管它也可以,默认就是在/usr/local/var路径下的,不过还是设置下吧;

    ➜  ~ php-fpm -t
    [15-Dec-2017 10:31:28] NOTICE: configuration file /usr/local/etc/php/7.2/php-fpm.conf test is successful
    

    php-fpm的一些管理:

    #测试php-fpm配置
    php-fpm -t
    
    #启动php-fpm
    php-fpm -D
    
    #关闭php-fpm
    kill -INT cat /usr/local/var/run/php-fpm.pid
    
    #重启php-fpm
    kill -USR2 cat /usr/local/var/run/php-fpm.pid
    
    #也可以用上文提到的brew命令来管理php-fpm
    brew services start|stop|restart php72
    
    #还可以用这个命令来管理php-fpm
    php72-fpm start|stop|restart
    
    #建议使用最后两个命令来启动|停止|重启php-fpm
    

    启动php-fpm之后,确保它正常运行监听9000端口:

    ➜  ~ lsof -Pni4 | grep LISTEN | grep php
    php-fpm    2255 qytx   10u  IPv4 0xd1e5b0fbcd0615df      0t0  TCP 127.0.0.1:9000 (LISTEN)
    php-fpm    2256 qytx    0u  IPv4 0xd1e5b0fbcd0615df      0t0  TCP 127.0.0.1:9000 (LISTEN)
    php-fpm    2257 qytx    0u  IPv4 0xd1e5b0fbcd0615df      0t0  TCP 127.0.0.1:9000 (LISTEN)
    

    四、安装Nginx

    和前面一样先brew search nginx查找nginx, 看下信息brew info nginx
    然后安装brew install nginx
    安装信息记录下,用的到:

    ➜ ~ brew install nginx
    ==> Auto-updated Homebrew!
    Updated 1 tap (homebrew/core).
    ==> New Formulae
    gitless
    ==> Updated Formulae
    fzf gammu
    ==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.2.sierra.bottle.tar.gz ############################################### 100.0%
    ==> Pouring nginx-1.10.2.sierra.bottle.tar.gz
    ==> Using the sandbox
    ==> Caveats Docroot is:
    /usr/local/var/www
    The default port has been set in/usr/local/etc/nginx/nginx.conf to 8080 so that nginx can run without sudo.
    nginx will load all files in /usr/local/etc/nginx/servers/.
    To have launchd start nginx now and restart at login:
    brew services start nginx Or, if you don't want/need a background service you can just run:
    nginx
    ==> Summary
    

    Nginx启动关闭命令:

    #测试配置是否有语法错误
    nginx -t
    
    #打开nginx
    sudo nginx
    
    #重新加载配置|重启|停止|退出nginx
    sudo nginx -s reload|reopen|stop|quit
    

    好了,来跑下nginx

    sudo nginx
    
    2120606-277302a6abfca5c4.png

    到这里为止,我们已经安装完了mysql php nginx, 在安装php的时候添加了--with-mysql, 所以php操作mysql是没有问题的,现在我们就要配置nginx,让它监听php-fpm的进程,这样当用户打开浏览器访问的时候,身为反向代理的nignx就能把东西让php去执行了。

    接下来,我们要配置nginx.conf文件,创建一个php-fpm文件(监听php-fpm), 还要约定下将nginx.pid文件,log日志,以及以后我们要配置的站点.conf的路径,我们的路径约定还是按照brew默认的目录来设置,如下:

    # nginx.conf,已经被创建好了,我们一会要更改下
    /usr/local/etc/nginx/nginx.conf
    
    # php-fpm,这个我们就放在和nginx.conf一样的路径下吧,这个要我们自己创建
    /usr/local/etc/nginx/php-fpm
    
    # 日志文件放在/usr/local/var/log/nginx中,默认已经有了access.log和error.log文件了
    /usr/local/var/log/nginx/
    
    # nginx.pid文件,放在/usr/local/var/run/下面,和php-fpm.pid放一堆
    /usr/local/var/run/
    
    # 以后要配置的站点.conf, 我们就放在/usr/local/etc/nginx/servers/下面,这个servers文件夹本身就存在的
    /usr/local/etc/nginx/servers/
    
    # 站点的根目录,也就用brew给我们设置的吧
    /usr/local/var/www/
    

    一般我都用brew安装软件,所以用brew默认的路径,我能方便的找到我的文件。

    下面我们先来修改nginx.conf, 用vim打开,把下面的信息覆盖nginx.conf, vim /usr/local/etc/nginx/nginx.conf, 如果你不习惯vim, 那就用sublime/Atom打开吧subl /usr/local/etc/nginx/nginx.conf

    worker_processes  1;
    
    error_log   /usr/local/var/log/nginx/error.log debug;
    pid        /usr/local/var/run/nginx.pid;
    
    events {
        worker_connections  256;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /usr/local/var/log/nginx/access.log  main;
    
        sendfile        off;
        keepalive_timeout  65;
        port_in_redirect off;
    
        include /usr/local/etc/nginx/servers/*;
    }
    

    接下来,将下面的信息放入到php-fpm文件中,vim /usr/local/etc/nginx/php-fpm

    location ~ \.php$ {
            try_files                   $uri = 404;
            fastcgi_pass                127.0.0.1:9000;
            fastcgi_index               index.php;
            fastcgi_intercept_errors    on;
            include /usr/local/etc/nginx/fastcgi.conf;
        }
    

    ok, 下面就能配置站点了,先到/usr/local/var/www目录下建立站点根目录,就叫做default吧,然后在里面建立个info.php,内容就放phpinfo()函数就行.

    mkdir /usr/local/var/www/default
    vi /usr/local/var/www/default/info.php #输入 ,活着自己去这个目录下手动创建文件也可以
    <?php  phpinfo();?>
    #info.php内容
    

    最后,去创建站点.conf文件

    vi /usr/local/etc/nginx/servers/default.conf   #在目录下创建文件
    
    #输入下面的内容
    server {
        listen       80;
        server_name  localhost;
        root         /usr/local/var/www/default;
    
        access_log  /usr/local/var/log/nginx/default.access.log  main;
    
        location / {
            index  index.html index.htm index.php;
            autoindex   on;
            autoindex_exact_size on;
            autoindex_localtime off;
            include     /usr/local/etc/nginx/php-fpm;
        }
        error_page  404     /404.html;
        error_page  403     /403.html;
    }
    #以上内容中可自定义端口号listen、项目路径root,以及日志路径access_log
    #如要设置错误页,则在error_page 中添加即可,注意路径
    #测试下配置文件
    ➜  ~ sudo nginx -t
    Password:
    nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
    

    然后开启php-fpm,已经开启的就不用开了

    php-fpm -D
    

    开启nginx服务

    sudo nginx # 已经开启的用sudo nginx -s reload 重启下
    

    浏览器打开http://localhost/info.php测试下

    这里我设置了自定义路径,所以地址为:localhost/aaa/

    别名

    上面的php-fpm关闭和重启的命令有点长,我们给它做个别名,在你的个人主目录下先建立一个.aliases文件,然后放入下面的内容

    alias fpm.start='php-fpm -D'
    alias fpm.stop='kill -INT `cat /usr/local/var/run/php-fpm.pid`'
    alias fpm.restart='kill -USR2 `cat /usr/local/var/run/php-fpm.pid`'
    alias fpm.status='lsof -Pni4 | grep LISTEN | grep php-fpm'
    

    然后

    echo 'source ~/.aliases' >> ~/.zshrc
    source ~/.zshrc
    

    这里我自己没有建,我用
    brew services start|stop|restart php72
    或者
    php72-fpm start|stop|restart

    五、安装xdebug

    安装php扩展,也可以先不急,等后面要用到什么扩展的时候再安装也可以
    安装扩展的方法(以xdebug扩展为例):

    brew install php72-xdebug --build-from-source;
    

    最后的--build-from-source是一定要加上的,我看很多教程里都漏了这一句。加上这句可以保证安装的扩展与php版本保持一致

    备注:要卸载通过homebrew安装的php扩展,参考这篇文章:mac环境下通过
    homebrew安装的php报错解决

    找到/usr/local/etc/php/7.2/conf.d/ext-xdebug.ini

    #复制以下内容到ext-xdebug.ini
    [xdebug]
    zend_extension="/usr/local/Cellar/php72-xdebug/2.6.0alpha1/xdebug.so"
    xdebug.remote_autostart=On
    xdebug.remote_enable=Off
    xdebug.remote_mode="req"
    xdebug.remote_host="localhost" 
    xdebug.remote_port=9001
    xdebug.remote_handler="dbgp"
    xdebug.idekey="PhpStorm"
    xdebug.max_nesting_level=600
    

    重新启动php-fpm和nginx

    php72-fpm restart
    sudo nginx -s reopen
    

    查看xdebug信息

    xdebug设置好了

    六、配置PHPSTORM

    PHPSTORM的安装就不说了

    详细看图吧 配置xdebug 配置xdebug 配置servers 点编辑。 点+号选择php web page,然后填写右边的信息即可

    THE END

    这篇文章摘自Zackpy and 笨尛孩你谁啊整合版本
    然后经过自己的一些实践和后期加工完成!
    整理出来,以后自己忘了也能看,哈哈

    相关文章

      网友评论

          本文标题:mac下php开发环境搭建:nginx+mysql+php+ph

          本文链接:https://www.haomeiwen.com/subject/cbrrwxtx.html