操作环境
master@ubuntu:~$ apache2 -v Server version: Apache/2.4.18 (Ubuntu) Server built: 2019-10-08T13:31:25 master@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial master@ubuntu:~$
操作详情
在使用 Apache 的时候,我们的 PHP 程序可能会出现权限不足导致的无法写入或者无法上传的问题,该问题的发生除了可能是用户权限不足导致的,也可能是用户和用户组设置错误导致的。如果是用户和用户组设置错误导致的,则可以通过修改 Apache 所归属的用户和用户组的方式解决该问题。
在 Ubuntu 系统中,如果是使用的 apt
或 apt-get
的方式安装的 Apache, 则可以在 /etc/apache2
目录下的 envvars
文件中看到 Apache 所归属的用户和用户组,如图 1 所示:
在 envvars
文件中我们可以找到如下配置:
export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data
上述配置分别规定了运行 Apache 的用户为 www-data
, 用户组为 www-data
.
为了解决由用户和用户组导致的权限问题,我们可以通过将 /var/www/html
目录下的文件所属的用户和用户组分别修改为 www-data
和www-data
, 就像这样:
master@ubuntu:/var/www/html$ sudo chown www-data.www-data -R [your-file]
也可以在 envvars
文件中将运行 Apache 的用户和用户组修改为 /var/www/html
目录下的文件所属的用户和用户组,例如:
export APACHE_RUN_USER=zkf export APACHE_RUN_GROUP=zkf
如果我们常常使用 “zkf” 这个用户登陆系统,那么将 Apache2 运行的用户和用户组修改成我们常登录的用户和用户组,之后,把 Web 目录下的文件所属的用户和用户组也修改成和 Apache2 一样的配置,这样的话,在编辑 Web 目录下的文件时就会很方便,不需要使用 sudo
提升权限,也不需要切换用户,使用当前用户的身份就可以直接编辑并保存。
EOF