Как настроить отладку PHP на Ubuntu?

Как настроить PHP с поддержкой отладки, чтобы решить проблему, когда расширение pdo_mysql.so не загружается при запуске скрипта из командной строки, но работает, когда скрипт открывается в браузере? Как разобраться в разнице в поведении PHP, связанном со статической и динамической линковкой? Влияет ли компиляция PHP с отладочными символами на данную проблему?
  • 20 июня 2024 г. 15:12
Ответы на вопрос 2
Для настройки отладки PHP на Ubuntu, можно воспользоваться утилитой Xdebug. Ниже приведены инструкции по установке и настройке:

1. Установить Xdebug:

```
sudo apt-get install php-xdebug
```

2. Добавить следующие строки в файл php.ini:

```
zend_extension=/usr/lib/php/20170718/xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
```

3. Перезапустить веб-сервер:

```
sudo systemctl restart apache2
```

Теперь отладка PHP будет активирована и вы сможете использовать средства отладки, такие как Xdebug Chrome Extension или PhpStorm.

Относительно проблемы с расширением pdo_mysql.so: разница в поведении PHP при запуске из командной строки и из браузера может быть вызвана разными настройками php.ini для CLI и веб-сервера. Убедитесь, что в обоих файлах php.ini прописан путь к расширению pdo_mysql.so и оно активировано.

Компиляция PHP с отладочными символами может помочь вам разобраться в ошибке при запуске PHP из командной строки. Однако, обычно это делается для упрощения процесса отладки самого PHP и не обязательно решает проблемы с загрузкой расширений. Если PHP компилируется с отладочными символами, это может повлиять на производительность при работе с PHP веб-сервером.
Но при попытке запустить этот же скрипт из командной строки я получаю ошибку о том, что расширение pdo_mysql.so не может быть загружено.
Для cli и для "веба" разные php.ini, в которых естественно включены разные расширения.

php --ini для cli
phpinfo() для веба
Похожие вопросы