PHP应用程序适用于Windows服务器,但它不适用于Linux服务器,为什么?

问题描述:

我有一个PHP的Web应用程序。此应用程序在Windows服务器上运行,但在Linux服务器上无法运行。我认为这是关于php.ini或文件权限。这种情况有什么其他原因?对于这种情况,基本的php.ini配置必须是什么?PHP应用程序适用于Windows服务器,但它不适用于Linux服务器,为什么?

+3

你是什么意思的“不工作”?文件权限通常是一个问题,目录/文件在Linux上也是区分大小写的,确保php.ini中的任何引用都是正确的 – Paolo 2010-05-26 09:49:54

+0

不起作用意味着例如,我有一个来自php文件的ajax请求,但是这个文件没有响应任何东西。这意味着服务器不会编译或执行此php文件。我检查了php文件的字符编码类型,它们都是UTF-8。有时当php文件是ANSI字符编码类型时可能会出现问题。但是这个文件UTF-8 – 2010-05-26 09:54:38

+0

那么,这告诉我们什么没有发生。它有什么作用?日志说什么?正确的URI被击中了吗?它回来了200响应代码?这听起来像PHP只是没有安装或启用。 – Quentin 2010-05-26 09:57:18

永远不要问“什么可以是其他原因”。我们这里不是天气预报员。我们是程序员。我们的工具是某些,现在我们遇到了什么特别的问题。

你需要的唯一的东西就是让PHP告诉你什么是问题。

最简单的方法就是把这些行加入到您的配置文件,

ini_set('display_errors',1); 
error_reporting(E_ALL); 

,看看你的应用程序会说什么。它可以是权限或php.ini。所有人都会被告知。
很简单,呃? ;)

如果这些魔纹不会帮助,还有其他几种方式,手动中有一个很好的手册:http://php.net/manual/en/configuration.changes.php

当你的服务器上市后,不要忘记改变这些行

ini_set('display_errors',0); 
ini_set('log_errors',1); 
error_reporting(E_ALL); 

并查看错误日志中的错误消息,但不会向可能的黑客和无辜用户泄露它。

+0

我想问我的问题更多spesifically.My的PHP页面已不知何故转换为ANSI字符编码类型,同时上传到服务器。是否有任何方法使页面工作,即使他们有ANSI字符编码类型?以其他方式,我打开所有页面并将它们保存为UTF -8一个接一个 – 2010-05-26 13:30:40

+0

@cubuzoa文件编码不会影响脚本执行ANSI或UTF甚至1256也可以工作你怎么知道它已经被转换了?对于ansi符号utf-8具有相同的代码 - 他们之间没有任何区别 – 2010-05-26 14:02:43

+0

当我保存为带记事本的页面时,当前编码类型为ANSI – 2010-05-26 14:29:56