我有一个奇怪的问题。当我尝试用dreamweaver或任何文本编辑器编辑服务器上的每个php文件时,它都会损坏。当我在服务器上打开一个php文件来查看源代码时,它显示的是输出的html代码,而不是实际的php代码。例如,我上传了一个php文件,其中只有一行代码(<?php echo phpinfo(); ?>
)来输出服务器的php信息。页面在浏览器中显示正常;然而,当我尝试使用notepad++、dreamweaver或任何文本编辑器在服务器上查看或编辑源代码时,它显示的是输出的html(大约870行html代码),而不是我放在php文件中的实际一行php代码。
带有数据库连接字符串的Php文件,或包含在文本编辑器中以空白形式打开的文件。在dreamweaver中,我收到一个错误,即对于这些类型的php文件,"找不到文件"——显然是指它无法解决数据库连接或include文件。其他脚本文件(如configuration.php)也以空白形式打开。
这个问题影响了我的joomla站点(joomla 2.5)中的所有php文件,甚至影响了不属于joomla的文件。它甚至会影响htdocs文件夹之外的php文件。但是,所有其他脚本文件(css、js、xml)都可以在文本编辑器中正确打开。
奇怪的是,这并没有影响joomla或网站上其他非joomla页面的性能。这个网站运行得很好,只是我不能在服务器上查看或编辑php源代码。在将所有文件复制到这个新的LAMP服务器之前,我在localhost和另一台远程服务器上完美地运行了相同的joomla安装。
我通过Windows7上的Webdav连接到服务器。它在大学服务器上共享托管。我已经联系了IT部门,他们一次又一次地向我保证,他们已经检查了所有的东西,问题不是他们自己造成的。
对这个问题的任何帮助都将不胜感激。谢谢
这些文件根本没有损坏。您所做的是在Web服务器向您提供后查看它们的输出。
当你在服务器上有文件时,你不能只告诉notepad或dreamweaver打开http://www.example.com/index.php,因为这意味着Web服务器将把它传递给您的程序,就像浏览器请求它一样——这意味着所有的PHP代码都被执行,文件内容是HTML输出。
要查看其中的实际代码,您需要直接访问服务器(如果它在您的办公室、家中或其他地方),在那里您可以浏览到正确的文件夹(例如/var/www/index.php或C:\server\www\index.php),或者更常见的是,您需要通过FTP或其他类似方式下载文件。当您执行此操作时,服务器将直接向您提供文件,而无需首先运行,就好像web浏览器要求提供文件一样。
WebDAV不太适合编辑web内容,因为它无法区分用户对文件的访问(例如,有人在查看您的Joomla网站)和管理对文件的存取(例如,您试图编辑Joomla配置文件)——这就是导致您出现问题的原因。没有任何东西被"破坏",但web服务器根本不允许您查看PHP文件的源代码。
你最好使用某种形式的带外访问网络内容,如FTP或Windows文件共享。如果这不可用,请向您的托管提供商投诉,直到它可用为止。