#php #debugging #emacs #xdebug #geben
#php #отладка #emacs #xdebug #geben
Вопрос:
Предварительные требования
- Веб-сервер с PHP и xdebug. общий каталог htdocs через NFS.
- На компьютере разработчика запущен emacs с geben. Файлы, отредактированные с помощью NFS-монтирования каталога htdocs сервера.
Проблема
При отладке веб-приложений PHP с помощью emacs и geben файлы веб-приложения, которые открываются, являются не локальными файлами, а «фиктивными» файлами, которые представляют содержимое файла на сервере.
Основная проблема, с которой я сталкиваюсь, заключается в том, что я не могу напрямую редактировать файлы, потому что я изменил бы их на сервере, что приводит к нескольким причинам:
- изменение временного файла приводит к тому, что emacs запрашивает у меня учетные данные для входа по ssh
- изменяя временный файл, emacs хочет перезагрузить исходные открытые файлы, потому что они изменились
- метки перехода недоступны во временных файлах
В идеале, необходимо было бы настроить сопоставление удаленных путей с локальными путями, но я думаю, что в настоящее время это невозможно с geben. Существуют ли решения этой проблемы?
Комментарии:
1. Я знаю, что этот вопрос устарел, но я борюсь с этим прямо сейчас. Любое обновление было бы неплохо.
2. Я не нашел решения.
3. не могу найти способ сделать это. У меня Apache запущен внутри контейнера docker, поэтому Geben рассматривает его как другой хост, но на самом деле это подключенный локальный каталог. Лучший способ на данный момент — установить ssh-сервер внутри контейнера docker и настроить ssh-ключи, чтобы избежать учетных данных для входа.
Ответ №1:
Я не уверен, какую ОС вы используете, но вы можете добиться большего успеха, используя sshfs, поскольку, похоже, именно ее вы используете для подключения к удаленному серверу.
Попробуйте настроить свой ssh с помощью закрытого ключа. Таким образом, у вас не будут так часто запрашивать пароль.
Комментарии:
1. ssh здесь абсолютно ничего не делает. Я явно сказал, что использую NFS, и, кроме того, geben открывает фиктивный файл независимо от типа базовой файловой системы.
2. Интересно. Почему тогда это: «изменение временного файла приводит к тому, что emacs запрашивает у меня учетные данные для входа по ssh»?
3. потому что emacs / geben знает, что это удаленный сервер, и предполагает, что вы можете подключиться к серверу по ssh для изменения файла. Я не хочу такого поведения — я хочу сопоставление удаленного с локальным.