2016-09-21 71 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开发包并自己编译扩展*。如果你想要我的意见,这是一个很好的解释。 –