事实:
- 有一个网站
- 该网站可通过 www.example.org 访问
- 有一个 EC2 实例很可能保留该网站
- 服务器是 Apache
- 服务器操作系统是 Ubuntu
- 我拥有对服务器的完全访问权限(和 sudo 权限)
- 服务器是一个巨大的混乱
问题是我不知道在哪里 - 简单地说 - 找到加载的 index.html/index.php。
如何确定在哪里可以找到网站的 PHP 和 HTML 代码?是否有解决这个问题的系统方法?
事实:
问题是我不知道在哪里 - 简单地说 - 找到加载的 index.html/index.php。
如何确定在哪里可以找到网站的 PHP 和 HTML 代码?是否有解决这个问题的系统方法?
首先,您应该检查服务器上托管了哪些网站
然后,当您找到一个站点时,请检查选项 DocumentRoot 的相应配置文件。例如
您想知道网站 example.net 所在的位置
您还应该注意任何别名指令。例如使用以下设置
当您访问http://example.net/some.file.html - apache 将在 /vhosts/default/public_html/ 中查看文件,同时使用http://example.net/api/some.file .html文件将被查看 /vhosts/default/public_api/。
重写/重定向怎么样,尤其是编程(当重定向由一些 php 代码触发时),我认为没有简单的方法可以找到这种情况。
尝试使用查找
否则假设 Apache 已从 Ubuntu 存储库安装,请查看
/etc/apache2/sites-available
,即如果网站定义了 apache VHOST,它可能会找到配置文件,然后在该文件中查找
"documentroot"
它应该会告诉您源代码的位置另一种可用于调试网站(或任何相关进程)的方法是使用
lsof
(可能不在路径上,常见于/sbin/lsof
)lsof -s [PID]
将列出给定进程可以处理的所有文件,并且有助于准确查看正在使用的文件(这包括您的 html/php 文件,以及站点需要的日志文件和库)请前往
cd /etc/apache2/站点可用/
在这里您将找到您的配置文件(即:000-default.conf)
请使用打开此文件/打开您的配置文件
vi 000-default.conf
在那里你会找到 DocumentRoot。那是你网站的代码
这是默认的 conf 文件,同样您将需要一些 conf 详细信息,请检查这些。
查找页面源文件
一种方法是浏览该站点以找到一个更独特的页面 - 比如说 newcontactform.php - 理想情况下,该页面不太可能出现在同一服务器托管的其他站点中。
然后你可以试试
如果失败,请遵循
这应该会产生一个可管理的小候选人名单。
然后,您可以检查文件,进行比较,如有必要,尝试进行小的更改(例如插入 HTML 注释)以验证文件确实生成了页面。
查找配置
有时配置文件在
ps
命令的输出中很明显。最坏的情况是ps -ef | grep -e 'apache|httpd'
,更创造性地使用ps
选项可能值得探索。您可以
httpd.conf
在 Ubuntu 和 Apache httpd 项目(可能不同)的典型位置中查找,或者仅使用locate
和find
如上所述。有时主配置文件是指虚拟主机的其他配置文件。您可以通过识别主配置文件来解决这个问题。
慢性病例
有时,旧服务器运行各种网络服务器守护进程。在这种情况下,可能需要一段时间才能找到它们并确定它们的配置文件在哪里。上述技术的组合最终应该会成功。
您可以使用
netstat -lntp
. 通常,定位二进制文件是指向包含配置文件的目录树的有用指针。您可以在 Web 服务器的 (apache) 配置文件中检查您正在寻找的域的虚拟主机 - httpd.conf(很可能位于 /etc/)只需打开文件并滚动它,直到找到VirtulaHost指令您的域,在那里您将看到DocumentRoot指令 - 这是您网站的文档根目录,您可以在其中找到应用程序的文件。