美文网首页PHP
mac php + xdebug安装

mac php + xdebug安装

作者: Dowte | 来源:发表于2018-02-22 11:54 被阅读1232次

    mac php + xdebug安装

    背景:之前用的自带php 配置的xdebug,突然发现不能用了,error.log 也不记录在之前的日志文件里了
    查看php -v 成了7.1 的了,一脸xx
    
    最后进/usr/bin 看,php确实变成了7.1
    /ect 下面之前配置的php.ini 也不见了
    最后在查问题时,看到一篇
    https://www.cnblogs.com/ailhc/p/7398479.html
    提到mac在系统更新时候,会将自带的配置给还原,(最近更新了High Sierra)
    放弃自带php,再见
    

    首先

    • 因为自带的php可能其他地方会用到,就不删除了,重新装一个
    brew update
    brew search php
    brew install php71
    

    安装后查看下php -v php-fpm -v 是不是最新的7.1.11 mac最新自带 7.1.7
    如果不是查看环境变量

    echo $PATH 
    

    看看/usr/local/bin/和/usr/local/sbin 是不是写在/usr/bin和/usr/sbin之前
    没有则添加,不是则修改

    安装个php-version(有需要安装多版本的可以安装)

    brew install php-version
    source $(brew --prefix php-version)/php-version.sh && php-version
    php-version 查看当前安装的版本(自带的是看不到的?)
    
    /**
     * 只能在当前终端有效, 新切换的终端输入php -v不变,但是我们只要在切换过的终端,
     * 启动php-fpm,后台运行的就是切换后的fpm。
     */
    php-version 7.1.11  //更换版本
    

    配置php php-fpm

    • brew 安装的php,配置文件在/usr/loacl/etc/php
    cd /usr/loacl/etc/php 
    cd 7.1 //找对应版本
    
    • 修改配置
    vim php.ini //没有则增加
    display_errors = off //不显示错误信息(不输出到页面或屏幕上)
    log_errors = On
    error_log = "/usr/local/lnmp/php/var/log/error_log"(自定义,绝对路径)
    error_reporting=E_ALL
    
    vim php-fpm.conf //没有则增加
    catch_workers_output = yes
    error_log = "/usr/local/lnmp/php/var/log/error_log"(自定义,绝对路径)
    
    //注意!
    php_admin_value[error_log]参数会覆盖php.ini中的error_log 参数
    
    最终按phpinfo 里的error_log配置为准
    

    启动php-fpm

    php-fpm -v  先查看是不是要启动的版本
    sudo php-fpm
    
    //出现问题 php-fpm 并不在后台运行
    终端输出
    NOTICE: fpm is running, pid 42540
    NOTICE: ready to handle connections
    
    //结束php-fpm
    sudo killall php-fpm
    //修改php-fpm.conf
    daemonize = yes  (如果设置为no, fpm会运行在前台)
    再启动
    在页面输出phpinfo()查看error_log配置
    

    安装Xdebug

    寻找对应php版本的xdebug版本

    1. 先将info输出到一个文件
      php -i > info.txt

    2. 打开info.txt 复制所有内容

    3. 打开寻找合适xdebug的页面https://xdebug.org/wizard.php

    4. 将刚才复制的内容粘贴至提供的输入框中 点击Analyse my phpinfo() output 就会显示下载安装步骤,
      跟着一步步执行就好了

    //出现问题 配置之后php -v | php -m 显示
    Zend OPcache requires Zend Engine API version 220090626.
    The Zend Engine API version 220100525 which is installed, is newer.
    Contact Zend Technologies at http://www.zend.com/ for a later version of Zend OPcache.
    
    解决办法,重新配置xdebug,删除之前的xdebug.so(移动过去的那个) 和 xdebug文件夹,
    重新解压
    按照上面执行步骤,在执行phpize命令 时候,使用绝对路径,php所在的路径 
    /usr/local/Cellar/php71/7.1.11_22/bin/phpize
    

    配置xdebug

    xdebug.remote_enable = 1
    xdebug.remote_handler = "dbgp"
    xdebug.remote_host = "127.0.0.1"
    xdebug.remote_port = 9001 
    xdebug.remote_log = "/var/log/php-fpm/xdebug.log"
    

    设置php-fpm开机自启

    进入 /usr/local/Cellar/php71/7.1.11_22
    将brew安装php生成的开机自启文件复制到 /Library/LaunchDaemons(或者在/Library/LaunchDaemon新建一个内容如下的plist文件)

    sudo cp homebrew.mxcl.php71.plist /Library/LaunchDaemons
    sudo vim /Library/LaunchDaemons/homebrew.mxcl.php71.plist
    

    文件内容 修改 至以下

    <?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>homebrew.mxcl.php71</string>
      <key>ProgramArguments</key>
      <array>
        <string>/usr/local/opt/php71/sbin/php-fpm</string>
      </array>
      <key>KeepAlive</key>
      <true/>
    </dict>
    </plist>
    
    • 加入开机自启
    sudo plutil -lint /Library/LaunchDaemons/com.mysql.plist //检查文件是否有问题
    sudo launchctl load -w /Library/LaunchDaemons/com.mysql.plist //加入开启自启
    
    注:
    1. 文件权限 sudo chown root:wheel /Library/LaunchDaemons/com.mysql.plist
    2. 删除自启 sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.plist
    

    参考文章

    相关文章

      网友评论

        本文标题:mac php + xdebug安装

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