Указанный в PhpStorm URL-адрес недоступен, вызван: «Ошибка запроса с кодом состояния 404»

#.htaccess #phpstorm #xdebug #putty #portforwarding

#.htaccess #phpstorm #ошибка xdebug #замазка #перенаправление портов

Вопрос:

Я хочу использовать Xdebug специально для функции пошаговой отладки в PhpStorm. Я использую Xdebug в своих личных приложениях просто отлично, без переадресации портов. Однако моя текущая проблема связана с приложением на серверах, на которых у меня нет прав администратора для работы с файлами php.ini и 20-xdebug.ini. Я хочу использовать Xdebug, настроив .htaccess, для которого у меня «есть» разрешение на запись в каталоге /public . Я считаю, что моя проблема заключается в том, что у нас есть сервер посередине, называемый сервером перехода, и я думаю, что мои конфигурации неверны.

X-debug установлен на веб-сервере, но в настоящее время отключен. Я включаю его с помощью .htaccess в папке /public . ОН не включит его в системе из-за того, что сервер используется многими разработчиками. Я единственный, кто использует Xdebug для приложения, над которым я работаю.

Установлен Xdebug.

 <pre>
developer@****:~$ php --version
PHP 7.2.24-0ubuntu0.18.04.6 (cli) (built: May 26 2020 13:09:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.6, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
</pre>
 

Файлы конфигурации PHP:

 <pre>
developer@****:~$ php --ini
Configuration File (php.ini) Path: /etc/php/7.2/cli
Loaded Configuration File:         /etc/php/7.2/cli/php.ini
Scan for additional .ini files in: /etc/php/7.2/cli/conf.d
Additional .ini files parsed:      /etc/php/7.2/cli/conf.d/10-mysqlnd.ini,
...
/etc/php/7.2/cli/conf.d/20-xdebug.ini,
...
</pre>
 

Конфигурации .htaccess:

 <pre>
developer@****:~$ cat /www/1234-5678/public/.htaccess
zend_extension=xdebug.so
php_flag xdebug.remote_enable=1
php_flag xdebug.remote_autostart on
php_flag xdebug.remote_connect_back=1
php_flag xdebug.remote_port=9000
php_flag xdebug.max_nesting_level=512
php_flag xdebug.remote_host="192.168.10.1"
PHP_flag xdebug.idekey=PHPSTORM
</pre>
 

Установленные конфигурации Xdebug:

 <pre>
developer@****:~$ cat /etc/php/7.2/cli/conf.d/20-xdebug.ini
zend_extension=xdebug.so
</pre>
 

С этим набором…

Вот как я подключаюсь к веб-серверу: ПК> PuTTY SSH для подключения к серверу перехода> SSH сервера перехода на сервер по порту # и localhost (ssh -p #### localhost)

Я настроил PuTTY:

 <pre>
Session -
Host Name (or IP address) - fake.jumpserver.com
Port: 22

Connection > SSH > Tunnels
Source Port: 7008
Destination: 192.168.240.100:22008
</pre>
 

Как только я открою соединение PuTTY, я могу использовать команду для ssh в локальный порт 7008 (удаленный порт 192.168.240.100: 22008).

 <pre>
developer@lenovo MINGW64 ~
$ ssh -p 7008 localhost
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.0-1017-aws x86_64)
...
Last login: Fri Jan 15 18:09:05 2021 from 192.168.240.100
developer@****:~$ cd /www/app/1234-5678/public
developer@****:/www/app/1234-5678$ pwd
/www/app/1234-5678/public
</pre>
 

Конфигурации PhpStorm:

Конфигурации SSH, успешное тестирование соединения!

 <pre>
Name: Port_22008_SSH

Host: localhost
Port: 7008
Username: developer
Local port: --dynamic
Authentication type: Key pair OpenSSh or PuTTY
Private key file: C:...developer.sshid_rsa
Passphrase: *****
</pre>
 

Сборка, выполнение, развертывание:

 <pre>
Connection -
Name: Port_22008_SFTP

Type: SFTP
SSH Configuration: Port_22008_SSH
Test Connection: Success

Root path: /www/app/1234-56789
Web server URL: https://1234-56789.fakewebsitelink.com

Mappings -

Local path: C:UsersdeveloperPhpstormProjectscontracts1234-5678
Deployment path: /
Web path: /
</pre>
 

Языки и фреймворки

 <pre>
