簡體   English   中英

PHP項目的/ var / www /文件夾結構

[英]/var/www/ folder structure for PHP project

我只是為我的開發環境使用MAMP,並且還沒有真正理解web服務器上/ var / www / project-name /的文件夾結構。 我想知道你是否打算將Web服務器指向htdocs文件夾,或者它應該指向項目文件夾的根目錄?

我問的原因是因為出於安全目的,庫本來就存在於htdocs文件夾之外,但它們是如何從Web應用程序本身指向的? 當Web服務器指向Web應用程序的htdocs文件夾時,Web應用程序肯定無法訪問htdocs文件夾之外的文件夾?

一個簡單的解決方案是擁有如下文件夾結構:

/var/www/project-name/
    + webroot/
    + libraries/

將您的apache2 DocumentRoot指向webroot目錄。 保留您不希望從libraries目錄中的Web訪問的所有libraries 在您的PHP代碼中,使用include指令來訪問庫代碼。

訣竅是要了解php可以包含您具有讀取權限的系統上的任何文件。 瀏覽您網站的人只能訪問您的webroot目錄中的文件。

如果在同一台服務器上有多個vhost,則將每個站點放在/var/www下的目錄中是很常見的,並且每個站點都有一個htdocs文件夾,該文件夾作為Web根目錄安裝。 然后,您可以在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目錄的常用位置。

您將庫放在PHP的include_path ,這是普通用戶無法訪問的。

以與域工作相同的方式將本地網站映射到目錄中是一種愚蠢的想法。

通常,您在一個Web托管帳戶上有多個網站,因此請設置虛擬主機以鏡像設置。

如果您的共享托管是:

/var/www/root
 /var/www/root/website1
 /var/www/root/website2
 /var/www/root/website3

在本地PC上創建3個虛擬主機,但保持相同的文件結構。

此外,根據服務器文件結構,使用配置文件中的條件來設置站點,以確保相同的配置文件在兩個設置上都能正常工作。 這意味着您將保持一步構建過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM