php 在一台机器上解析失败,但在另一台机器上解析失败

Posted

技术标签:

【中文标题】php 在一台机器上解析失败,但在另一台机器上解析失败【英文标题】:php fails parsing on one machine but not the other 【发布时间】:2015-01-14 19:51:20 【问题描述】:

我会在 Chat 中询问,但我的积分还不够。

我正在尝试将服务器从已部署的设置迁移到在 virtualbox 中运行的虚拟机。所有网络在虚拟机中都可以正常工作。我发代码没问题,但我觉得它太大了,文件太多了。

我完全迷路了。我有

    已安装 Ubuntu 服务器(更新等) 安装了php、apache、mysql、phpmyadmin等 ssh'd 进入当前服务器 使用tar -zcvf ./html_files_copy.tar.gz ./html/*复制文件 使用mysqldump -uroot -p --all-databases > db_copy.sql复制了mysql的东西 同时部署了 html/php 文件和 mysql 数据库

不管我做什么,服务器都会生成一个空白页面。我已经尽可能多地研究了这一点,似乎 php 在解析 php 代码时失败了。

我怎样才能解决这个问题并让 php 不会失败,为什么它可以在一台机器上运行而不是在另一台机器上运行?我可以将这些东西复制回旧服务器并且它可以工作!? Mysql 表看起来也完全一样。

完全空白的页面(调试信息已打开,不知道为什么它什么也没说)是由于较新的 PHP 不再知道一个版本的旧函数而导致的解析错误是否有意义?

是否有一个列表可以用来搜索可疑函数的代码?


为了获取以下信息,我在 php 文件中使用了 phpinfo(),使用 ssh 从终端获取 lsb_release -auname -a

- 新服务器

PHP 版本 5.5.9-1ubuntu4.5 与 Apache/2.4.7 Ubuntu 14.04.01 mysql 客户端 API 版本 5.5.40 Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

- 旧服务器

PHP 版本 5.5.9-1ubuntu4.4,带 Apache/2.4.7 在 Ubuntu 14.04 上 mysql 客户端 API 版本 5.5.40 Linux linuxdesk 3.13.0-34-generic #60-Ubuntu SMP Wed Aug 13 15:45:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

【问题讨论】:

您的日志文件中是否显示错误? 新服务器提供phpinfo文件没有任何问题?然后php就可以了,你需要调试你的代码。也许你有一些硬编码到 IP 地址或类似的东西。 我正在尝试调试它,但我没有编写它,而且我对 PHP 不是很精通。另外,很抱歉这很愚蠢,但是我应该在哪里查找日志? 【参考方案1】:

检查 PHP 日志文件或使用 display_errors 标志启用错误显示。同时启用所有错误的日志记录:error_reporting(E_ALL); 并使用phpinfo() 验证这些设置。

【讨论】:

以上是关于php 在一台机器上解析失败,但在另一台机器上解析失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Perl 程序在一台机器上得到污染警告,而在另一台机器上却没有?

C++:Cookie 不存储在一台机器上,而是存储在另一台机器上

如何在一台机器上保存张量板投影仪检查点文件并在另一台机器上打开?

C#.NET 在一台机器上加密 XML 并在另一台机器上解密

为啥在某些机器上堆栈溢出,但在另一台机器上出现分段错误?

从在一台机器上工作的浏览器下载 S3 图像并在另一台机器上给出 CORS 错误