php - PHP shell_exec 在 deb 9 上访问系统服务
问题描述
我正在尝试使用 PHP 访问 deb 系统服务,shell_exec
但无法正常工作。
这是我试图从 php 脚本运行的命令:
shell_exec('sudo service icecast2 stop');
但它不起作用有两个原因..
1)我不确定我是否授予了正确的用户权限/etc/sudoers
?
%www-data ALL=NOPASSWD: /sbin/???????
2) ??????? = 我不确定在 /sbin 中指向何处以允许访问系统服务?我尝试了很多方法,但由于我不确定哪一部分我错了(可能两者都有),所以我无法让任何工作。
任何帮助表示赞赏;)
解决方案
在我的 Debian 系统上service
是 in /usr/sbin
,而不是/sbin
. 所以应该是:
%www-data ALL=NOPASSWD: /usr/sbin/service
您还应该在shell_exec()
命令中使用完整路径,因为/usr/sbin
可能不在网络服务器的$PATH
.
shell_exec('sudo /usr/sbin/service icecast2 stop');
推荐阅读
- javascript - 如何将 reCAPTCHA 应用于 Vue 页面?
- reactjs - Cron 组件限制值
- typeorm - 使用 repo.save 插入非主列或其他唯一列
- javascript - 此代码(js)是否正确?...如果是,那么为什么每次我运行此代码时,我的浏览器都会崩溃
- r - 具有多个变量和标准误差的条形图
- mysql - 如何并排显示两个连接的表?
- reactjs - 如何使用 react js 自动触发模态并为会话设置 cookie?
- c++ - 在 Nixos (21.05) 上的 QtCreator 中编译 Qt5 应用程序
- autodesk-forge - 从 AggregatedView 访问 Autodesk Forge Viewer 中多个模型的查看器方法?
- thrift - Apache Thrift Simple 服务器无法运行