【已解答】phpstudy能执行;BT不能执行; com 加载外部 组件
为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本: 面板7.9.0 ; Apache 2.4.55 ; php 7.3 ;系统版本:
腾讯 windows server 2012
问题描述:
<?php
$myCom = new COM("Start10.Everything",null,CP_UTF8) or die('everything开启失败');
$search='K199';
$myCom->Everything_Reset();
$myCom->Everything_SetSearch($search);
$myCom->Everything_Query();
$qty = $myCom->Everything_GetNumResults();
$res = $myCom->Everything_GetResultFullPathName(0);
$res = str_replace('\\', '/', $res);
echo $res; 上面这个代码,代码里面 Start10.dll是我写的 dom组件, 做为中间件 调用 everything64.dll
everything64.dll是 voidtools 用于文件搜索的 dll ; 因为不是com组件所以需要上面我写的 start10.dll 中间件
在同一个服务器中, phpstudy 的环境下能运行;在 bt的环境中不能运行;运行截图见下方;
同样的服务器,
我怀疑是不是 bt默认 不能执行外部的文件,是不是权限问题, 但是不知道在哪里设置 权限?
相关截图(日志、错误):
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 1. php.ini 没有禁用函数,没有禁用 com , 已经启用扩展 com_dotnet
2.phpstudy 和 bt 的php.in 和 apache配置 基本上能看的懂的, 我都改成一样的了。
3. phpstudy 我试过 nigxn 默认配置也是正常运行;bt 我也试过 nigxn默认配置 也有问题
是不是 bt 有哪个地方可以设置 让 apache 和php 执行 www目录以外的文件? 大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...
我关了跨站,还是不行, 还有可能是什么原因?
大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...
跨站防御我已经关闭 了。
我刚刚把 phpstudy 的 apache 和 php 都一模一样的复制到bt了, 还是 不行 。 http://wxalbum-10001658.image.myqcloud.com//wxalbum/29335/20240102210653/b1f0782aefbd1573f14e5bece435bbb9.jpg
这个问题是无解吗?
我搜了一下好几个一样的情况。 大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...
http://wxalbum-10001658.image.myqcloud.com//wxalbum/29335/20240102210653/b1f0782aefbd1573f14e5bece435bbb9.jpg
好多这样的。 我用了xp面板也不行, 用了bt面板也不行, 最后只能用 phpstudy 才行, 不知道哪里有问题。
感觉是用户权限的问题, 但是实在是找不到地方调整。 大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...
更新一下:
1.正常的com是能正常调用的,这个案例里面不能调用的是com作为中间件调用start10.dll 然后再间接调用everything.dll
2.我观察到phpstudy 是没启动apache服务的,httpd.exe 运行的用户是adminostrator;
3.我把任务管理器里面的apache服务停止;然后手动点开C:\BtSoft\apache\bin\httpd.exe;这个时候在任务管理器httpd.exe的用户就会变成administrator;
这个时候网站是能正常访问的,然后 这个 外部的dll 就能通过com组件调用了
页:
[1]