2016-02-13 114 views
0

我看到很多關於使用PHP運行Linux命令的問題,但我的問題不同。我正在使用共享主機Linux服務器,並且我想使用PHP代碼安裝名爲Poppler-utils的程序包,因爲我無法訪問Linux命令行。首先,我試圖用cat /proc/version找出Distro,這是輸出:使用PHP運行Linux命令

Linux version 2.6.32-604.30.3.lve1.3.63.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)) #1 SMP Sun Sep 27 06:34:10 EDT 2015 

所以我認爲這是Redhat發行基於上面的輸出。所以,我嘗試使用安裝Poppler-Utils套餐:

exec('yum install poppler-utils',$buffer); 
echo implode($buffer); 

正如this文章中提到。

下安裝pdftotext的RedHat/RHEL/Fedora的/ CentOS的Linux的

pdftotext使用poppler的-utils軟件包下各種Linux 分佈安裝:

# yum install poppler-utils

OR使用Debian在以下/ Ubuntu Linux

$ sudo apt-get install poppler-utils

但是什麼也沒有發生。那麼如何在/usr/local/bin/中安裝Poppler-utils

任何幫助表示讚賞!

+0

與您的託管公司聯繫,您可能沒有權限。 – chris85

+0

如果你被拒絕命令行訪問,也許他們也拒絕你'exec'訪問.. – GolezTrol

+0

但我試過exec('whoami');它的工作! –

回答

1

您將不會在共享主機上安裝sudo/root權限來安裝文件。唯一的選擇是聯繫您的託管公司並要求他們將其安裝在服務器上。

您無法在您無權訪問的命令上運行exec例如yumapt-get;)。

+0

即使'安全模式'被禁用? –

+0

除非用戶您的託管帳戶具有管理員權限/在sudo文件中/允許其他方式,那麼您無法訪問這些命令。 – Matt

+0

這完全是關於權限的問題,如果'exec'工作並不重要。 – Matt

1

The're no way without root or sudo access。但是,您可以將二進制文件下載到您的主目錄(例如〜/ local-bin /),並從這裏運行(不要忘記將~/local-bin添加到PATH環境中,export PATH=$PATH":~/local-bin")。但最好的方法 - 創建支持票,也許他們可以爲你安裝一些軟件包。或者只是在小vps/vds上使用Docker - 它簡單而便宜。

+0

是的,我會聯繫主機支持,謝謝! –