当前位置: 首页 > 知识库问答 >
问题:

如何在php上启用shell_exec和exec?

张兴旺
2023-03-14

(网上有人提到这一点,但没有一个解决方案奏效。)我希望能够从PHP脚本中使用shell_exec和exec。

含义,用途:

<? exec("echo hello world"); ?> 

或者

<? shell_exec("echo hello world"); ?>

根据我在网上找到的链接(http://forums.cpanel.net/f5/enable-shell_exec-one-user-109601.html),一种方法是在VirtualHost下添加指令:

但是,当我查看配置文件,试图重新启动网络服务器,我得到:

28/07/14 17:18:26:    Syntax error on line 1 of /etc/httpd/conf.d/serv1.conf:
28/07/14 17:18:26:    php_admin_value takes two arguments, PHP Value Modifier (Admin)

并且服务器不会重新启动。

如何启用exec和shell_exec?我找不到这个错误的根源。

编辑:我不是机器上的根。我找不到php。ini文件,但有一个/etc/httpd/conf.d/php。conf文件,它没有禁用函数。

这是:

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps

共有3个答案

钱志强
2023-03-14

从函数中删除

disable_functions="" 

php中。ini文件

或者,如果您有Suhosin,请在Suhosin配置文件的Suhosin下检查您的设置。遗嘱执行人。func。黑名单

姚高韵
2023-03-14

您需要通过浏览\Apache2\bin(非文件夹)禁用PHP中的安全模式,然后重新启动服务器。

检查这里和这里。

郜光明
2023-03-14

如果你不是机器上的根,并且exec()函数被禁用,那么你不能自己启用它。

看见http://php.net/manual/en/ini.core.php#ini.disable-功能

禁用函数字符串

此指令允许您出于安全原因禁用某些功能。它采用逗号分隔的函数名列表。禁用功能不受安全模式的影响。

使用此指令只能禁用内部功能。用户定义的函数不受影响。

此指令必须在php.ini中设置例如,您不能在httpd.conf.中设置此指令

 类似资料:
  • 我目前有一个PHP页面,我的网络服务器服务。为了显示我需要在页面上显示的所有信息,我需要从外部python脚本输出。所以我一直在使用php的exec()命令来执行python脚本,并捕获字符串数组中的输出,如下所示: 然而,从来没有任何要打印的条目,但是当我直接在服务器的控制台上运行该命令时,它将正确输出。我已经尝试在我正在执行的网页上回显命令,这是正确的命令。我认为它唯一能做的就是exec()不

  • 问题内容: 我努力理解之间的区别和… 我一直习惯于执行服务器端命令,何时使用? 是否只是一个速记?较少的参数似乎是同一件事。 问题答案: 以字符串形式返回所有输出流。默认情况下返回输出的最后一行,但是可以将所有输出作为指定为第二个参数的数组提供。

  • 问题内容: 这就是很多问题。我在Apache上具有PHP 5.2.9,并且无法升级PHP。我有办法在PHP 5.2.9中启用SOAP吗?PHP手册说“要启用SOAP支持,请使用–enable-soap配置PHP”完全没有帮助。我该如何配置? 问题答案: 使SOAP正常工作通常不需要从源代码编译PHP。我建议仅尝试将其作为最后的选择。 为了获得良好的效果,请检查您的phpinfo关于SOAP扩展的内

  • 问题内容: 它应该是如此简单。我已经跟踪了所有可以找到的教程和论坛,但是无法正常工作。我只想在Apache2上用PHP构建RESTful API。 在我的VirtualHost指令中,我说: 但是我向服务器发出的每个PUT请求都得到了不支持的405方法。 有人提倡使用Script指令,但是由于我使用的是mod_php(而不是CGI),所以我不明白为什么会这样。 人们提到使用WebDAV,但在我看来

  • 我有一个PHP脚本,用于从供应商合作伙伴导入数据。它需要做的一件事是通过shell_exec()调用另一个脚本,然后处理一个图像文件并将其上传到AmazonS3存储桶。我现在正在终端上观看这个脚本的输出,过了一会儿,我看到一系列消息,内容如下: 奇怪的是,同一个脚本在这个脚本中被多次调用,开始工作,然后停止。它也是从其他脚本调用的,在这些脚本中运行良好。当我复制它无法运行的命令并将其粘贴到我自己时

  • 问题内容: 所以我有这段代码,我只想在另一个目录中列出保存的列表,其中php scrip在xampp文件夹中,并且保存到此路径: 我不知道为什么我不能让它继续工作,似乎输出为空,我真的混淆了它应该工作,或者我只是错了我需要一些帮助。 问题答案: 添加到shell命令的末尾以返回。 另外,如果运行PHP的用户没有足够的权限来查看中的输出,则上述代码将返回错误消息。