本地服务器和远程服务器的区别

Differences between local and remote servers

我正在用 Lumen framework 开发一个网站。

一切都已配置并在本地完美运行。然而,在远程服务器上却不是这样。

示例:

在本地,我使用 Xampp(PHP 版本 5.6.14,MySQL 版本 5.0.11-dev)并删除,我在共享服务器 OVH(PHP 版本 5.6.15, MySQL 版本 5.1.73).

你遇到过这种情况吗?有没有办法来解决这个问题?可能要写个配置文件?

编辑:鉴于下面的评论,我的问题的答案似乎实际上取决于操作系统使用

在本地,我在一台 Windows 机器上工作,而在远程,它是一台机器 运行 Linux。 Windows 似乎不那么麻烦某些规则,例如区分大小写。

When I recover a data from my database, even if the column contains only integers, the result in local is integer, but in remote : string. I have to specify (int) before the integer values to be sure they are integer.

发生这种情况是因为 PHP 不知道如何解释查询结果。没有关于如何解释列值的信息。要解决此问题并在 PHP 中具有正确的类型表示,您必须安装 MySQL 本机驱动程序 (mysqlnd)。

Here's a link to documentation page that explains how to do it.

Locally, all my classes belong to namespaces. Everything works locally and in remote, sometimes I find myself with Class 'blabla\blibli' not found

根据评论,您似乎在一个 OS 上开发并在另一个 OS 上部署。因为 Windows 实际上 比 Linux 更糟糕 (这不是我是 Linux 的粉丝,这是一个简单的事实),在区分大小写和不区分大小写方面,他们往往会原谅很多。

Windows 对这些事情宽容并不意味着它们更好或者 Windows 的麻烦更少(来自系统管理员 POV,Windows 是一场噩梦) .这只是意味着您不能偷懒并期望 OS 原谅所有事情并猜测您希望代码如何工作。

  • 保持一致
  • 设置您的开发环境以匹配您的部署环境。您可以为此使用虚拟机。如果你更喜欢在 Windows 下开发,你可以使用 Oracle Virtualbox 来 运行 一个 Linux OS,设置 Samba 并且在 Windows 你可以映射一个 Linux 开车。这让你 运行 你的 IDE 在 Windows 下,所有代码都保存到 Linux 框。您的网络服务器和 php 应该 运行 在 Linux 下,您可以通过 运行 在 Windows
  • 下的浏览器访问它
  • 设置测试。 运行 在部署之前。这将告诉您是否可能遗漏或遗漏了某些内容
  • 保持一致

祝你好运。