当前位置: 首页 > 面试题库 >

带有WSGIDaemonProcess的Django Apache配置不起作用

喻高寒
2023-03-14
问题内容

更新的问题

[Mon Jul 18 09:20:10.517873 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] Traceback (most recent call last):
[Mon Jul 18 09:20:10.518005 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261]   File "/var/www/rent/Rent/wsgi.py", line 20, in <module>
[Mon Jul 18 09:20:10.518141 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261]     from django.core.wsgi import get_wsgi_application
[Mon Jul 18 09:20:10.518236 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] ImportError: No module named django.core.wsgi

我的虚拟主机

<VirtualHost *:80>
    ServerName  ip_address
    ServerAdmin webmaster@localhost

    Alias /static/  /var/www/rent/static/

    Alias /media/  /var/www/rent/media/

    WSGIScriptAlias /   /var/www/rent/Rent/wsgi.py

    WSGIDaemonProcess   Rent  python-path=/var/www/rent:/root/.virtualenvs/rent/lib/python2.7/site-packages

    WSGIProcessGroup    Rent

    <Directory /var/www/rent/static>
        Options -Indexes
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /var/www/rent/media>
        Options -Indexes
        Order deny,allow
        Allow from all
    </Directory>

    LogLevel warn

    ErrorLog    ${APACHE_LOG_DIR}/error.log
    CustomLog   ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

问题答案:
WSGIDaemonProcess   Rent  python-path=/var/www/rent:/root/.virtualenvs/rent/lib/python2.7/site-packages

这是问题的最可能原因。您已经在超级用户的主文件夹中创建了virtualenv。但是该文件夹不太可能被Apache访问。默认情况下,其他任何用户都无法访问用户的主文件夹。

Web服务器和WSGI过程将运行作为一个非特权用户通常命名为nobodyhttpdapache或者类似的东西。虽然您可以通过更改/ root
/上的权限来解决此问题,但这不是很大。如果是普通用户,则危险性会降低,但这样做仍然不是一个好主意。

最好的解决方案是将virtualenv放置在非特权用户可以访问的位置。 /usr/local/virtualenv是一个好的位置。

请注意,移动/root/.virtualenvs//usr/local/virtualenv你将不得不重新创建如下

 source /root/.virtualenvs/rent/bin/activate
 pip freeze > /tmp/requirements.txt
 cd /usr/local/
 virtualenv virtualenv
 source virtualenv/bin/activate
 pip install -r /tmp/requirements.txt

然后编辑httpd.conf文件以反映新路径。



 类似资料:
  • 我正在尝试为我的Spring+Hibernate项目实现Spring Security性。 但是我在intercept-url标记中编写的hasRole('super_admin')不起作用。 请找到我在下面所做的配置。 但hasRole('super_admin')仍然不工作。我无法访问http://127.0.0.1:8080/myproj/admin页面。用户正在进行身份验证并登录。但是上面

  • 下面是创建基于自定义受众的远程配置条件的步骤- 首先创建了一个名为OEM的用户属性 我用创建了一个动态链接,作为 https://d83j2.app.goo.gl/?link=http://myapp.in&apn=com.myapp.app&utm_source=google-micromax&utm_medium=micromax_device&utm_campaign=promo_googl

  • 这是我第一次使用Spring-Data-jpa和Querydsl。 我正在尝试配置数据模型的自动生成。 我执行了以下步骤: 我在pom中添加了以下依赖项。xml 然后我添加了以下插件 但我总是在pom中遇到同样的错误。xml: 生命周期配置未涵盖插件执行:com。迈塞马。maven:maven apt插件:1.0.2:流程(执行:默认,阶段:生成源代码) 并且未生成和填充target/genera

  • 问题内容: 我在使用以下代码时遇到了麻烦: 调用Offer.query({},function(){}); 在我的控制器中工作没有任何问题。但是这部分不起作用: 这总是返回400错误: “NetworkError:400错误的请求- https://api.trustyou.com/hotels/d8421e79-99f0-41b2-8d6e-9cfd62a9776b/seal.json?call

  • 我在may Spring应用程序中添加了安全问题,所以我想通过调试Spring。 Log4j正在工作,因为我的服务正在将调试信息记录到控制台。但是Spring没有记录任何东西到我的控制台 这是我的 在我如此放置。结果: 我尝试在我的网站上添加这个。正如在这个问题中所说的xml 我在其他应用程序中使用了此调试,但我真的没有看到原因。。。谢谢你的帮助

  • 我有一个战争,它在EAP 6.4.x下工作得很好(x目前是8,但也在6和4下,等等下到6.4.0)。 WAR具有一些简单的JMS客户机特性,可以将消息添加到远程机器上的队列中。目标QBroker是ActiveMQ 5.8.0。 从6.4.x到7.0.1开始“端口”;我对AMQ5.8.0 RAR的东西很感兴趣。对于初学者--还不会使用EAP7中的AMQ Artemis的任何东西。最初,我希望在7.0