【问题标题】:Django MOD_WSGI Settings ? MOD_WSGI Apache2 403 You don't have permission to access this resourceDjango MOD_WSGI 设置? MOD_WSGI Apache2 403 您无权访问此资源
【发布时间】:2021-03-07 11:11:49
【问题描述】:

在购买 VPS 服务之前,我正在 Ubuntu Server 18.04(VirtualBox) 上测试应用程序。这是我的第一次部署,即使是在 VB 上进行测试。 我正面临某种 Apache WSGI 错误。

错误:您无权访问此资源 Apache/2.4.29 (Ubuntu) Server at 192.xxx.xx.xxx Port 80

在设置 WSGI 之前,我确实在 8000 端口上运行了一些测试,并且运行良好。当我在服务器上设置 WSGI 时,我无法运行应用程序。

App 和 venv 位于 /home/alp/diricanelektronik 目录下。我的服务器用户名:alp,应用名称是 diricangrup

(我确实更改了 conf 文件并重新启动了 apache 服务) 我的头快要爆炸了。 你是我最后的希望,请帮助我

ufw 状态:

22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)

应用主目录: (/home/alp/diricanelektronik/diricangrup)

├── contact
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── diricangrup
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── media
├── references
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── requirements.txt
├── static
│   ├── css
│   │   ├── mobile.css
│   │   ├── references.css
│   │   └── style.css
├── staticfiles
│   │── css
│      ├── mobile.css
│      ├── references.css
│      └── style.css 
│       
└── templates
    ├── base.html
    ├── includes
    │   ├── footer.html
    │   └── navbar.html
    ├── index.html
    └── references.html

文件权限:

/home/alp
drwxrwxr-x 4 alp  www-data 4096 Nov 24 11:09 diricanelektronik


/home/alp/diricanelektronik

drwxrwxr-x 4 alp www-data 4096 Nov 24 11:09 .
drwxr-xr-x 6 alp alp      4096 Nov 23 22:25 ..
drwxrwxr-x 9 alp www-data 4096 Nov 24 14:27 diricangrup
drwxrwxr-x 6 alp alp      4096 Nov 23 22:41 venv



/home/alp/diricanelektronik/diricangrup

drwxrwxr-x 9 alp www-data   4096 Nov 24 14:27 .
drwxrwxr-x 4 alp www-data   4096 Nov 24 11:09 ..
drwxrwxr-x 4 alp alp        4096 Nov 23 22:16 contact
-rw-rw-r-- 1 alp www-data 139264 Nov 24 11:44 db.sqlite3
drwxrwxr-x 3 alp alp        4096 Nov 23 22:53 diricangrup
-rw-rw-r-- 1 alp alp         689 Nov 23 22:16 manage.py
drwxrwxr-x 2 alp www-data   4096 Nov 24 11:44 media
drwxrwxr-x 4 alp alp        4096 Nov 23 22:16 references
-rw-rw-r-- 1 alp alp         100 Nov 23 22:16 requirements.txt
drwxrwxr-x 6 alp alp        4096 Nov 23 22:16 static
drwxrwxr-x 7 alp alp        4096 Nov 23 22:16 staticfiles
drwxrwxr-x 3 alp alp        4096 Nov 24 11:35 templates



/home/alp/diricanelektronik/diricangrup/diricangrup

drwxrwxr-x 3 alp alp      4096 Nov 23 22:53 .
drwxrwxr-x 9 alp www-data 4096 Nov 24 14:27 ..
-rw-rw-r-- 1 alp alp         0 Nov 23 22:16 __init__.py
drwxrwxr-x 2 alp alp      4096 Nov 23 22:53 __pycache__
-rw-rw-r-- 1 alp alp       415 Nov 23 22:16 asgi.py
-rw-rw-r-- 1 alp alp      3950 Nov 23 22:53 settings.py
-rw-rw-r-- 1 alp alp      1241 Nov 23 22:16 urls.py
-rw-rw-r-- 1 alp alp       415 Nov 23 22:16 wsgi.py

WSGI 配置文件:

        Alias /static /home/alp/diricanelektronik/diricangrup/staticfiles
        <Directory /home/alp/diricanelektronik/diricangrup/staticfiles>
                Require all granted
        </Directory>

        Alias /media /home/alp/diricanelektronik/diricangrup/media
        <Directory /home/alpcusta/diricangrup/media>
                Require all granted
        </Directory>

        <Directory /home/alpcusta/diricanelektronik/diricangrup/diricangrup>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        WSGIScriptAlias / /home/alpcusta/diricanelektronik/diricangrup/diricangrup/wsgi.py
        WSGIDaemonProcess django_app python-path=/home/alp/diricanelektronik/diricangrup python-home=/home/alp/diricanelektronik/venv
        WSGIProcessGroup django_app

ALLOWED_HOSTS = ['192.xxx.xx.xxx','127.0.0.1']

【问题讨论】:

    标签: python django deployment apache2 mod-wsgi


    【解决方案1】:

    我尝试了几件事但没有成功,然后我决定删除 apache2libapache2-mod-wsgi-py3 并重新安装。还从服务器上删除了项目文件

    删除:

    sudo apt-get purge apache2 libapache2-mod-wsgi-py3
    

    重新安装:

    sudo apt-get install apache2 libapache2-mod-wsgi-py3
    

    将项目从windows发送到ubuntu服务器:

    scp -P 22 -r django-project user@ipadress:/home/user
    

    配置文件

    cd /etc/apache2/sites-available/ && cp 000-default.conf django.conf && sudo nano django.conf
    
            Alias /static /home/user/django-project/django-project/staticfiles
            <Directory /home/user/django-project/django-project/staticfiles> 
                Require all granted
            </Directory>
    
    
            Alias /media /home/user/django-project/django-project/media
            <Directory /home/user/django-project/django-project/media> 
                Require all granted
            </Directory>
    
            #
            <Directory /home/user/django-project/django-project/django-project>
                <Files wsgi.py>
                    Require all granted
                </Files>
            </Directory>
    
    
            WSGIScriptAlias / /home/user/django-project/django-project/django-project/wsgi.py
            WSGIDaemonProcess django_app python-path=/home/user/django-project/django-project python-home=/home/user/django-project/venv
            WSGIProcessGroup django_app
    

    在这一切之后

    sudo chown :www-data django-project/db.sqlite3 #(make apache the group owner)
    sudo chmod 664 django-project/db.sqlite3       
    sudo chown :www-data django-project   #main app dir
    sudo chmod 775 django-project         #main app dir
    
    sudo chown -R :www-data django-project/media/
    sudo chmod -R 775 django-project/media
    

    重启apache2

    systemctl reload apache2
    sudo service apache2 restart
    

    和我之前做的基本一样,但是这次成功了(文件访问权限出错

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2020-05-07
      • 2011-04-16
      • 2022-08-02
      • 2021-12-27
      • 2018-07-12
      • 2013-03-10
      相关资源
      最近更新 更多