当前位置: 首页 > 面试题库 >

为什么php命令`exec(“ service apache2 restart”);`在ubuntu上不起作用?

别峻
2023-03-14
问题内容

我需要使用apache配置的php在我的Web服务器上执行一些命令。

exec("service apache2 restart", $output);
print_r($output);

输出:

Array (
    [0] =>  * Restarting web server apache2
    [1] => Action 'start' failed.
    [2] => The Apache error log may have more information.
    [3] =>    ...fail! 
)

我的猜测是因为我的ubuntu上有php权限!你有什么建议?


问题答案:

您需要运行:

visudo

检查你是否有一条线像

Host_Alias LOCAL=192.168.0.1

在文件顶部添加您自己的本地IP,然后添加一行

www-data       LOCAL=NOPASSWD:/usr/bin/service

最后在您的PHP文件中:

exec("/usr/bin/sudo /usr/bin/service apache2 restart");

(您正在尝试通过Web重新启动apache,也许您不知道webmin界面?我认为有比sudo方法更好的解决方案。授权www-
data停止,启动(…)全部不是一件好事。服务。请更好地解释您为什么要重新启动apache;))



 类似资料:
  • 我试图在一个网站上使用gettext,为此我遵循O'Reilly媒体教程。在第一页的末尾,它说我需要使用命令,但是我的命令行返回以下内容:我在XAMPP上运行我的网站,所以我的整个目录是这样的: 我有考试。php在gettext文件夹中,以及消息。采购订单位于文件夹中。即使我尝试使用poedit,它也不起作用。这是我的测验。php代码: 我不确定bindtextdomain函数中的字符串是否正确。

  • 我使用的是Laravel5.4,我运行了composer更新以更新到最新版本,即5.4.27。当我尝试使用php artisan serve命令运行服务器时,该命令不起作用,我在所有php artisan命令[ErrorException]文件[u put_contents(/bootstrap/cache/services.php)]上不断遇到此错误:无法打开流:权限被拒绝

  • 我是PSQL新手。在终点站。我输入了以下命令 我面临以下错误: PSQL:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/PostgreSQL/.s.pgsql.5432”上的连接? 请有人在这方面帮助我。

  • 我在Ubuntu上使用bash运行最新的稳定窗口,通过cmder wslbridge运行(我尝试直接通过bash运行,但错误相同)。移动到基于windows的react-native文件夹并尝试运行一些cli,如、、总是产生错误; 而令人惊讶的是,其他一些命令如npm可以正常启动... 国家预防机制将其打印出来;

  • 问题内容: 嗨,我只是想创建一个简单的golang应用程序,它使用以下命令在identi.ca上发布新的凹痕 到目前为止,这是我的代码,恕我直言,这应该起作用,但实际上它不起作用,有人知道如何解决此问题吗? 编辑: 不:我没有收到任何错误消息:/ 问题答案: 不会将整个命令行作为单个参数。您需要将其称为: 您怎么知道是否遇到错误?您无需检查的返回值。 您实际上应该将命令创建与运行分开。这样,您可以

  • 我刚刚安装了node.js,还在环境变量中设置了PATH。路径值为 短期内 android命令正常工作。