我正在尝试在AWS上发布销售商店并使用Apache

时间:2018-08-14 14:24:18

标签: django apache saleor

我已经发布了默认的django项目,并且运行良好,我可以使用域名访问它,然后我只是替换了saleor的详细信息,但现在却找不到404。这是我的配置文件:

<VirtualHost *:80>

    ServerAdmin admin@example.com
    DocumentRoot /home/ubuntu/ecom

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


    Alias /static /home/ubuntu/ecom/saleor/saleor/static
    <Directory /home/ubuntu/ecom/saleor/saleor/static>
        Require all granted
    </Directory>

    <Directory /home/ubuntu/ecom/saleor/saleor/wsgi>
        <Files __init__.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess myproject2 python-home=/home/ubuntu/ecom/ecom python-path=/home/ubuntu/ecom
    WSGIProcessGroup myproject2
    WSGIScriptAlias / /home/ubuntu/ecom/saleor/saleor/wsgi/__init__.py
</VirtualHost>

/home/ubuntu/ecom是我的项目主目录,它包含ecom(虚拟环境)和saleor文件夹。 我已将glintwear.com网域添加到saleor项目的settings.py文件中

编辑 这是来自error.log文件的错误:

[Wed Aug 15 01:09:17.240064 2018] [wsgi:error] [pid 14328:tid 140275526600448] [remote 39.53.22.238:27753] mod_wsgi (pid=14328): Target WSGI script '/home/ubuntu/ecom/$
[Wed Aug 15 01:09:17.240110 2018] [wsgi:error] [pid 14328:tid 140275526600448] [remote 39.53.22.238:27753] mod_wsgi (pid=14328): Exception occurred processing WSGI scr$
[Wed Aug 15 01:09:17.240269 2018] [wsgi:error] [pid 14328:tid 140275526600448] [remote 39.53.22.238:27753] Traceback (most recent call last):
[Wed Aug 15 01:09:17.240291 2018] [wsgi:error] [pid 14328:tid 140275526600448] [remote 39.53.22.238:27753]   File "/home/ubuntu/ecom/saleor/saleor/wsgi/__init__.py", l$
[Wed Aug 15 01:09:17.240296 2018] [wsgi:error] [pid 14328:tid 140275526600448] [remote 39.53.22.238:27753]     from django.core.wsgi import get_wsgi_application  # noqa
[Wed Aug 15 01:09:17.240310 2018] [wsgi:error] [pid 14328:tid 140275526600448] [remote 39.53.22.238:27753] ImportError: No module named 'django'

2 个答案:

答案 0 :(得分:0)

编辑:

@Graham Dumpleton指出,您必须更改

python-home=/home/ubuntu/ecom/ecom

这不是通往虚拟环境的路径。

  

检查提供给python-home的目录是否与sys.prefix相同   虚拟环境。

所以你应该有这样的东西:

python-home=/home/ubuntu/ecom/venv

答案 1 :(得分:0)

因此,如果有人遇到问题,我将回答这个问题。这个项目被搁置了,这就是为什么我最近要更新它。无论如何,问题是python-home应该指向manage.py所在的根目录。并且python-path应该指向您的virtualenv文件夹。就是这样。

<VirtualHost *:80>

    ServerAdmin admin@example.com
    DocumentRoot /home/ubuntu/ecom

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


    Alias /static /home/ubuntu/ecom/saleor/saleor/static
    <Directory /home/ubuntu/ecom/saleor/saleor/static>
        Require all granted
    </Directory>

    <Directory /home/ubuntu/ecom/saleor/saleor/wsgi>
        <Files __init__.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess myproject2 python-home=/home/ubuntu/ecom/ecom/saleor python-path=/home/ubuntu/ecom/env
    WSGIProcessGroup myproject2
    WSGIScriptAlias / /home/ubuntu/ecom/saleor/saleor/wsgi/__init__.py
</VirtualHost>