Развернул сайт на Docker, но не могу сконнектить IDE VSCode c моим PHP сервером. Посмотрел кучу мануалов, но даже не знаю где посмотреть ошибки от этого соединения. Debug Colsole пустая
В phpinfo(видно, что Xdebug включен, видны его параметры, 9000 порт и тд)
В моем Dockerfile:
pecl install xdebug
RUN echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=true" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=true" >> /usr/local/etc/php/conf.d/xdebug.ini
VS CODE
{
// Используйте IntelliSense, чтобы узнать о возможных атрибутах.
// Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
// Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"hostname": "::"
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
Вы имели в виду Xdebug, очевидно, когда писали про PHPDebug. Из заголовка это не очень понятно, можно подумать что речь идет о Phpdbg
Дальше нужно отметить что очень грубо говоря - xdebug шлет на удаленную машину некую информацию по некому протоколу. Удаленная машина в нашем случаея является как раз ваша IDE, а значит наша задача сделать так, чтобы с хоста где крутится у вас PHP на хост с вашей IDE попала нужная информация на определенный порт.
Еще чуть чуть дальше -
В xdebug есть настройки, в частности вот xdebug.remote_host
. В силу того что по-умолчанию все идет на порт 9000 , то мы настройки порта не трогаем без необходимости, а вот значение remote_host
по-умолчанию это localhost
, обратите на это внимание.
Ну и теперь давайте соберем все воедино.
Когда вы запускаете Docker
то с точки зрения докер контейнера localhost
это сам контейнер, т.е. xdebug
в этом случае пытается отправить данные самому контейнеру (localhost:9000
) что в нашем случае не верно.
Почему не верно, спросите Вы, а потом что когда вы запускаете контейнер, то хост, на котором запущен сам Docker
и соответственно все запущеные контейнеры (а так же на нем находится ваша IDE) с точки зрения контейнеров по-умолчанию будет скорее всего иметь адрес 172.17.0.1
. Этот адрес вам и нужно прописать в remote_host
настроек Xdebug
(ну или тот адрес который конкретно у вас ).
Так же меня немного смущает настройка в вашем IDE "hostname": "::"
не ограничивает ли она ваш хост только ipv6 адресами, но скорее всего нет, однако если не заработает то нужно будет и сюда внимание обратить.
Ну в общем в сухом остатке - добавьте/замените xdebug.remote_host=172.17.0.1
p.s. так же есть настройки xdebug.idekey обратите на нее тоже внимание.
updt. А вот тут собственно уже это обсуждалось.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть сайт на Laravel, и есть API, которые расположены на другом сервере, они выполняют все функции ЛК от регистрации до пополнения баланса и прочими...
Я использую виджет kartik yii2-widget-fileinputВо вью вставил следующий код:
Код php для добавления значений таблице в mysqlНе работает добавление новых значений, запрос идет, а в результате ничего не добавляется