2016-09-21 31 views
8

我試圖安裝Lapack以將它與PHP一起使用(http://php.net/manual/en/book.lapack.php),因爲它是我發現的包含奇異值計算的唯一PHP庫。在PHP上安裝Lapack

我在一臺裝有Apache2的Ubuntu 14.04服務器上。

我按照其他網站上的指示安裝了gfortran和liblapack-dev,但他們都停止描述如何包含它。簡而言之,當調用Lapack的一個靜態函數時,我得到一個錯誤,並說它不是一個定義的類。

我認爲我的下一步是啓用擴展,但儘管出現了以下問題(How to check which PHP extensions have been enabled/disabled in Ubuntu Linux 12.04 LTS?),但我沒有發現Lapack。我應該如何恢復安裝Lapack for PHP?謝謝!

+1

除非您找到爲您的Ubuntu版本創建二進制包的人,否則恐怕您將不得不按照PHP手冊中的指示自行安裝C開發包並編譯擴展。 (我強烈建議你先查找二進制包。) –

+0

你檢查過你是否在正確的php配置文件中? (有時,CGI和CLI不使用相同的php.ini)。你可以檢查phpinfo();在您的控制檯和瀏覽器中都可以正常工作,以確保在兩種環境中都啓用了擴展功能。 – Boulzy

回答

3

從源代碼安裝LAPACK

注:測試在Ubuntu 16.04。

安裝的先決條件:

sudo apt-get install php5-dev git svn cmake gfortran liblapack-dev 

跟隨here(複製爲方便起見)中的說明:

svn co https://icl.cs.utk.edu/svn/lapack-dev/lapack/trunk lapack 
cd lapack 
mkdir build 
cd build 
cmake -D BUILD_SHARED_LIBS=ON -D LAPACKE=ON ../ 
make 
sudo make install 

這將創建LAPACK共享庫。 現在從源克隆PHP擴展:

git clone https://github.com/ianbarber/php-lapack 

並按照the instructions as described there

cd php-lapack 
phpize 
./configure 
make 
sudo make install 

檢查是否安裝了擴展:php -m | grep -i lapack

注意,這次延期是最有可能不符合PHP 7 ,因爲它已經超過5年沒有更新。

+1

這就是我的意思*安裝C開發包並自己編譯擴展*。如果你想要我的意見,這是一個很好的解釋。 –