apache over ftp的配置问题

时间:2014-03-14 16:58:00

标签: php linux apache ftp

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

  1. /var/www/html/index.html
  2. /home/admin/public_html/index.html
  3. 我可以将我的Web应用程序存储在第一个路径中,但我没有FTP访问此文件夹。使用我从服务提供商处收到的admin帐户访问我的FTP时,我根本看不到它。

    或者我可以使用/home/admin/public_html。为此,我试图:

    • 更改httpd.conf文件中的根目录;
    • restart apache;

    但这完全不起作用!!

    它继续将我重定向到Apache is functioning normally消息(来自/var/www/html/路径。为什么会发生这种情况?

    即使没有直接的解决方案,请帮助我找到解决此问题的方向,以便继续我的实际工作。

    在工作中,我正在使用Putty通过SSH进行连接,在家中我使用Mac OSX终端访问VPS

    编辑

    我打电话给服务提供商,他提到离开默认文件夹(var/www/html)会更好。

    要从客户端访问文件:

    1. 我在/var/www文件夹中创建了public_html的链接;
    2. 递归地授予www文件夹的权限;
    3. 通过SFTP而不是FTP连接以访问该文件夹(普通FTP不会显示该文件夹)。
    4. 这看起来效果很好。

3 个答案:

答案 0 :(得分:0)

我怀疑Apache没有访问/ home / admin / public_html的权限。您至少需要将/ home / admin和/ home / admin / public_html的组读取权限授予运行的任何组apache进程。通常它是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

答案 1 :(得分:0)

可能与selinux有关吗?在您的apache日志中查找permission denied并查看selinux日志 - /var/log/secure在我的记忆中centos

答案 2 :(得分:0)

如果其他人遇到此问题,请查看/ etc / apache2 / sites-enabled 这是Apache保留所有虚拟主机的位置(这用于在单个IP地址上托管多个网站。)如果您在此处看到000-default文件,则通常将其映射为默认条目或您获得的站点输入服务器IP地址,通常指向/ var / www。

PS 查看http://www.virtualmin.com/它是一个开源的cpanel替代方案,它将为您提供易于使用的基于Web的GUI,用于常见的Web服务器相关任务,包括安全性,邮件,数据库和防病毒。