【发布时间】:2013-05-08 18:51:28
【问题描述】:
我使用安装了 apache2 和 mod_wsgi 的 ubuntu 12.04。 我想在本地计算机上使用 Bottlepy 和 php。 我知道其他人已经在Apache mod_wsgi and php in the same domain 中提出过这样的问题。 但是有人建议我提出一个新问题,因为我的问题可能会有所不同。
我已将/etc/apache2/sites-available/default 更改为:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
<VirtualHost *>
DocumentRoot /home/gofrendi/workspace/kokoropy
ServerName oraiso
WSGIDaemonProcess kokoropy user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias /kokoropy /home/gofrendi/workspace/kokoropy/kokoro.wsgi
<Directory /home/gofrendi/workspace/kokoropy>
WSGIProcessGroup kokoropy
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
第一个虚拟主机用于 PHP,第二个用于 Bottlepy。
我将我的 Bottlepy 应用程序放在 /home/gofrendi/workspace/kokoropy 中。我在包含此脚本的同一目录中有kokoro.wsgi:
import os
sys.path = [os.path.dirname(__file__)] + sys.path
from kokoropy import kokoro_init
PWD = os.path.dirname(os.path.abspath(__file__))
APP_DIRECTORY = 'applications'
APPLICATION_PATH = os.path.join(PWD, APP_DIRECTORY)
application = kokoro_init(application_path = APPLICATION_PATH, run = False)
我确实通过使用启用配置
sudo a2ensite default
sudo service apache2 restart
我的 PHP 脚本仍然按预期工作。但是,每当我不知道如何访问我的 Bottlepy 脚本时。
我还尝试删除 /etc/apache2/sites-available/default 的 PHP 部分,使其仅包含
<VirtualHost *>
DocumentRoot /home/gofrendi/workspace/kokoropy
ServerName oraiso
WSGIDaemonProcess kokoropy user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias /kokoropy /home/gofrendi/workspace/kokoropy/kokoro.wsgi
<Directory /home/gofrendi/workspace/kokoropy>
WSGIProcessGroup kokoropy
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
但我仍然无法获得瓶子般的工作。它只是简单地显示 404 not found。
有人有同样的经历吗?如何让它发挥作用? 谢谢。
【问题讨论】:
-
您使用什么 URL 访问 PHP 站点以及访问 Python 站点的 URL?根据您显示的内容,Python 站点应以
http://oraiso/kokoropy访问。那是你正在使用的吗? 'oraiso' 是否为主机解析,或者您实际上是否应该为 ServerName 使用 FQDN。 -
我想要 localhost 用于 php 和 oraiso 用于 python
-
但是您使用的 Python 站点的确切 URL 是什么?你没有回答问题。
-
其实我希望它是
http://oraiso/我认为 WSGIScriptAlias 应该是 "/" 那么。我回家后会再试一次。谢谢 -
问题已经解决了,@GrahamDumpleton。非常感谢您的帮助