我有两个文件夹可以用来存储我的网站 (CentOS VPS):
/var/www/html/index.html
/home/admin/public_html/index.html
我可以将 Web 应用程序存储在第一个路径中,但我没有对该文件夹的 FTP 访问权限。当我使用从服务提供商处获得的 admin
帐户访问 FTP 时,我根本看不到它。
或者我可以使用/home/admin/public_html
。为此,我尝试:
- 更改
httpd.conf
文件中的根目录; 重新启动apache
;
但这完全行不通!
它继续将我重定向到 Apache 正常运行
消息(来自 /var/www/html/
路径。为什么会发生这种情况?
即使没有直接的解决方案,请帮助我找到解决此问题的方向,以便我可以继续我的实际工作。
在工作中,我使用 Putty
通过 SSH
连接,在家里我使用 Mac OSX 终端访问 VPS
。
编辑:
我调用我的服务提供商,他提到最好保留默认文件夹(即 var/www/html
)。
为了从客户端访问文件:
- 我从
public_html
文件夹创建了一个指向/var/www
的链接; - 递归授予
www
文件夹的权限; - 通过 SFTP 而不是 FTP 连接来访问该文件夹(普通 FTP 不会显示该文件夹)。
这看起来效果相当好。
最佳答案
我怀疑 Apache 没有访问/home/admin/public_html 的权限。您至少需要向 apache 进程运行的任何组授予对/home/admin 和/home/admin/public_html 的组读取访问权限。通常是 apache、httpd 或 www 组 - 检查您的/etc/passwd 文件)。
如果是说,“apache”组:
chown :apache /home/admin/admin;
chmod g-w /home/admin/admin;
chown -R :apache /home/admin/public_html
如果apache一定要写这个目录
chown -R g+w /home/admin/public_html
然后在/home/admin/public_html 中的任何目录(仅目录)上设置组粘性位(SGID 位)。这将确保在其中创建的任何文件都将具有与目录相同的组所有权。操作方法如下
find /home/admin/public_html -type d -print | while read i; do SAVEIFS=$IFS; IFS=$(echo -en "\n\b");chmod g+s $i; IFS=$SAVEIFS; done
关于php - apache 通过 ftp 的配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22411276/