PHP language Level: 7.2
CLI Interpreter: Port_22008_CLI(7.2.24-0ubuntu0.18.04.6)
<pre>
Name: Port_22008_CLI
SSH Configuration: Port_22008_SSH

PHP Executable: /usr/bin/php
</pre>
Path mappings: Project-root->/www/app/1234-5678
</pre>
 

Теперь к проверке конфигураций отладчика
Языки и фреймворки> Отладка

 <pre>
Path to create validation script: C:UsersdeveloperPhpstormProjectscontracts1234-5678
Deployment Server: Port_22008_SFTP
</pre>
 

Отладчик включен в браузере

введите описание изображения здесь

Файл журнала Idea:

 
INFO - eyprovider.OpenSSHKeyV1KeyFile - Ключевая пара зашифрована с помощью: aes256-ctr, bcrypt, [0, 0, 0, 16, 59, -84, -66, -121, 47, 63, 91, -99, -127, 88, -125, -126, -39, -126, 70, -9, 0, 0, 0,16] 

ПРЕДУПРЕЖДЕНИЕ - net.schmizz.concurrent.Обещание -> пробуждение: ошибка открытия канала "сеанс": открыть не удалось 

INFO - .channel.direct.SessionChannel - запросит подсистему sftp 

INFO - eyprovider.OpenSSHKeyV1KeyFile - Ключевая пара зашифрована с помощью: aes256-ctr, bcrypt, [0, 0, 0, 16, 59, -84, -66, -121, 47, 63, 91, -99, -127, 88, -125, -126, -39, -126, 70, -9, 0, 0, 0,16] 

INFO - on.PhpRemoteWebServerValidator - Создать файл '/ www/app/1234-5678/_intellij_phpdebug_validator .php' 

INFO - on.PhpRemoteWebServerValidator - Загрузка сценария проверки на Порт_22008_SFTP завершена за 1 секунду, 45 мс: передан 1 файл (5,8 кбит / с) 

ПРЕДУПРЕЖДЕНИЕ.Сбой проверки веб-сервера PhpWebServerValidator из-за: "Ошибка запроса с кодом состояния 404" 

INFO - eyprovider.OpenSSHKeyV1KeyFile - Ключевая пара зашифрована с помощью: aes256-ctr, bcrypt, [0, 0, 0, 16, 59, -84, -66, -121, 47, 63, 91, -99, -127, 88, -125, -126, -39, -126, 70, -9, 0, 0, 0,16] 

INFO - on.PhpRemoteWebServerValidator - Удалить файл '/ www/app/1234-5678/_intellij_phpdebug_validator .php' 

ПРЕДУПРЕЖДЕНИЕ - .AbstractProgressIndicatorBase - этот индикатор выполнения не определен, это может привести к визуальной несогласованности. Пожалуйста, вызовите setIndeterminate(false) перед началом выполнения.
com.intellij.ide.util.Делегирование ProgressIndicator.setFraction(делегирование ProgressIndicator.java:78) 

INFO - on.PhpRemoteWebServerValidator - Очистка ... завершена за 138 мс: удален 1 элемент 

Комментарии:

1. Что ж, проверьте журнал доступа в вашем Apache — какой URL запрашивается, и проверьте, существует ли такой файл там, когда происходит такой запрос. Вы также можете проверить idea.log возможные детали ( Help | Show Log in... ) — возможно, потребуется включить дополнительное ведение журнала: intellij-support.jetbrains.com/hc/en-us/articles /…

2. Хм. Хорошее предложение. В idea.log не так много информации. Похоже, что на сервере нет журнала доступа, хранящегося в типичном каталоге apache2, не удается его найти и не удается выполнить общесистемный поиск из-за разрешения. Тьфу. Обновите мой пост журналами idea.

3. 1) /www/app/1234-5678/_intellij_phpdebug_validator.php — попробуйте поместить свой собственный файл (только phpinfo() в нем) с похожим именем файла и попробуйте вызвать его через браузер — сработает ли это? Насколько я понимаю, его следует вызывать через https://1234-56789.fakewebsitelink.com/_intellij_phpdebug_validator.php URL. Возможно, это потому, что это HTTPS (маловероятно, но все возможно) 2) Какое дополнительное ведение журнала вы включили в PhpStorm? Просто развертывание? Попробуйте также включить Debugging/ PHP (я надеюсь, что в нем также будет указан URL-адрес).