我只是将 MAMP 用于我的开发环境,并且还没有真正理解 /var/www/project-name/ 在 Web 服务器上的文件夹结构。我想知道您是打算将 Web 服务器指向 htdocs 文件夹还是应该指向项目文件夹的根目录?
我问的原因是因为出于安全目的,库应该存在于 htdocs 文件夹之外,但是如何从 Web 应用程序本身指向它们?如果 Web 服务器指向 Web 应用程序的 htdocs 文件夹,Web 应用程序肯定不能访问 htdocs 文件夹之外的文件夹吗?
一个简单的解决方案是具有这样的文件夹结构:
/var/www/project-name/
+ webroot/
+ libraries/
将您的 apache2DocumentRoot
指向该webroot
目录。将您不想从 Web 访问的所有库保存在libraries
目录中。在您的 php 代码中,使用 include 指令访问库代码。
诀窍是要了解 php 可以包含系统上它具有读取权限的任何文件。浏览您网站的人只能访问您的 webroot 目录中的文件。
如果您在同一台服务器上有多个虚拟主机,通常会将每个站点都/var/www
放在htdocs
. 然后,您可以在 Web 根目录上方的文件夹中拥有日志和特定于应用程序的库。例如。:
/var/www/lolcats.com
/var/www/lolcats.com/htdocs
/var/www/lolcats.com/htdocs/index.php
/var/www/lolcats.com/lib
/var/www/lolcats.com/log
PHP 可以访问文件系统中 apache 服务器用户具有正确权限的任何文件。在没有虚拟主机的运行 apache 的 linux 机器上,/var/www 是您的 htdocs 目录的常用位置。
您将库放在include_path
普通用户无法访问的 PHP 中。
以与您的域工作相同的方式将您的本地网站映射到目录中是一个很好的主意。
通常您在一个虚拟主机帐户上有多个网站,因此设置虚拟主机以镜像设置。
如果您的共享主机是:
/var/www/root
/var/www/root/website1
/var/www/root/website2
/var/www/root/website3
在本地 PC 上创建 3 个虚拟主机,但保持相同的文件结构。
此外,使用配置文件中的条件根据服务器文件结构不同地设置站点,以确保相同的配置文件适用于两种设置。这意味着您可以保持一步构建过程。