【发布时间】:2009-07-21 01:04:11
【问题描述】:
如果我在 Windows 和 Apache 上编写 PHP(如果重要的话是 php5)与在另一个操作系统和 Apache 上编写 PHP 是一样的吗?我不是指文件路径之类的东西。谢谢。
【问题讨论】:
标签: php
如果我在 Windows 和 Apache 上编写 PHP(如果重要的话是 php5)与在另一个操作系统和 Apache 上编写 PHP 是一样的吗?我不是指文件路径之类的东西。谢谢。
【问题讨论】:
标签: php
大多数情况下,但您需要注意一些事项:
/。在 Windows 下它是 \,但 PHP 会自动翻译 /。要么使用DIRECTORY_SEPARATOR 常量,要么始终使用/。exec() 或任何其他类似功能,命令将不一样。请参阅您的系统文档。关于阿帕奇:
您可能会在某个时候遇到一些障碍,其中一台服务器使用 PHP 作为模块,而另一台服务器通过 fcgi 使用它。以相同方式配置的两个 Apache 将表现相同。
【讨论】:
我将把它标记为社区 wiki,因为我只是从另一个 very similar thread 复制和粘贴我的答案:
差不多,但不完全。您需要注意几件事。
1) 文件名:Windows 是不区分大小写的操作系统。如果您创建文件 Foo.php,您可以使用 include('Foo.php') 或 include('foo.php') 包含它。当您将项目迁移到 Linux/Unix 时,如果您没有正确的案例,这将会中断。
2) 存在一些特定于语言的平台差异,通常是在涉及依赖集成操作系统功能的东西时。这些很少出现,但您可能偶尔会遇到它们。例如,checkdnsrr() 函数在 Windows PHP 中直到 5.3.0 版本才存在。
3) 安装。与 Windows 相比,您为 Linux/Unix 获得的 PHP 包在默认安装中包含的内容非常广泛。您需要确保在相反平台的开发盒上测试您的应用程序,以确保您已编译/添加了所有必需的库,否则您会从看起来正常的应用程序中得到一些不错的致命错误。
【讨论】:
只要你不exec系统命令或使用无效的文件路径,大多数东西应该没有问题。我使用 PHP 已经有一段时间了,在 Windows 机器上开发,然后将其转移到 Linux 机器上,我想不出有什么问题。
【讨论】:
正确答案是:“视情况而定”。
在大多数情况下,PHP 在任何操作系统上的功能都相同。但是有很多警告,通常有一些功能在 Windows 上根本不起作用。 (例如 getrusage())。由于 pecl4win(一个包含所有 PECL 库的 windows 编译的站点)的死亡,有时为 PHP 查找 windows 库也相当困难。这使得添加诸如 APC(替代 PHP 缓存)之类的东西非常麻烦。
也就是说,PHP 手册已经详细说明了哪些内容在 Windows 上不起作用。
【讨论】:
考虑到 PHP 只是一种语言,这并不重要。无论走到哪里都应该是一样的。
【讨论】:
是的......设置它可能有点不同,但它的用法与它是一种脚本语言相同。
【讨论】:
正如其他用户指出的那样,存在一些差异(我不会重复这些,已经有很好的答案;最烦人的一点是 windows 下的文件名不区分大小写,恕我直言),因此,如果您使用 Linux 服务器在生产环境中部署站点,偶尔在 Linux 上对其进行测试可能会很有用。
如果您不想在您的机器上安装 Linux,并且拥有足够强大的计算机(我会说至少 2 个内核和 2 GB RAM),您可以使用虚拟机,其中一个软件(两者都是免费的):
它还将帮助您了解一些有关 Linux 的基础知识——如果您打算专业地进行 PHP 开发,这并不是一件坏事,因为在 PHP 网络服务器方面,Linux 比 Windows 更常用。
【讨论】: