【发布时间】:2014-08-30 10:18:12
【问题描述】:
如何在 linux/Mac 系统上通过 PHP 成功运行命令行应用程序。
我正在使用 mac 并尝试运行 optipng。我已经从这里下载了 optipng
http://sourceforge.net/projects/optipng/files/OptiPNG/optipng-0.7.5/optipng-0.7.5.tar.gz/download?use_mirror=softlayer-sng&download=
下载后,我通过命令行通过CD'ing到下载文件夹安装它,并相应地安装它:
cd path/to/optipng
sudo ./configure
sudo make install
我现在可以运行它并像这样压缩图像:
optipng path/to/example/file.png
一切正常,因此它已安装并在我的系统上运行。
我想通过一个 php 页面运行它,所以我试试这个:
<?php
echo "origional size =". filesize(path/to/example/file.png)."\n";
$compress = shell_exec('optipng path/to/example/file.png');
echo "<pre>$compress</pre>";
echo "new size =". filesize(path/to/example/file.png)."\n";
?>
但它什么也没做。我在这里想念什么?如何成功使用 shell_exec() 或 exec()?
【问题讨论】:
-
var_dump($compress);在 shell_exec 之后。里面有什么? -
optipng 需要任何环境变量吗?
-
它只需要文件的路径。
-
很可能,您需要指定可执行文件
shell_exec('/path/to/optipng /path/to/target/file.png')的完整路径 -
即使您运行了
make install,它可能将其放置在类似/usr/local/bin的位置,但PHP 可能没有定义$PATH,因此无法找到它。
标签: php command-line