最近在虚拟机上想配置apache2 上的django时提示mod_python error本地服务器遇到的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近在虚拟机上想配置apache2 上的django时提示mod_python error本地服务器遇到的问题相关的知识,希望对你有一定的参考价值。

我是根据论坛上的文章来安装的在ubuntu 下配置Django和apache mod-python在www.djangoproject.org下载django 1.1.1版本http://www.djangoproject.com/download/然后tar xzvf Django-1.1.1.tar.gzcd Django-1.1.1sudo python setup.py install接下来你进入到刚才所解压的django/bin目录下,运行python django-admin.py startproject myproject,他将会在你的bin目录下创建myproject目录,myproject/__init__.pymanage.pysettings.pyurls.py这时候你需要修改一下settings.pyDATABASE_ENGINE = 'mysql' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.DATABASE_NAME = 'django' # Or path to database file if using sqlite3.DATABASE_USER = 'root' # Not used with sqlite3.DATABASE_PASSWORD = '' # Not used with sqlite3.DATABASE_HOST = 'localhost' # Set to empty string for localhost. Not used with sqlite3.DATABASE_PORT = '3306' # Set to empty string for default. Not used with sqlite3.按照你的不同情况设定不同的参数然后我把这个目录复制到/var/www/mydjango/下python manage.py runserverValidating models...0 errors found.Starting server on port 8000 with settings module 'myproject.settings'.Go to http://127.0.0.1:8000/ for Django.Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).你也可以通过指定端口的方式运行python manage.py runserver 8080到浏览器中访问一下吧 到这个地方法都没有问题 你需要准备libapache2-mod-python 和 python-mysqldb然后sudo gedit /etc/apach2/site-available/default添加<Directory "/var/www/mydjango/myproject/">SetHandler python-programPythonPath "['/var/www/mydjango/myproject/'] + sys.path"PythonHandler django.core.handlers.modpythonSetEnv DJANGO_SETTINGS_MODULE djangotest.settingsPythonDebug OnOptions FollowSymLinksAllowOverride all</Directory>这时候只要你sudo /etc/init.d/apache2 restart然后去浏览器中输入http://localhost/mydjango/myproject在这里就提示mod_python error但是安装完成以后出现了以下的错误信息:/etc/apache2/sites-available# sudo /etc/init.d/apache2 restartapache2: Syntax error on line 203 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/mods-enabled/mod-python.load: No such file or directoryAction 'configtest' failed.The Apache error log may have more information.   ...fail!希望linux大侠帮帮忙啊,小弟实在是无法解决了~

参考技术A 你能不能换行呀?这个怎么看得懂哦。
看一下/etc/apache2/apache2.conf第203行写的是什么
mod-python应该是在/etc/apache2/mods-enabled/python.load里面而不是
/etc/apache2/mods-enabled/mod-python.load里面。

在 Apache 上配置两个虚拟主机使用 fastcgi

【中文标题】在 Apache 上配置两个虚拟主机使用 fastcgi【英文标题】:Configure both vhosts on Apache use fastcgi 【发布时间】:2014-02-23 23:59:14 【问题描述】:

在虚拟机上安装 Ubuntu。 运行 Apache 并且需要 2 个不同端口上的虚拟主机,例如69 和 100。(在 80 上使用 php-fpm + fastcgi 运行 nginx)。 使用端口转发到主机系统从浏览器访问,如 localhost:69/ 或 localhost:100/

配置 /etc/apache2/sites-available/default :

<VirtualHost *:69>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
...
        <IfModule mod_fastcgi.c>
            AddHandler php5-fcgi .php
            Action php5-fcgi /php5-fcgi
            Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
            FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
        </IfModule>
</VirtualHost>

<VirtualHost *:100>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/html
...
</VirtualHost>

将这些端口也添加到 /etc/apache2/ports.conf

PHP 不适用于第二个虚拟主机。如果我添加相同的 &lt;IfModule mod_fastcgi.c&gt; 指令,我会收到错误:

FastCgiExternalServer:重新定义之前定义的类 "/usr/lib/cgi-bin/php5-fcgi"

什么是正确的配置方法?

【问题讨论】:

【参考方案1】:

您只能拥有其中一个。正如此人指出的那样: https://serverfault.com/questions/384715/fastcgi-error-with-apache2

尝试将其添加到常规配置中,而不是虚拟主机中。似乎您正在尝试以您为 nginx 配置的方式配置 apache 虚拟主机。也许只需将它添加到 apache.conf 之前要在 sites_enabled 中读取的行

通常这将在启用 conf 的文件中。

【讨论】:

好的,你只能有一个,但是我们如何为每个 VHOST 指定不同的套接字文件呢?如您所见,FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -idle-timeout 300 -socket /var/run/php5-fpm-extra.sock -pass-header Authorization 行包含套接字。

以上是关于最近在虚拟机上想配置apache2 上的django时提示mod_python error本地服务器遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

apache2.4编译安装,搭建虚拟主机日志分析及访问控制

将一台电脑上的虚拟机上的系统复制到另一台电脑的虚拟机上!!!and想询问大神们问题的解决办法??

Debian 安装上的 Wordpress apache2 虚拟主机配置

在 Apache 上配置两个虚拟主机使用 fastcgi

在 Apache 上配置两个虚拟主机使用 fastcgi

Apache配置虚拟主机后,不能访问localhost的问题