Apache2 + PHP静态目录

我安装了Apache2和PHP5。 我的DocumentRoot是/ var / www /。 所有的.php.html文件都以/和其子目录的forms提供。 但是,当我要求,说, .png图像我得到了Forbidden通知。

我想为静态内容分派特定/static/目录。

我应该如何编辑Apache的configuration文件才能从/static/查看静态内容?

我不确定如果我了解问题,但您可以:

如果你想服务静态文件不是从/ var / www /静态使用:

 Alias /static/ /somewhere/somewhere/dir/ 

如果您的静态目录已经在/ var / www / static中,并且出现禁止错误 – 请确保这些文件对于运行apache的用户是可读的:

 chown www-data:www-data -R /var/www/static 

应该修复可读性问题。 取决于分配用户名可能会有所不同 通过运行ps faux | grep apache来检查它

Apache允许在每个目录的基础上指定php.ini设置,所以你应该可以在你的httpd.conf文件中使用类似下面的方法禁用用户dirs的php:

 <Directory / home / * / public_html>
closuresphp_admin_flag引擎
 </目录>

你也可以在“.htaccess”

为了使文件系统上的目录的内容成为'webservable',你必须有一个Directory指令来封装它,并且这些文件必须被你的web服务器执行的用户访问。 大多数默认安装有一个Directory设置和所有的内容下(即。/ var / www /)。

这不是强制性的,只要您为其定义了其他Directory部分,就可以从其他目录下面提供内容。 你可以像这样做多个目录,使它看起来像一个带有Alias指令的快乐树。

您也可以禁止为其他“webservable”树的某些部分提供服务,以防止包含包含数据库连接string,密码,用户名等的文件。

同样的规则适用于脚本,只要使用ScriptAlias指令。