php - apache 通过 ftp 的配置问题

标签 php linux apache ftp

我有两个文件夹可以用来存储我的网站 (CentOS VPS):

  1. /var/www/html/index.html
  2. /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)。

为了从客户端访问文件:

  1. 我从 public_html 文件夹创建了一个指向 /var/www 的链接;
  2. 递归授予www文件夹的权限;
  3. 通过 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/

相关文章:

javascript - php返回结果,等待,返回结果

php - 针对大量服务于小文件的连接优化 Lighttpd

php - Laravel lmutator $this->属性返回 'Undefined index: id'

php - for循环只循环一次

linux - 获取iscsi设备的目标IP地址

linux - 是否有任何用于将 nodejs 应用程序上传到我自己的 linux 服务器的 linux 脚本?像 appfog 或 heroku

php 崩溃并且 rdp 不可用

ruby-on-rails - 通过 Faye 在 Rails 应用程序上进行实时聊天,但在 Passenger 上使用 Apache 进行实时聊天

asp.net - 使用 .NET MVC 4 运行 Mono 3.2.0

php - Wincache 扩展无法在 IIS 上正常工作(它仍然很慢|