我在设置为使用uWSGI和nginx的服务器上有一个应用程序。该应用程序在本地工作正常,但在服务器上它似乎没有能力从程序创建文件。我相信我正确设置了目录权限。这是应用程序存储在目录中ls
的输出:
drwxrwxr-x 6 ben 4.0K May 15 21:04 .
drwxr-xr-x 5 ben 4.0K May 15 20:33 ..
drwxrwxr-x 8 ben 4.0K May 15 21:01 .git
-rwxrwxr-x 1 ben 5.1K May 15 21:01 albumcloud.py
-rwxrwxr-x 1 ben 5.4K May 15 21:01 albumcloud.pyc
-rwxrwxr-x 1 ben 248 May 15 20:32 lyricloud.ini
-rwxrwxr-x 1 ben 1.7K May 15 21:01 lyricloud.py
-rwxrwxr-x 1 ben 2.6K May 15 21:01 lyricloud.pyc
srwxrwxr-x 1 ben 0 May 15 21:01 lyricloud.sock
drwxrwxr-x 6 ben 4.0K May 14 23:32 lyricloudenv
drwxrwxr-x 2 ben 4.0K May 15 20:37 static
drwxrwxr-x 2 ben 4.0K May 15 20:32 templates
-rwxrwxr-x 1 ben 94 May 15 20:32 wsgi.py
-rwxrwxr-x 1 ben 245 May 15 20:33 wsgi.pyc
用户ben
是nginx运行的www-data
组的一部分。
脚本应该将文本文件写入静态目录,但是不会创建任何文件。项目代码可以找到here。
uWSGI由/etc/init/lyricloud.conf上的脚本启动description "uWSGI server instance configured to serve lyricloud"
start on runlevel [2345]
stop on runlevel [!2345]
setuid ben
setgid www-data
env PATH=/home/ben/lyricloud/lyricloudenv/bin
chdir /home/ben/lyricloud
exec uwsgi --ini lyricloud.ini