Apache-2.2
如何找出網站程式碼所在的位置?
事實:
- 有一個網站
- 該網站可通過 www.example.org 訪問
- 有一個 EC2 實例很可能保留該網站
- 伺服器是 Apache
- 伺服器作業系統是 Ubuntu
- 我擁有對伺服器的完全訪問權限(和 sudo 權限)
- 伺服器是一個巨大的混亂
問題是我不知道在哪裡 - 簡單地說 - 找到載入的 index.html/index.php。
如何確定在哪裡可以找到網站的 PHP 和 HTML 程式碼?是否有解決這個問題的系統方法?
首先,您應該檢查伺服器上託管了哪些網站
# apachectl -t -D DUMP_VHOSTS
然後,當您找到一個站點時,請檢查選項 DocumentRoot 的相應配置文件。例如
# apachectl -t -D DUMP_VHOSTS VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1) port 80 namevhost 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1) port 80 namevhost gl-hooks.example.net (/etc/httpd/conf.d/hooks.conf:1) alias example.net alias www.example.net
您想知道網站 example.net 所在的位置
# grep DocumentRoot /etc/httpd/conf.d/hooks.conf DocumentRoot /vhosts/gl-hooks.example.net/ # cd /vhosts/gl-hooks.example.net/ # ls -la total 4484 drwxr-xr-x 6 apache apache 4096 Feb 10 11:59 . drwxr-xr-x 14 root root 4096 Feb 23 08:54 .. -rw-r--r-- 1 root root 1078 Dec 19 09:31 favicon.ico -rw-r--r-- 1 apache apache 195 Dec 25 14:51 .htaccess -rw-r--r-- 1 apache apache 98 Dec 7 10:52 index.html
還應該注意別名和重定向/重寫
您還應該注意任何別名指令。例如使用以下設置
<VirtualHost *:80> ServerName example.net ServerAlias www.example.net ... DocumentRoot /vhosts/default/public_html/ Alias /api/ /vhosts/default/public_api/ ... </VirtualHost>
當您訪問http://example.net/some.file.html - apache 將在 /vhosts/default/public_html/ 中查看文件,同時使用http://example.net/api/some.file .html文件將被查看 /vhosts/default/public_api/。
重寫/重定向怎麼樣,尤其是程式(當重定向由一些 php 程式碼觸發時),我認為沒有簡單的方法可以找到這種情況。