Apache/Flask:即使文件夹设置为 777,权限仍被拒绝写入 /var/www

Apache/Flask:即使文件夹设置为 777,权限仍被拒绝写入 /var/www

我在运行 ubuntu 16.04 的 VPS 上的 apache 服务器上运行了一个 python/flask 应用程序。

从 Web 访问时,应用程序在尝试在 /var/www/FlaskApp/FlaskApp 中创建文件夹(名为“organizations”)时会给出“内部服务器错误”。Apache 日志中的具体错误如下:

PermissionError:[Errno 13] 权限被拒绝:‘组织’

我确实将此文件夹(及其上方的文件夹)的权限设置为 777。权限被拒绝错误仍然存​​在。(是的,我知道我不应该使用 777。这只是一个测试服务器。一旦我弄清楚问题是什么,我就会将其切换回 755 或 775)

我尝试过其他可能的权限设置。我尝试过使用 chown 将用户“www-data”设置为文件夹的所有者。我尝试过使用组设置 www-data 的所有权。似乎没有任何效果。

如果有用的话,我在 VPS 上使用 Ubuntu 16.04,使用 apache2 为 Python3/Flask 应用程序提供服务。当 Flask 应用程序尝试在 /var/www/FlaskApp/FlaskApp 中创建名为“organizations”的文件夹时,会发生权限被拒绝错误

Flask App 权限设置为 777,其上层所有文件夹的权限也设置为 777。我在 stack overflow 上问了这个问题,他们说这是一个更好的论坛来发布它。

答案1

好的,我找到了问题所在。为其他可能遇到此问题的人解答。权限问题可能不是来自 Linux。而是来自 Apache 自身的安全措施。

基本上,我尝试写入的文件夹未明确添加到 .conf 文件中的目录列表中,因此 apache 无法识别它。如果您遇到此问题,请在 Apache 中打开 YourAppName.conf 文件(通常位于 /etc/apache2/sites-available/YourAppName.conf>

在 ' ' 之前添加以下几行</VirtualHost>

    <Directory /var/www/YourAppName/YourDirectory/>
        Order allow,deny
        Allow from all
    </Directory>

YourDirectory 现在可供 Apache 访问,并且您将能够对其进行读取和写入。

相关内容