Я использую Apache 2.4.6 на openSUSE 13.1 и хочу немного заняться веб-разработкой, в основном сценариями php. Поэтому я установил eclipse mars для разработчиков php. Файлы HTML и php, которые я поместил в правильный каталог, как указано в этой инструкции, т.е. /srv/www/htdocs/ действительно обрабатываются и корректно, например, если я помещаю newfile.php в эту папку, я получаю правильный вывод на localhost/newfile.php . Теперь проблема в том, что сервер не может получить доступ к файлам в рабочей области. Я пробовал несколько подходов до сих пор:

  1. Симлинк из /srv/www/htdocs/ to /path/to/workspace/ . Это изменило вывод с сервера с "404 Объект не найден" на "403 Доступ запрещен", хотя я дал полный доступ, начиная с / .

  2. Предоставление доступа к каталогу путем редактирования httpd.conf, например

    <Directory "/path/to/workspace/">
        Require all granted
    <Directory>
    
  3. Настройка сервера в Eclipse с использованием pathmapping.

  4. Помещение новой рабочей области в /srv/www/htdocs/ . Но уже, когда я хочу получить доступ к файлу в localhost/workspace/file.php я получаю "404 Объект не найден"

Еще ничего не показывало желаемого эффекта. Поскольку мне нужен только доступ для целей разработки, а сеть защищена извне, даже обходные пути были бы для меня вполне приемлемыми, хотя более правильный способ сделать это, конечно, предпочтительнее.

Редактировать: Решение

Проблема, которая вызвала проблему, была такой же простой, как и смертельной. Брандмауэр openSUSE заблокировал порт 80. Теперь решение с переносом рабочего пространства eclipse в /srv/www/htdocs/ работает.

1 ответ1

0

Правильный способ сделать то, что вы хотите, это почти всегда использовать какой-то этап развертывания.

Для чисто внутренней или экспериментальной установки это может быть что-то простое, например, скрипт, который запускает rsync -a --delete ./* /srv/www/htdocs . (Указание исходных файлов с помощью ./* снижает риск возникновения необычных имен файлов, вызывающих проблемы во время процесса копирования.)

Затем вы можете, при необходимости, изменить сценарий развертывания, чтобы внести дополнительные изменения, такие как: внести любые применимые изменения в файлы конфигурации, установить владельца и разрешения для файлов и каталогов, удалить вещи, которые не должны быть доступны для веб-сервера. (.gitignore кто-нибудь?) и т. д.

Таким образом, веб-сервер может быть настроен без какого-либо конкретного учета потребностей стороны разработки. Пусть у Eclipse все по-своему, а у Apache все по-своему.

Не должно быть слишком сложно настроить Eclipse для запуска такого сценария при "сборке" программного обеспечения, если вам нужен единый рабочий процесс решения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .