Конфигурация среды nginx+phpstorm+xdebug

задняя часть Nginx

Разработкой на PHP давно не занимался.Так как в ближайшее время предстоит поддерживать проект PHP, то при развертывании среды разработки часто возникают ошибки.Если код можно отладить, то будет очень удобно решить проблему . Поэтому на основе phpstorm + xdebug была настроена отлаживаемая среда разработки.В течение этого периода я также запрашивал и ссылался на процессы настройки многих других людей и обнаружил, что многие из них были не очень интуитивными или имели упущения. Теперь задокументируйте мои шаги по настройке здесь.

1. Установите php+xdebug+nginx

brew install php71
brew install php71-memcached #项目需要,不需要可以不安装
brew install php71-xdebug
brew install nginx

2. Настройте nginx

vim ~/homebrew/etc/nginx/servers/drone.conf
# 常规配置,可根据自己项目调整
server {
    listen 80;
    
    # 按自己的需要配置访问的域名
    server_name drone-dev.husor.com;
    root /data/wwwroot/drone/;
    
    location ~* \.php {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_index   index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param   PATH_INFO   $fastcgi_path_info;
    }
}

3. Настройте phpstorm+xdebug

  • Выберите «Редактировать конфигурации» в правом верхнем углу проекта phpstorm...
  • Создайте новое веб-приложение PHP, такое как мой дрон здесь
  • Нажмите кнопку после сервера, чтобы создать новый сервер, например, мой nginx здесь

  • Откройте «Настройки» phpstorm, выберите по очереди «Языки и рамки» > «PHP» и настройте ранее установленный php.

Щелкните ссылку, чтобы открыть файл xdebug.ini.

[xdebug]
; 默认zend_extension路径已经配置好了
zend_extension="/Users/xxx/homebrew/opt/php71-xdebug/xdebug.so" 
xdebug.idekey="macgdbp"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"

Порт отладки совпадает с remote_port в xdebug.ini.

4. Запустите php+nginx

sudo brew services start nginx
brew services start php71
# 如果已经启动过的,就重启

5. Отладьте код

  • Нажмите кнопку отладки в правом верхнем углу проекта.

  • остановился в точке останова

   Сама настройка не сложная Проблема, с которой я столкнулся, заключалась в том, что порт отладки не был настроен, а удаленный_порт был неправильно настроен. Зная эти два момента, можно в принципе добиться успеха один раз