求助:探讨下官方源php引发的一系列疑惑和问题

最近接手了公司的网站服务器,坑爹的西部数码服务器系统只能在 win,centos,debian 和 ubuntu 中选择(作为工作和生活哦都是 openSUSE 的人,这简直不能忍啊),但是没办法只能选择安装了 centos6.4
由于 centos 源里面的 php 版本太低,就从源代码安装了 php5.4.20+nginx+mariadb。
我现在主要的任务是做网站的银联接口开发,本地(opensuse13.1,php5.4.20)引入文件没有任何问题。
但是同样的代码放到服务器上就会报错。

Parse error: syntax error, unexpected end of file in /home/wwwroot/.../netpayclient.php(2) : eval()'d code(1) : eval()'d code on line 1.

其中 netpayclient.php 是银联官方提供的一个 php 文件,里面的内容是加密的,没法进行改动。
参照本地的 php 开发环境对服务器进行相应的调整后,这个报错还是同样的存在。
相同的问题在 windows 服务器上同样存在!
现在有这个几个疑问向大家求教:
第一,官方源里面的 PHP 文件打包的时候有什么特殊的设置,所以导致的这种情况发生的吗?还是就是和系统有关系。
第二,官方源里面的 php 相关的 rpm 文件放到 centos6.4 中运行,可以正常的安装 LAMP/LNMP 环境吗?如果不能的话,需要进行怎样的改动 (依赖还是其他的问题)?
第三,vsftpd 安装完成并配置后,一直没法登陆报错是 500,在鸟哥的教程中查到是和 selinux 或者防火墙相关的,但是一直没搞成功。能不能给科普下要着呢吗设置。

非常感谢!!!

你确认服务器和本地的 PHP 环境是一致的?PHP 版本一致? 编译参数一致?默认配置一致?
比如在 php.ini 中开启短标签的配置是一样的吗?
另外代码中是否出现了

{?>
<?php}

你不应该直接紧挨着 php 开始和结束标签放 大括号,而应该用空格分隔开来。

{ ?>
<?php {

我确认 php 环境和版本,都是一致的。相应的组件都是一致的,另外,服务器是编译的,本地环境是在源里直接 zypper 安装的。

你的问题应该就是花括号不匹配、空格等引起的。
建议你写个页面

<?php
 echo phpinfo(); 
 ?>

看看环境是否真的一致。
另外,可以使用 Webtatic EL6 的 YUM 源来安装 php5.4

rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm  

安装 php5.4

yum install php54w

我本地实验可以正常使用,就是服务器环境出错的。。。

从我的 iPhone 发送,使用 Tapatalk

  1. build.opensuse.org/package/show/devel:languages:php:php54/php5

openSUSE 的 php54 有不少补丁,你可以对照 specfile 一个一个打上去测试。也许是原版有 bug 呢。

  1. 肯定不可以。CentOS 是 CentOS,我大蜥蜴是大蜥蜴。
  2. YaST - 防火墙。开对应端口。终端也有 YaST。

感谢@Bruce.Auyeung 和女王大人的帮助,我现在正在对照 spec 查看是什么问题。但是以我的水平,估计暂时也不会有什么成果。
询问了西部数码的客服之后,发现可以自主安装系统(不过收费),就准备安装大蜥蜴了,貌似应该老板不会报销,只能自己掏腰包了!
从来没在虚拟主机上安装过大蜥蜴,如果有什么问题,我会继续求助的:)