Назад | Перейти на главную страницу

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

Начать сначала 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 localhost

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


Учебник перемещен!

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

Любая причина, по которой вы хотите получить доступ 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

Наконец, я запустил сервер после публикации проблемы в список рассылки 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

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