我正在Linux上学习PHP。我有一台运行在本地的Apache2服务器。每当我试图将PHP文件保存到Apache2服务器的根目录(/var/www/html/)时,我被告知权限被拒绝。
所以,我搜索了一下,发现默认情况下,管理员没有root访问权限,除非明确请求(如sudo su)。我也看到一些帖子要求我使用gksu nautilus
。然而,我的linux 14.04 LTS Ubuntu没有附带它。(我知道我可以使用apt-get gksu
,但目前,从互联网下载它不是一个选项)。
无论如何,我可以改变我的Apache2服务器根目录的权限,以便我可以使用任何文本编辑器直接保存/编辑到该目录。目前对我来说,只有不需要从网上下载东西的方法才是可行的。
对于linux系统,以root登录方式打开终端,进入root文件夹,执行以下命令chmod 777
为例:-
将所有目录更改为777 (-rwxr-rwxr-rwxr):
find /opt/lampp/htdocs -type d -exec chmod 777 {} ';
将所有文件更改为644 (-rwxr-rwxr——rwxr——):
find /opt/lampp/htdocs -type f -exec chmod 777 {} ';
如果这不起作用,请尝试以下操作:-
创建新组
groupadd webadmin
将用户添加到组
usermod -a -G webadmin user1
usermod -a -G webadmin user2
更改站点目录的所有权
chown root:webadmin /var/www/html/
修改站点目录权限
chmod 2775 /var/www/html/ -R
现在任何人都可以读取这些文件(包括apache用户),但只有root和webadmin可以修改它们的内容。
您可以将/etc/apache2/httpd.conf
文件中的DocumentRoot
设置为Apache具有写访问权限的位置。例如,如果在那里创建了一个目录,则可以将其设置为/tmp/www
。(如果你仍然没有访问权限,你可以通过运行chmod a+r /tmp/www
给每个人读权限,但你应该没事。)
显然,将Apache文档根设置为/tmp/www
是一个坏主意,所以你可以在它工作后将其更改为/home/chris
。
apachectl restart
;具有讽刺意味的是,您可能必须具有管理员权限才能执行此操作(甚至首先编辑配置文件),因此请确保在edit &;以sudo
重启,以防万一。