相关疑难解决方法(0)

我如何以编程方式从linux中的apache重启系统服务(而不是apache)?

我需要以简单的方式允许最终用户从同一个盒子上的apache提供的网页重启tomcat.

我们正在尝试让我们的QC部门轻松地将新版本的webapp部署到apache.我们正在使用samba,但我们需要一种简单的方法让他们在部署之前/之后停止/启动tomcat服务器.

这只适用于内部qc盒.是否有现成的解决方案?或者更容易编写一些快速的PHP应用程序来处理这个?

php linux apache cgi restart

5
推荐指数
1
解决办法
5188
查看次数

ssh2_exec没有执行简单的命令

ssh_exec()拒绝在Windows中执行命令,我遇到了一个噩梦.
这是我的代码:

<?php       
$connection = ssh2_connect('localhost', 22);
ssh2_auth_none($connection, 'root');

$stream = ssh2_exec($connection, 'C:\Program Files\CCleaner\CCleaner.exe',FALSE);       
?>
Run Code Online (Sandbox Code Playgroud)

它向我显示以下警告:Unable to request a channel from remote host in.如果您有任何提示,请告诉我.谢谢.

php windows libssh2

5
推荐指数
1
解决办法
2910
查看次数

从PHP / Apache,exec()或system()程序作为root用户:“ sudo:无法打开审核系统:权限被拒绝”

我已经花了半天的时间来解决这个问题,并且我已经做了很多研究。我也熟悉许多与此主题相关的讨论,例如这一主题: 如何以root用户身份运行PHP exec()?

不幸的是,我发现的建议似乎都不适合我。

首先,我正在为规范编写内容,因此我无法避免这样做。此外,所有计算机都将存在于未连接到Internet的专用网络上。虽然拥有一些安全性很重要,但最重要的是要防止错误。我的目标是配置一些“瘦服务器”。通过PHP脚本,我需要能够更改网络配置(静态或DHCP)并重新启动网络。

我尝试的第一件事是编写一个SUID根目录的C程序。它读取,修改和写入网络配置文件。如果我以普通用户身份运行它,它将运行良好,并且可以访问和修改root拥有的文件。但是,如果我从PHP脚本运行它,则会出现访问错误。看来Apache会以某种方式阻止SUID根。

根据其他讨论的建议,我尝试了“ sudo”方法。我暂时将其添加到/ etc / sudoers:apache ALL =(ALL)NOPASSWD:ALL

我得到的错误是:sudo:无法打开审核系统:权限被拒绝

根据此俄语页面,发生这种情况是因为RHEL(我正在使用Fedora)之类的系统默认对sudoers是requiretty。所以我将这一行添加到/ etc / sudoers:默认值!requiretty

我仍然遇到相同的错误。sudo:无法打开审核系统:权限被拒绝

我完全被困在这里了。也就是说,除非我想以根用户身份运行Apache本身,否则会比其他任何事情都更加不便。

有人可以在这里提出任何建议吗?我意识到我要做的事很奇怪。我敢打赌,你们中的一些人会向我介绍一些用于远程配置Fedora机器的现有系统(现在,我想到了,现在就开始研究)。

顺便说一句,我正在运行SELinux,因为默认情况下这就是Fedora 15的配置方式。

谢谢。

编辑:
我找到了本教程:http :
//www.cyberciti.biz/faq/howto-disable-httpd-selinux-security-protection/

不幸的是,当我运行“ setsebool httpd_disable_trans 1”时,出现错误:
无法更改活动布尔值:无效布尔值

我还尝试直接编辑不存在的“ / etc / selinux / targeted / booleans”,然后重新启动apache,但这也不起作用。

php apache sudo suid

3
推荐指数
1
解决办法
9925
查看次数

无法重新加载 nginx.service:需要交互式身份验证

我正在使用 symfony 3 处理项目,该项目在 nginx 服务器上运行,我正在尝试使用以下命令重新加载配置文件:来自控制器的“systemctl reload nginx”。

/**
* @Route("/testReloadConfig")
*/
public function testReloadConfigAction(Request $request){

    $output = [];
    $result = null;

    $cmd = 'systemctl reload nginx 2>&1';

    exec($cmd, $output, $result);

    return new JsonResponse([
        'result' => $result,
        'output' => $output,
    ]);
}
Run Code Online (Sandbox Code Playgroud)

响应:
{"result":1,"output":["Failed to reload nginx.service: Interactive authentication required.","有关详细信息,请参阅系统日志和 \u0027systemctl status nginx.service\u0027。"]}

php command-line nginx symfony

3
推荐指数
1
解决办法
2万
查看次数

即使在更新后的sudoers之后,PHP网页也不会启动unix命令

基本上我试图从php网页重启服务.

这是代码:

<?php
exec ('/usr/bin/sudo /etc/init.d/portmap restart');
?>
Run Code Online (Sandbox Code Playgroud)

但是/var/log/httpd/error_log,我知道了

无法改为sudoers gid:不允许操作

在/ var/log/messages中,我明白了

9月22日15:01:56 ri kernel:audit(1222063316.536:777):avc:被拒绝{getattr} for pid = 4851 comm ="sh"name ="var"dev = dm-0 ino = 114241 scontext = root:system_r :httpd_sys_script_t tcontext = system_u:object_r:var_t tclass = dir
9月22日15:01:56 ri kernel:audit(1222063316.549:778):avc:denied {setrlimit} for pid = 4851 comm ="sudo"scontext = root:system_r: httpd_sys_script_t tcontext = root:system_r:httpd_sys_script_t tclass = process
9月22日15:01:56 ri kernel:audit(1222063316.565:779):avc:拒绝{read} for pid = 4851 comm ="sudo"name ="shadow"dev = dm-0 ino = 379669 scontext = root:system_r:httpd_sys_script_t tcontext = system_u:object_r:shadow_t …

php sudo exec

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

php ×5

apache ×2

sudo ×2

cgi ×1

command-line ×1

exec ×1

libssh2 ×1

linux ×1

nginx ×1

restart ×1

suid ×1

symfony ×1

windows ×1