我试图连接到SnelStart的一个网关,来自荷兰的会计软件。为此,我从具有管理员权限的命令提示符调用regsvr32 SnelStartGateWay.dll,注册了名为regsvr32 SnelStartGateWay.dll的网关DLL。
下面是我的PHP代码的一个简单部分:
$gw = new COM('SnelStartGateWay.clsGWaySnelStart');
$gw->mtdGWayAdmiOpenen('D:\SnelStart', 'SnelStart Voorbeeldbedrijf');当我使用PHP命令提示符运行这段代码时,我的XAMPP安装在安装和注册SnelStart和网关的同一台PC上,没有发生错误,甚至可以继续创建一个新客户并通过网关订购。
但是,当我从相同的XAMPP安装中通过HTTP运行完全相同的PHP文件(这正是我最终希望实现的)时,我得到以下错误:
<br />
<b>Fatal error</b>: Uncaught exception 'com_exception' with message '<b>Source:</b> SnelStart
mtdGWayAdmiOpenen<br/><b>Description:</b> U kunt alleen gebruik maken van SnelStart Gateway als deze module geregistreerd is. Het registreren en gebruiken van SnelStart Gateway is gratis. Vraag een gratis registratie aan via info@snelstart.nl (vergeet niet uw naam en adresgegevens te vermelden).' in D:\xampp\htdocs\snelstart.php:7
Stack trace:
#0 D:\xampp\htdocs\snelstart.php(7): com->mtdGWayAdmiOpenen('D:\SnelStart', 'SnelStart Voorb...')
#1 {main}
thrown in <b>D:\xampp\htdocs\snelstart.php</b> on line <b>7</b><br />虽然错误信息的一部分是荷兰语,但它会读到您需要注册网关并在软件中启用它。但有趣的是,它通过CLI没有任何麻烦。
我是否需要改变PHP在HTTP中的运行方式,就像它在CLI中运行时拥有的权限一样?这会不会是地方权利的问题呢?
我也尝试过禁用我的防火墙和防病毒,但到目前为止没有任何运气。
提前谢谢。
发布于 2014-05-09 19:20:19
我现在将Windows服务作为本地用户帐户运行,它还可以访问SnelStart软件包。如何找到要使用哪个用户帐户,我使用/bin文件夹中的批处理脚本手动启动Apache。然后,使用任务管理器,我检查了这个帐户属于哪个帐户,并确认脚本在那一刻运行。正如它所做的那样,我将服务更改为使用该本地帐户运行,并执行通常的操作,例如自动启动服务。现在一切都很顺利!
发布于 2014-04-21 10:14:19
您必须知道注册信息是如何从他们的代码中获取的。可能PHP安全设置(在php.ini中)比Apache安全设置(通常在另一个php.ini中,再加上在Apache中找到的任何php_admin_values )更为宽松。
它可能是一个open_basedir限制,一个不同的包含路径,不允许url包装等等,或者仅仅是一个事实,即Apache以另一个用户的身份运行您的代码,与您在CLI中运行这个帐户的帐户相比具有受限的访问权限。
https://stackoverflow.com/questions/23195104
复制相似问题