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.