当前位置:论坛首页 > Linux面板 > 求助

【已解答】phpstudy能执行;BT不能执行; com 加载外部 组件

发表在 Linux面板2024-1-2 18:05 [复制链接] 8 969

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:
面板7.9.0 ; Apache 2.4.55 ; php 7.3 ;
系统版本:

             腾讯 windows server 2012
问题描述:
  1. <?php

  2. $myCom = new COM("Start10.Everything",null,CP_UTF8) or die('everything开启失败');
  3.     $search='K199';
  4.     $myCom->Everything_Reset();
  5.     $myCom->Everything_SetSearch($search);

  6.     $myCom->Everything_Query();
  7.     $qty = $myCom->Everything_GetNumResults();
  8.     $res = $myCom->Everything_GetResultFullPathName(0);
  9.     $res = str_replace('\\', '/', $res);
  10.     echo $res;
复制代码
上面这个代码,代码里面 Start10.dll  是我写的 dom组件, 做为中间件 调用 everything64.dll
everything64.dll  是 voidtools 用于文件搜索的 dll ; 因为不是com组件所以需要上面我写的 start10.dll 中间件
  在同一个服务器中, phpstudy 的环境下能运行;在 bt的环境中不能运行;运行截图见下方;
同样的服务器,
我怀疑是不是 bt默认 不能执行外部的文件,是不是权限问题, 但是不知道在哪里设置 权限?

相关截图(日志、错误):




使用道具 举报 只看该作者 回复
发表于 2024-1-2 18:13:27 | 显示全部楼层
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试
使用道具 举报 回复 支持 反对
发表于 2024-1-2 18:14:40 | 显示全部楼层
1. php.ini 没有禁用函数,没有禁用 com , 已经启用扩展 com_dotnet
2.phpstudy 和 bt 的  php.in 和 apache配置 基本上能看的懂的, 我都改成一样的了。
3. phpstudy 我试过 nigxn 默认配置也是正常运行;bt 我也试过 nigxn  默认配置 也有问题
是不是 bt 有哪个地方可以设置 让 apache 和php 执行 www目录以外的文件?
使用道具 举报 回复 支持 反对
发表于 2024-1-2 18:24:48 | 显示全部楼层
大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...

我关了跨站,还是不行, 还有可能是什么原因?


使用道具 举报 回复 支持 反对
发表于 2024-1-2 19:07:59 | 显示全部楼层
大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...

跨站防御我已经关闭 了。
我刚刚把 phpstudy 的 apache 和 php 都一模一样的复制到bt了, 还是 不行 。
使用道具 举报 回复 支持 反对
发表于 2024-1-2 21:07:49 | 显示全部楼层

这个问题是无解吗?
我搜了一下好几个一样的情况。
使用道具 举报 回复 支持 反对
发表于 2024-1-2 21:08:34 | 显示全部楼层
大炮运维V587 发表于 2024-1-2 18:13
您好,默认面板上创建的网站是开启了防跨站的功能,您把防跨站关闭了试试 ...



好多这样的。
使用道具 举报 回复 支持 反对
发表于 2024-1-5 08:30:14 | 显示全部楼层
我用了xp面板也不行, 用了bt面板也不行, 最后只能用 phpstudy 才行, 不知道哪里有问题。
感觉是用户权限的问题, 但是实在是找不到地方调整。
使用道具 举报 回复 支持 反对
发表于 2024-1-5 09:43:35 | 显示全部楼层
大炮运维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组件调用了

使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表