Apache: 403 запрещено для WSGIScriptAlias

Я пытаюсь установить istSOS, следуя этим инструкциям с сайта:


Монтаж

Установить PostgreSQL

$ sudo apt-get install postgresql postgresql-client postgresql-contrib pgadmin3

Установить PostGIS

$ sudo apt-get install postgresql-9.1-postgis

Настроить пароль PostgreSQL

$ sudo -u postgres psql
> alter user postgres password 'postgres';

Установите Apache2

$ sudo apt-get install apache2

Установить mod_wsgi

$ sudo apt-get install libapache2-mod-wsgi

Установите psycopg2

$ sudo apt-get install python-psycopg2

Скачайте istSOS и распакуйте его в /usr/local/istsos

$ wget http://istsos.googlecode.com/files/istSOS-2.0.tar.gz

Место загрузки фактически изменилось на SourceForge.

$ sudo tar -zxvf istSOS-2.0.tar.gz  -C /usr/local/

Установить разрешение на выполнение и владельца для папок services а также logs

$ sudo chmod 755 -R /usr/local/istsos
$ sudo chown -R www-data:www-data /usr/local/istsos/services
$ sudo chown -R www-data:www-data /usr/local/istsos/logs

Настройте Apache и WSGI

  • открыто /etc/apache2/sites-enabled/000-default.conf и добавьте следующие строки непосредственно перед тегом </VirtualHost>

    WSGIScriptAlias /istsos /usr/local/istsos/application.py
    Alias /istsos/admin /usr/local/istsos/interface
    

Перезагрузите сервер apache2

$ sudo /etc/init.d/apache2 restart

Проверьте успешность установки в браузере, загружающем страницу

http://localhost/istsos/admin

проблема

Тем не менее, веб-сервер возвращает Unable to connect,
Когда я пытаюсь http://localhost:8080/istsos/admin вместо этого я получаю:

Not Found
The requested URL /istsos/admin was not found on this server.

В поисках ответа

По предложению krisfr я пытаюсь выяснить, почему сервер отвечает на порт 8080 вместо порта 80.

$ apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
*:80                is a NameVirtualHost
      default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
      port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
      port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)

Кажется, для этого нет конфигурации?!


Обновить

Я извлек проблему Apache/Port в другой вопрос и получил полезный ответ. Затем я настроил сервер для прослушивания порта 80 и перезапустил сервер. Когда я получаю доступ http://localhost/istsos/admin Я получаю следующее сообщение:

запрещено

У вас нет прав доступа к /istsos/admin на этом сервере.
Сервер Apache/2.4.6 (Ubuntu) на локальном хосте, порт 80

Настройки владельца для папок устанавливаются в соответствии с инструкциями. Я нашел альтернативные инструкции по установке istSOS, которые мне еще предстоит понять, но я уже хочу поделиться с вами.


Учебник перенесен!

Есть новая страница для учебника!

3 ответа

Решение

Наконец, я запустил сервер после публикации проблемы в списке рассылки istSOS. Вот основная часть ответа Милана:

Эта версия Ubuntu [13.10] поставляется с более новой версией Apache. В моем случае я решаю проблему с настройкой Apache и WSGI следующим образом:

Я выкладываю весь файл конфигурации, чтобы его было легче понять. Вот содержание /etc/apache2/sites-enabled/000-default.conf на моей машине:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www    
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    WSGIScriptAlias /istsos /usr/local/istsos/application.py
    Alias /istsos/admin /usr/local/istsos/interface
    <LocationMatch /istsos>
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride all
        Require all granted
    </LocationMatch>
</VirtualHost>

Пожалуйста, не забудьте перезапустить Apache после изменения конфигурации:

$ sudo service apache2 restart

Любая причина, почему вы хотите получить доступ istsos страница администратора на порту 8080? Я не вижу ссылки на этот порт в предоставленной вами документации.

В документе говорят, чтобы изменить файл /etc/apache2/sites-enabled/000-default.conf, Этот файл является конфигурацией виртуального хоста по умолчанию для Apache. Настроен на порт 80,

Отныне, кажется, у вас уже есть настройка виртуального хоста для прослушивания порта 8080, Итак, откройте файл конфигурации для этого виртуального хоста и сделайте то же самое, что вы сделали для стандартного:

добавьте следующее перед тегом </VirtualHost>:

WSGIScriptAlias /istsos /usr/local/istsos/application.py
Alias /istsos/admin /usr/local/istsos/interface

Попробуйте добавить след / в конце интерфейса. 8080 на самом деле является приложением wsgi (application.py), а 80 - для него в apache.

Другие вопросы по тегам