我刚刚在我工作的地方安装了个人 Ubuntu 服务器,用于测试我们的 php 网站。这是最新的 12.04 LTS,安装了 LAMP 和 Samba。我将其设置为使用 /home/administrateur/www 目录作为 DocumentRoot 默认目录。
我这样做了:在管理员组中添加了 www-data 用户,并递归地授予了 admin/ 上的 ug+rwx 权限。
我将 /etc/apache2/sites-available/default 中的默认根目录更改为 /home/administrateur/www
到目前为止,一切都很好……但是 apache 每天都会重新启动一次或多次,然后,我无法访问网站并出现 403 错误。通常可以通过我们的本地网络访问的 www/ 文件夹不再可访问。但是当我使用 putty 连接到服务器时,一切又恢复正常了。这真的很奇怪。
今天早上我的错误日志如下:
PHP 已弃用:/etc/php5/apache2/conf.d/ming.ini 第 1 行中第 0 行未知中的以“#”开头的注释已弃用 [2014 年 3 月 2 日星期日 06:51:47] [通知] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 已配置 Suhosin-Patch — 恢复正常运行 [2014 年 3 月 3 日星期一 09:10:45] [crit] [客户端 192.168.30.15] (13)权限被拒绝:/home/administrateur/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读 [2014 年 3 月 3 日星期一 09:10:45] [crit] [客户端 192.168.30.15] (13)权限被拒绝:/home/administrateur/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读 [2014 年 3 月 3 日星期一 09:10:45] [crit] [客户端 192.168.30.15] (13)权限被拒绝:/home/administrateur/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读 [2014 年 3 月 3 日星期一 09:47:55] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/favicon.ico [2014 年 3 月 3 日星期一 09:47:55] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/favicon.ico [2014 年 3 月 3 日星期一 09:50:51] [通知] 已请求优雅重启,正在重启 PHP 已弃用:/etc/php5/apache2/conf.d/ming.ini 第 1 行中第 0 行未知中的以“#”开头的注释已弃用 [2014 年 3 月 3 日星期一 09:50:52] [通知] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 已配置 Suhosin-Patch — 恢复正常运行 [2014 年 3 月 3 日星期一 09:52:09] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/slideshare-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:52:09] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/twitter-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:52:09] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/fb-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:53:00] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/fb-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:53:00] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/twitter-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:53:00] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/slideshare-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:53:42] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/fb-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:53:42] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/twitter-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 09:53:42] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/atd13/wp-content/themes/atd13/img/slideshare-logo-24.png,引用者:http://test.atd13.nm/ [2014 年 3 月 3 日星期一 11:48:39] [错误] [客户端 192.168.30.51] donn\xc3\xa9es WordPress 数据库错误您的 SQL 语法有误;请查看与您的 MySQL 服务器版本相对应的手册,了解正确的语法以使用 nea$ [2014 年 3 月 3 日星期一 11:48:46] [错误] [客户端 192.168.30.51] donn\xc3\xa9es WordPress 数据库错误您的 SQL 语法有误;请查看与您的 MySQL 服务器版本相对应的手册,了解正确的语法以使用 nea$ [2014 年 3 月 3 日星期一 11:49:03] [错误] [客户端 192.168.30.51] donn\xc3\xa9es WordPress 数据库错误您的 SQL 语法有误;请查看与您的 MySQL 服务器版本相对应的手册,了解正确的语法以使用 nea$ [2014 年 3 月 3 日星期一 16:39:10] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/censier/favicon.ico [2014 年 3 月 3 日星期一 16:39:10] [错误] [客户端 192.168.30.15] 文件不存在:/home/administrateur/www/censier/favicon.ico [2014 年 3 月 4 日星期二 06:34:26] [通知] 已请求优雅重启,正在重启 警告:DocumentRoot [/home/administrateur/www] 不存在 警告:DocumentRoot [/home/administrateur/www/adrexo] 不存在 警告:DocumentRoot [/home/administrateur/www/atd13] 不存在 警告:DocumentRoot [/home/administrateur/www/adrexo-blog] 不存在 警告:DocumentRoot [/home/administrateur/www/censier] 不存在 警告:DocumentRoot [/home/administrateur/www/friendship] 不存在 警告:DocumentRoot [/home/administrateur/www/nouvelle-marque] 不存在 警告:DocumentRoot [/home/administrateur/www/philanthropie] 不存在 警告:DocumentRoot [/home/administrateur/www/wordpress] 不存在 PHP 已弃用:/etc/php5/apache2/conf.d/ming.ini 第 1 行中第 0 行未知中的以“#”开头的注释已弃用 [2014 年 3 月 4 日星期二 06:34:26] [通知] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.10 已配置 Suhosin-Patch — 恢复正常运行 [2014 年 3 月 4 日星期二 09:10:09] [crit] [客户端 192.168.30.15] (13)权限被拒绝:/home/administrateur/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读 [2014 年 3 月 4 日星期二 09:10:09] [crit] [客户端 192.168.30.15] (13)权限被拒绝:/home/administrateur/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读 [2014 年 3 月 4 日星期二 09:10:09] [crit] [客户端 192.168.30.15] (13)权限被拒绝:/home/administrateur/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读
这是我的 /etc/apache2/sites-available/default
服务器管理员[电子邮件保护] DocumentRoot /home/administrateur/www 选项 FollowSymLinks 允许覆盖全部 选项索引 FollowSymLinks MultiViews 允许覆盖全部 命令允许、拒绝 允许来自所有人 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride 无 选项 +ExecCGI -MultiViews +SymLinksIfOwnerMatch 命令允许、拒绝 允许所有人 错误日志 ${APACHE_LOG_DIR}/error.log # 可能的值包括:debug、info、notice、warn、error、crit、 # 警报,紧急。 日志级别警告 CustomLog ${APACHE_LOG_DIR}/access.log 合并 别名 /doc/“/usr/share/doc/” 选项索引多视图FollowSymLinks AllowOverride 无 命令拒绝、允许 全部拒绝 允许来自 127.0.0.0/255.0.0.0 ::1/128
这是我的 apache2.conf
# # 基于 Rob McCool 最初编写的 NCSA 服务器配置文件。 # # 这是 Apache 服务器的主配置文件。它包含 # 配置指令,为服务器提供指令。 # 有关以下详细信息,请参阅 http://httpd.apache.org/docs/2.2/ # 指令。 # # 请勿在不理解的情况下简单地阅读此处的说明 # 它们的作用。它们在这里只是作为提示或提醒。如果你不确定 # 查阅在线文档。你已被警告。 # # 配置指令分为三个基本部分: # 1. 控制 Apache 服务器进程作为 # 整体(“全球环境”)。 # 2. 定义“主”或“默认”服务器参数的指令, # 响应虚拟主机未处理的请求。 # 这些指令还为设置提供了默认值 所有虚拟主机的数量。 # 3. 虚拟主机的设置,允许将 Web 请求发送到 # 不同的 IP 地址或主机名,并由 # 相同的 Apache 服务器进程。 # # 配置和日志文件名:如果你为许多指定的文件名 # 服务器的控制文件以“/”(或 Win32 的“drive:/”)开头, # 服务器将使用该显式路径。如果文件名不以 # 使用“/”,ServerRoot 的值被添加到前面——所以是“foo.log” # 将 ServerRoot 设置为“/etc/apache2”将被解释为 # 服务器为“/etc/apache2/foo.log”。 # ### 第 1 节:全球环境 # # 本节中的指令影响 Apache 的整体运行, # 例如它可以处理的并发请求数,或者它在哪里 #可以找到它的配置文件。 # # # ServerRoot:服务器的目录树的顶部 # 配置、错误和日志文件被保留。 # # 注意!如果您打算将其放在 NFS(或其他网络)上 # 已安装的文件系统,请阅读 LockFile 文档(可用 # 在 ); # 你会省去很多麻烦。 # # 不要在目录路径末尾添加斜线。 # #ServerRoot “/etc/apache2” # # 接受序列化锁文件必须存储在本地磁盘上。 # 锁定文件 ${APACHE_LOCK_DIR}/accept.lock # # PidFile:服务器应记录其进程的文件 #启动时的识别号。 # 这需要在 /etc/apache2/envvars 中进行设置 # Pid文件 ${APACHE_PID_FILE} # # 超时:接收和发送超时前的秒数。 # 超时 300 # # KeepAlive: 是否允许持续连接(超过 # 每个连接一个请求)。设置为“Off”以停用。 # 保持活动状态 # # MaxKeepAliveRequests:允许的最大请求数 # 在持久连接期间。设置为 0 以允许无限制数量。 # 为了获得最佳性能,我们建议您将此数字保留为较高值。 # 最大KeepAliveRequests 100 # # KeepAliveTimeout: 等待下一个请求的秒数 # 同一连接上的同一客户端。 # KeepAliveTimeout 5 ## ## 服务器池大小规定(MPM 特定) ## # 预分叉 MPM # StartServers:要启动的服务器进程数 # MinSpareServers:保持备用的最小服务器进程数 # MaxSpareServers:保持备用的最大服务器进程数 # MaxClients: 允许启动的最大服务器进程数 # MaxRequestsPerChild:服务器进程处理的最大请求数 启动服务器 5 最小备用服务器数 5 最大备用服务器数 10 最大客户数 150 每个孩子的最大请求数 0 # 工作者 MPM # StartServers:初始启动的服务器进程数 # MinSpareThreads:保持备用的最小工作线程数 # MaxSpareThreads:保持备用的最大工作线程数 #ThreadLimit: ThreadsPerChild 可以在一段时间内更改为此最大值 # 优雅重启。ThreadLimit 只能通过停止来更改 # 并启动 Apache。 # ThreadsPerChild:每个服务器进程中的工作线程数 # MaxClients:最大同时客户端连接数 # MaxRequestsPerChild:服务器进程处理的最大请求数 启动服务器 2 最小备用线程数 25 最大备用线程数 75 线程限制 64 每个子线程数 25 最大客户数 150 每个孩子的最大请求数 0 # 事件 MPM # StartServers:初始启动的服务器进程数 # MinSpareThreads:保持备用的最小工作线程数 # MaxSpareThreads:保持备用的最大工作线程数 # ThreadsPerChild:每个服务器进程中的工作线程数 # MaxClients:最大同时客户端连接数 # MaxRequestsPerChild:服务器进程处理的最大请求数 启动服务器 2 最小备用线程数 25 最大备用线程数 75 线程限制 64 每个子线程数 25 最大客户数 150 每个孩子的最大请求数 0 # 这些需要在 /etc/apache2/envvars 中设置 用户 ${APACHE_RUN_USER} 组 ${APACHE_RUN_GROUP} # # AccessFileName:在每个目录中查找的文件的名称 # 附加配置指令。另请参阅 AllowOverride # 指令。 # 访问文件名 .htaccess # # 以下几行阻止 .htaccess 和 .htpasswd 文件被 # 由 Web 客户端查看。 # 命令允许、拒绝 全部拒绝 满足所有 # # DefaultType 是服务器将用于文档的默认 MIME 类型 # 如果无法通过其他方式确定,例如根据文件扩展名。 # 如果你的服务器主要包含文本或 HTML 文档,则“text/plain”是 # 一个好值。如果你的大部分内容是二进制的,比如应用程序 # 或者图像,你可能想使用“application/octet-stream”来 # 防止浏览器尝试将二进制文件显示为 # 文本。 # # 也可以省略任何默认的 MIME 类型,并让 # 客户端浏览器会猜测适当的操作。通常 # 浏览器将根据文件的扩展名来决定。在某些情况下 # 在没有好的假设的情况下,让默认的 MIME 类型 # 建议取消设置,而不是强制浏览器接受 # 不正确的元数据。 # 默认类型 无 # # HostnameLookups:记录客户端的名称或仅记录其 IP 地址 # 例如,www.apache.org(打开)或 204.62.129.132(关闭)。 # 默认关闭,因为如果人们 # 必须故意打开此功能,因为启用它意味着 # 每个客户端请求将至少导致一个查找请求 # 名称服务器。 # HostnameLookups 关闭 # ErrorLog:错误日志文件的位置。 # 如果你没有在中指定 ErrorLog 指令 # 容器,与该虚拟主机相关的错误消息将是 # 记录在这里。如果你*确实*为一个错误日志文件定义一个 # 容器,该主机的错误将记录在那里而不是这里。 # 错误日志 ${APACHE_LOG_DIR}/error.log # # LogLevel:控制记录到 error_log 的消息数量。 # 可能的值包括:debug、info、notice、warn、error、crit、 # 警报,紧急。 # 日志级别警告 #包含模块配置: 包括 mods-enabled/*.load 包括 mods-enabled/*.conf # 包括所有用户配置: 包括 httpd.conf # 包含端口列表 包括 ports.conf # # 以下指令定义了一些格式昵称,供使用 # CustomLog 指令(见下文)。 # 如果你使用反向代理,你可能需要将 %h 更改为 %{X-Forwarded-For}i # 日志格式“%v:%p%h%l%u%t \“%r\”%>s%O \“%{Referer}i\” \“%{User-Agent}i\”” vhost_combined LogFormat“%h%l%u%t \“%r\”%>s%O \“%{Referer}i\” \“%{User-Agent}i\””组合 LogFormat "%h %l %u %t \"%r\" %>s %O" 常见 LogFormat "%{Referer}i -> %U" 引用者 LogFormat "%{User-agent}i" 代理 # 目录的包含忽略编辑器和 dpkg 的备份文件, # 请参阅 README.Debian 了解详情。 # 包含通用语句片段 包括 conf.d/ # 包括虚拟主机配置: 包括 sites-enabled/ # 修改重写 重写引擎开启
ls -lah /home/administrateur/www/ 给我:
drwxrwx--- 21 管理员 管理员 4,0K 二月。 26 14:00。 drwxrwx--- 6 管理员 管理员 4,0K 3 月 4 日 10:08 .. drwxrwx--- 7 管理员 管理员 4,0K 二月。 26 14:02 阿德雷克索 drwxrwx--- 6 管理员 管理员 4,0K 二月。 25 17:14 adrexo 博客 drwxrwx--- 6 管理员 管理员 4,0K 二月。 26 13:58 adrexo-博客公司 drwxrwx--- 5 管理员 管理员 4,0K 二月。 19 16:10 adrexo-blog_save drwxrwx--- 5 管理员 管理员 4,0K 二月。 19 16:10 adrexo_保存 drwxrwx--- 5 管理员 管理员 4,0K 3 月 3 日 10:10 atd13 drwxrwx--- 5 管理员 管理员 4,0K 3 月 3 日 16:39 点 drwxrwx--- 5 管理员 管理员 4,0K 二月。 19 16:25 censier_test drwxrwx--- 5 管理员 管理员 4,0K 二月。 19 16:10 红色十字 drwxrwx--- 6 管理员 管理员 4,0K 二月。 20 19:11 友谊 -rwxrwx--- 1 管理员 管理员 2月19日24 16:48 索引.php drwxrwx--- 5 管理员 管理员 4,0K 2011年8月9日 nouvellemarque drwxrwx--- 5 管理员 管理员 4,0K 二月。 18 18:47 新品牌 drwxrwx--- 5 管理员 管理员 4,0K 二月。 24 17:24 慈善事业 drwxrwx--- 5 管理员 管理员 4,0K 二月。 19 16:32 慈善_ drwxrwx--- 23 管理员 管理员 12K 2013年5月30日 prestashop drwxrwx--- 5 管理员 管理员 4,0K 二月。 19 16:12 沙盒 drwxrwx--- 5 管理员 管理员 4,0K 2011 年 8 月 9 日 surlepont drwxrwx--- 2 管理员 管理员 4,0K 二月。 18 15:38 vhosts 无法删除 drwxrwx--- 5 管理员 管理员 4,0K 二月。 24 17:44 WordPress
谢谢你的帮助
答案1
答案2
日志条目给出了严重错误以及解决方案:
Permission denied: /home/administrateur/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
这看起来像是实际 .htaccess 文件上的错误权限,或者 apache 对您的主目录的权限不足,无法执行目录列表来检查这样的文件是否存在。
我认为您不希望 apache 在那里寻找 htaccess 文件,但是 apache 不仅在 www 子目录中检查 htaccess 文件是否存在,而且也在您的主目录中检查 htaccess 文件是否存在,这很奇怪,可能是因为您的 DocumentRoot 规范?
DocumentRoot /home/administrateur/www
应该
DocumentRoot "/home/administrateur/www"