从 PHP 执行 shell 命令
Posted
技术标签:
【中文标题】从 PHP 执行 shell 命令【英文标题】:Execute shell command from PHP 【发布时间】:2014-04-21 13:36:21 【问题描述】:我想从 php 代码运行一些命令。当我从终端运行代码时,它可以正常工作而不会出错。但是当我从 php 代码运行相同的命令时,它会给我这样的错误:
/usr/bin/php: /opt/lampp/lib/libxml2.so.2: version `LIBXML2_2.9.0' not found (required by /usr/bin/php)
我运行命令:locate libxml2.so
,该命令给出如下输出:
/opt/lampp/lib/libxml2.so
/opt/lampp/lib/libxml2.so.2
/opt/lampp/lib/libxml2.so.2.8.0
/usr/lib/i386-linux-gnu/libxml2.so
/usr/lib/i386-linux-gnu/libxml2.so.2
/usr/lib/i386-linux-gnu/libxml2.so.2.9.0
所以,似乎已经安装了 2.9.0 版本。那么,如何在没有这个错误的情况下执行命令呢?
【问题讨论】:
【参考方案1】:使用shell_exec 函数来执行它。
试试<?php echo shell_exec('locate libxml2.so');
【讨论】:
这也给了我与我粘贴的问题相同的输出。 啊,我不明白你的意思。你应该修复你的 php.ini 配置,或者使用cp /opt/lampp/lib/libxml2.so.2 /opt/lampp/lib/libxml2.so.2.old && rm /opt/lampp/lib/libxml2.so.2 && ln -s /usr/lib/i386-linux-gnu/libxml2.so.2 /opt/lampp/lib/libxml2.so.2
禁用意味着??你能详细解释一下吗?
@SavanKoradia 我更新了我之前的评论,你能看一下吗?
您好,但现在它给了我错误:/usr/bin/php:重定位错误:/usr/bin/php:符号 X509_free,版本 OPENSSL_1.0.0 未在文件 libcrypto.so.1.0 中定义.0 与链接时间参考【参考方案2】:
我终于成功了。安装phpcs(或任何你想通过xampp的apache执行的模块)然后安装在xampp的“bin”中。
【讨论】:
以上是关于从 PHP 执行 shell 命令的主要内容,如果未能解决你的问题,请参考以下文章