我使用cento-7-mini。首先我通过yum安装一些依赖项,然后编译php-5.5.36:
./configure --prefix=/usr/local/php \
--enable-fpm \
--enable-opcache \
--enable-mysqlnd \
--enable-mbstring \
--enable-sockets \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-gd \
--with-zlib \
--with-curl \
--with-mcrypt \
--with-openssl
然后我将php.ini-production复制到/usr/local/php/etc/php.ini,并且
mv /usr/local/php/etc/php-fpm.default /usr/local/php/etc/php-fpm
然后我配置我的nginx服务器,我可以使用phpinfo()成功测试它。我觉得这没问题。
我想安装一些扩展名,例如memcahe。
pecl install memcache
然后我可以看到:
Build process completed successfully
Installing '/usr/local/php/lib/php/extensions/no-debug-non-zts- 20121212/memcache.so'
install ok: channel://pecl.php.net/memcache-3.0.8
configuration option "php_ini" is not set to php.ini location
You should add "extension=memcache.so" to php.ini
然后我添加
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so
到文件/usr/local/php/etc/php.ini
finnaly,我重启了我的php-fpm和nginx,但是我在phpinfo页面看不到memcache扩展名。
我看过很多文章,但我找不到答案。
答案 0 :(得分:0)
首先,您需要通过apt-get
安装PEAR,以获得PEAR
和PECL
都使用的必要包和分发系统。在shell提示符下输入:
sudo apt-get install php-pear
系统将提示您确认安装。只需按“y”即可进入。如果一切顺利,你应该看到它下载并安装php-pear软件包。
现在您需要安装php5-dev软件包以获取必要的PHP5源文件来编译其他模块。在shell提示符下输入以下内容:
sudo apt-get install php5-dev
如果您没有安装php5-dev软件包并尝试使用“pear install”安装PECL扩展,则会出现以下错误:
sh: phpize: not found
ERROR: `phpize’ failed
PECL_HTTP扩展需要安装其他依赖包。您可以跳过此内容以获取其他扩展名:
sudo apt-get install libcurl3-openssl-dev
现在我们终于准备好实际安装扩展了。在shell提示符下输入以下内容,但将“pecl_http”替换为您正在安装的PECL扩展名:
sudo pecl install pecl_http
安装程序可能会询问您正在安装的扩展程序的某些特定选项。您可以只输入一次或多次以接受所有默认值,除非您要为实现设置特定选项。如果一切顺利,模块应该下载,构建和安装。
安装完成后,可能会要求您在php.ini文件中添加“extension =”行。在您喜欢的文本编辑器中打开php.ini文件,并在标记为“Dynamic Extensions”的部分下添加该行。在Ubuntu上,php.ini文件似乎位于/ etc / php5 / apache2文件夹中:
sudo nano /etc/php5/apache2/php.ini
在此示例中,pecl_http扩展安装要求我添加“extension = http.so”。现在已经更新了php.ini文件,需要重新启动Apache,以便加载新扩展:
sudo /etc/init.d/apache2 restart