0

https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/详细介绍了 FCGI 的一些设置,但是虽然它有 Apache 配置文件的材料,但它省略了 FCGI。

如何为在绑定到 127.0.0.1 的同一服务器上运行并侦听端口 1234 的守护进程 fastcgi 进程创建 site.fcgi 文件?

- 编辑 -

我的 httpd.conf 中有以下内容:

FastCGIExternalServer /home/jonathan/store/deploy/store.fcgi -host 127.0.0.1:1234

<VirtualHost *:80>
    ServerName steampunk.stornge.com
    DocumentRoot /home/jonathan/store/
    Alias /media /home/jonathan/store/media
    RewriteEngine On
    RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
    RewriteCond %(REQUEST_FILENAME} !-f
    RewriteRule ^/(.*)$ /store.fcgi/$1 [QSA,L]
</VirtualHost>

在 /home/jonathan/store/deploy/store.fcgi 我有:

import os
import sys

from os.path import abspath, dirname, join
from site import addsitedir

sys.path.insert(0, abspath(join(dirname(__file__), "../")))

from django.conf import settings
os.environ["DJANGO_SETTINGS_MODULE"] = "store.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="true")

我也有,跑步,

python manage.py runfcgi method=threaded host=127.0.0.1 port=1234

当我打开 http://[hostname] 时,我得到:

Not Found

The requested URL / was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.2.22 (Ubuntu) Server at [hostname] Port 80

http://[hostname]/media 拉出一个填充的索引。

在这种 FCGI 的使用中,有什么可以改进的,或者可能会造成什么问题?store.cgi 基于几个 .fcgi 文件,我在 Django 或 FCGI 文档中找不到 Satchmo 的模型 FCGI 文件后使用了这些文件。我不相信它。我只是没有用谷歌搜索更好的东西。

有什么建议么?

4

1 回答 1

0

我已经成功地使用另一个选项 FCGI 部署它:

在启用站点中:

FastCGIExternalServer /home/jonathan/testfcgi/testfcgi.fcgi -host 127.0.0.1:3033

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName testfcgi.jonathanscorner.com
    DocumentRoot /home/jonathan/testfcgi
    Alias /media /home/testfcgi/media
    RewriteEngine On
    RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/(.*)$ /testfcgi.fcgi/$1 [QSA,L]

    <Directory /home/jonathan/testfcgi/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        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

</VirtualHost>

这与 fcgi 的命令行调用相结合。

于 2012-07-14T10:38:03.870 回答