Django+;Apache2&x2B;Ubuntu+;WSGI&x2B;sqlite3-尝试写入只读数据库。如何修复?

Django+;Apache2&x2B;Ubuntu+;WSGI&x2B;sqlite3-尝试写入只读数据库。如何修复?,apache,ubuntu,apache2,mod-wsgi,Apache,Ubuntu,Apache2,Mod Wsgi,我知道这里有很多这样的问题,但对我来说绝对没有任何效果 正如标题所说,我正在尝试使用Apache2和mod_wsgi配置我的Django应用程序。不幸的是,当我尝试登录应用程序时: OperationalError at /3gjTaZ446V/admin/login/ attempt to write a readonly database 细节: 我以root用户身份登录 我的配置如下所示: <VirtualHost *:80> ServerName test.dom

我知道这里有很多这样的问题,但对我来说绝对没有任何效果

正如标题所说,我正在尝试使用Apache2和mod_wsgi配置我的Django应用程序。不幸的是,当我尝试登录应用程序时:

OperationalError at /3gjTaZ446V/admin/login/
attempt to write a readonly database

细节:
  • 我以root用户身份登录

  • 我的配置如下所示:

    <VirtualHost *:80>
        ServerName test.domain.com
        DocumentRoot /var/www/3gjTaZ446V
    
        ErrorLog ${APACHE_LOG_DIR}/3gjTaZ446V_error.log
        CustomLog ${APACHE_LOG_DIR}/3gjTaZ446V_access.log combined
    
        Alias /static /var/www/3gjTaZ446V/mips_geonomie/static/
        <Directory /var/www/3gjTaZ446V/mips_geonomie/static>
                Require all granted
        </Directory>
    
        <Directory /var/www/3gjTaZ446V/mips_geonomie/logs/>
                Require all granted
        </Directory>
    
        <Directory /var/www/3gjTaZ446V/mips_geonomie>
            <Files db.sqlite3>
                Require all granted
            </Files>
        </Directory>
    
        <Directory /var/www/3gjTaZ446V/mips_geonomie/config>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
    
        WSGIDaemonProcess 3gjTaZ446V python-home=/var/www/.virtualenvs/3gjTaZ446V python-path=/var/www/3gjTaZ446V/mips_geonomie
        WSGIProcessGroup 3gjTaZ446V
        WSGIScriptAlias / /var/www/3gjTaZ446V/mips_geonomie/config/wsgi.py
    </VirtualHost>
    
  • 我试图将db.sqlite3的权限更改为644755777。。。什么都不管用。我还尝试了
    chown:www-data
    ,但什么都没有


    我真的没有主意了。有人能告诉我我做错了什么吗?

    Hmmmm…看起来您需要设置一个非root用户的新用户…或者您可能需要使用新权限重新启动服务器…数据库文件和它所在的目录都需要由Apache运行的用户写入。最好将数据库文件粘贴到另一个目录中,并使该目录归Apache用户所有。不要使用
    o+w
    ,因为这是一种不好的做法。
    $ ls -altr
    
    total 184
    drwxr-xr-x 3 root root       4096 Aug 19 09:44 ..
    drwxr-xr-x 2 root root       4096 Aug 19 09:44 requirements
    -rwxr-xr-x 1 root root        538 Aug 19 09:44 manage.py
    -rw-r--r-- 1 root root        200 Aug 19 09:45 .env
    drwxr-xr-x 4 root root       4096 Aug 19 09:45 config
    drwxr-xr-x 2 root www-data   4096 Aug 19 09:45 logs
    drwxr-xr-x 5 root root       4096 Aug 19 09:45 api
    drwxr-xr-x 6 root root       4096 Aug 19 09:45 static
    -rwxrwxrwx 1 root www-data 131072 Aug 19 09:45 db.sqlite3