【发布时间】:2016-02-27 05:37:04
【问题描述】:
谁能帮助我在一个共享主机上设置生产服务器与金字塔?我搜索了一整天试图完成这项工作,但没有任何效果。
我在编写 .htaccess 和 index.fcgi 文件时遇到问题。我试图结合这些教程; 1,2,3,4 想弄清楚,但是当我访问该网站时,我看到的是 index.fcgi 的内容而不是应用程序。我已经完成了这些步骤;
-
在home目录下为python创建虚拟环境并激活:
mkdir temp; cd temp curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-12.0.7.tar.gz gzip -cd virtualenv-12.0.7.tar.gz |tar xf - cd virtualenv-12.0.7 python2.7 setup.py install --user cd ~ ~/.local/bin/virtualenv pyramid --python=python2.7 source ~/pyramid/bin/activate -
在虚拟环境中安装金字塔。
pip install pyramid -
创建了一个测试项目;
pcreate -s starter myProject cd myProject python setup.py install -
安装的flup
pip install flup -
在我的 public_html 文件夹中创建了一个 index.fcgi 文件,内容如下:
#!/home3/reyhane/pyramid/bin/python import os import sys myapp = '/home3/reyhane/myProject' inifile = 'production.ini' sys.path.insert(0, myapp ) from paste.deploy import loadapp wsgi_app = loadapp('config:' + myapp + '/' + inifile) if __name__ == '__main__': from flup.server.fcgi import WSGIServer WSGIServer(wsgi_app).run() -
使 index.fcgi 可执行;
cd public_html chmod +x index.fcgi它的权限是0755。
-
将public_html文件夹中的.htaccess文件修改为:
AddHandler fastcgi-script .fcgi DirectoryIndex index.fcgi RewriteEngine On RewriteBase / RewriteRule ^index\.fcgi$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.fcgi/$1 [L] AddType "text/html; charset=UTF-8" html AddType "text/plain; charset=UTF-8" txt AddCharset UTF-8 .html AddDefaultCharset UTF-8
所以我的目录是这样的:
home3/reyhane/
|-- pyramid
|-- myProject
| |-- myProject
| |-- production.ini
|-- public_html/
| |-- index.fcgi
| |-- .htaccess
.htaccess 文件似乎正在完成它的工作,因为页面被重定向到 index.fcgi,但 index.fcgi 肯定有问题。
【问题讨论】:
-
我没有更改 production.ini 文件。那里有什么必须做的改变吗?
-
发生了什么?有错误信息吗?日志中是否有任何内容?
-
Apache 没有如何处理 .fcgi 文件。它认为这是一个需要发送给用户的纯文本文件。 .htaccess 被忽略或
AddHandler不起作用。如果它是共享网络主机,通常意味着您自己可能无法访问 Apache 来了解发生了什么。但在这种情况下,您可以联系托管公司的支持为您解决问题。 -
如果 Django 工作 Pyramid 也应该工作。 WSGI 是 Python 标准协议,可供服务器端的任何 Python 应用程序使用。
-
这就是为什么最好遵循 Gator 的说明,因为他们的说明应该 100% 与他们的主机一起工作。如果这些说明不起作用,那么您可以联系他们的支持。您可以交叉参考他们的说明并弄清楚它们与您的 .htaccess 等有何不同。
标签: python apache .htaccess pyramid fastcgi