У меня есть сервер под управлением CentOS7, PHP7.0.7 с php-fpm и SELinux. Я пытаюсь отладить PHP-скрипт, запущенный на этом сервере. И у меня есть компьютер Mac, на котором запущен PHPstorm, на котором я собираюсь выполнить отладку.
Я следил за этим руководством по Phpstorm.
Вот что я сделал:
1) установлен xdebug на сервер
2) установите конфигурацию xdebug следующим образом:
zend_extension = "/ usr / lib64 / php / modules / xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_host = "локальный хост"
xdebug.remote_port = 9099
xdebug.remote_handler = dbgp
xdebug.remote_autostart = 1
xdebug.idekey = "PHPSTORM"
3) установите конфигурацию ssh: AllowTcpForwarding yes (затем я вернул ее, так как это не помогло)
4) перезапущены php-fpm, sshd и httpd
5) в моем локальном терминале откройте ssh-соединение с сервером с указанным флагом -R
$ ssh -R 9099: localhost: 9099 пользователь @ хост
6) Изменена конфигурация xdebug в моем phpstorm для прослушивания порта 9099 и установки точки останова в index.php
7) Открыл сайт в моем браузере
Но все же мой локальный xdebug не останавливается на точке останова.
Что мне могло не хватать в этой конфигурации?
Может быть, SElinux мешает отладке?
старый вопрос, но я все равно оставлю это здесь,
так как это может хотя бы помочь кому-то с устранением неполадок
setsebool -P httpd_execmem 1
Если этот параметр включен, это логическое значение позволяет httpd выполнять программы, которым требуются адреса памяти, которые могут быть как исполняемыми, так и записываемыми. Включение этого логического значения не рекомендуется с точки зрения безопасности, поскольку оно снижает защиту от переполнения буфера, однако некоторые модули и приложения (например, приложения Java и Mono), и, как я сегодня узнал, xdebug) требуют этой привилегии.