-1

我有一个奇怪的问题。当我尝试使用 Dreamweaver 或任何文本编辑器编辑服务器上的每个 php 文件时,它都会出现损坏。当我在服务器上打开一个 php 文件查看源代码时,它显示的是输出的 html 代码,而不是实际的 php 代码。比如我上传了一个php文件,只用了一行代码(<?php echo phpinfo(); ?>)来输出服务器的php信息。该页面在浏览器中按预期显示;但是,当我尝试使用 notepad++、dreamweaver 或任何文本编辑器查看或编辑服务器上的源代码时,它会显示输出 html(大约 870 行 html 代码),而不是我放入的实际一行 php 代码在 php 文件中。

带有数据库连接字符串的 PHP 文件或包含在文本编辑器中打开为空白的文件。在dreamweaver 中,对于这些类型的php 文件,我收到“找不到文件”的错误——显然是指它无法解析数据库连接或包含文件。其他脚本文件(如 configuration.php)也以空白打开。

这个问题影响了我的 joomla 站点(joomla 2.5)中的所有 php 文件,甚至影响了不属于 joomla 的文件。它甚至会影响 htdocs 文件夹之外的 php 文件。但是,所有其他脚本文件(css、js、xml)在文本编辑器中正确打开。

甚至奇怪的是,这并没有影响 joomla 或网站上其他非 joomla 页面的性能。该网站运行良好,除了我无法在服务器上查看或编辑 php 源代码。在将所有文件复制到这个新的 LAMP 服务器之前,我在 localhost 和另一台远程服务器上完美运行了相同的 joomla 安装。

我通过 Windows 7 上的 Webdav 连接到服务器。它是大学服务器上的共享主机。我已经联系了 IT 部门,他们一遍又一遍地向我保证,他们已经检查了所有内容,问题不是来自他们的问题。

任何有关此问题的帮助将不胜感激。谢谢!

4

2 回答 2

3

文件根本没有损坏。您正在做的是在网络服务器为您提供它们之后查看它们的输出。

当您在服务器上有文件时,您不能只告诉记事本或 Dreamweaver 打开http://www.example.com/index.php,因为这意味着网络服务器会将其传递给您的程序,就好像它被请求一样通过浏览器 - 意味着所有 PHP 代码都被执行并且文件内容是 HTML 输出。

要查看其中的实际代码,您需要直接访问服务器(如果它在您的办公室、家里或其他地方),您只需浏览到正确的文件夹(/var/www/index.php for例如或 C:\server\www\index.php) 或更常见的情况,您需要通过 FTP 或其他类似方式下载文件。当您执行此操作时,服务器将直接为您提供文件,而无需首先运行它们,就像 Web 浏览器要求它们一样。

于 2012-07-18T04:55:24.407 回答
2

WebDAV 不太适合编辑 Web 内容,因为它无法区分用户对文件的访问(例如,有人查看您的 Joomla 站点)和对文件的管理访问(例如,您试图编辑 Joomla 配置文件)——并且这就是导致您的问题的原因。没有任何东西被“损坏”,但是 Web 服务器根本不允许您查看 PHP 文件的源代码。

您最好使用某种形式的带外访问来访问您的 Web 内容,例如 FTP 或 Windows 文件共享。如果这不可用,请向您的托管服务提供商投诉,直到它可用为止。

于 2012-07-18T04:55:15.023 回答