事实:
- 有一个网站
- 该网站可通过 www.example.org 访问
- 有一个 EC2 实例很可能保持网站
- 服务器是 Apache
- 服务器操作系统是 Ubuntu
- 我对服务器有完全访问权限(以及 sudo 权限)
- 服务器非常混乱
问题是我不知道在哪里 - 简单地说 - 找到已加载的index.html / index.php。
我如何知道网站的 PHP 和 HTML 代码在哪里?有没有系统的方法可以解决这个问题?
答案1
首先你应该检查服务器上托管了哪些网站
# 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 代码触发时),我认为没有简单的方法来找到这种情况。
答案2
尝试使用查找
find / -type f \( -iname "*index.html*" -o -iname "*index.php*" \) 2> /dev/null
否则,假设 Apache 已从 Ubuntu 存储库安装,请查看/etc/apache2/sites-available
,即
grep -niR "thedomainname" /etc/apache2/sites-available
如果网站定义了 apache VHOST,则可能会找到配置文件,然后在该文件中查找,"documentroot"
它会告诉你源代码的位置
答案3
另一种方法,可用于调试网站(或任何进程),即使用lsof
(可能不在路径上,通常在 中找到/sbin/lsof
)
lsof -s [PID]
将列出给定进程所处理的所有文件,并有助于准确了解正在使用的内容(这包括您的 html/php 文件,以及网站所需的日志文件和库)
答案4
您可以在 Web 服务器(apache)的配置文件中检查要查找的域的 Vhost -httpd配置文件(最有可能位于 /etc/)只需打开文件并滚动浏览,直到找到虚拟主机您的域名的指令,您将在那里看到文档根目录指令 - 这是您的网站的文档根目录,您可以在其中找到应用程序的文件。