背景介绍:
两套php的web应用,A 应用需要php7版本,B应用需要php5。其中B需要mbstring功能
1. 安装两个apache-httpd
注意1> 指定两个不同安装目录
./configure --prefix=/usr/local/apache-httpd
./configure --prefix=/usr/local/apache-httpd2
其他参数和步骤参考另一个文章
注意2> 启停的时候,加上配置参数-f
apapachectl start -f /usr/local/apache-httpd/conf/httpd.conf
apapachectl start -f /usr/local/apache-httpd2/conf/httpd.conf
注意3> 指定php的不同版本的php.ini(在安装php后,在配置即可)
在httpd.conf文件最后一行添加PHPIniDir /usr/local/php/lib/PHP.ini
2. PHP 两个版本安装
php5的版本下载:
wget http://cn2.php.net/distributions/php-5.5.38.tar.gz
注意1 > #./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache-httpd/bin/apxs --with-libxml-dir=/usr/local/libxml2(安装目录) --with-mysqli=/usr/local/mysql/bin/mysql_config
网上还有说加 --with-mysql=/usr/local/mysql,可是我的版本没有这个option,所以加上红色部分就可以
我部署的php7的版本,所以得使用--with-mysqli,如果是php5就使用--with-mysql
其他参考另一个文章
注意2> -prefix=/usr/local/php 指定两个路径php 和 php5
注意3>--with-apxs2=/usr/local/apache-httpd/bin/apxs 指定两个apache-httpd目录,标示apache-httpd关联php不通版本
3. 查看php的相关信息,判断apache-httpd关联的php是否正确
在apache-httpd的安装目录下htdocs目录下,新建index.php文件:
<?php
phpinfo();
?>
访问http://ip:port/index.php 显示php的相关信息以及安装的模块和配置信息
4. PHP 安装模块mbstring
1> 进入php源码目录:
#cd /usr/src/php-5.5.38/ext/mbstring
2> 执行phpize,在/usr/src/php-5.5.38/ext/mbstring 生成configure
phpize在php的安装目录下的bin里面
#/usr/local/php/bin/phpize
报错:
进入php源码包目录:cd /usr/src/php-5.5.38/ext/openssl
执行命令: cp ./config0.m4 phpize的目录/config.m4 即可
再次执行#/usr/local/php/bin/phpize:如下类似信息就ok了
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
还有其他错误:
./configure --with-php-config=/usr/local/php5/bin/php-config (php的安装目录)
生成mbstring.so。此文件在/usr/src/php-5.5.38/ext/mbstring/modules/目录下
4> mbstring.so 拷贝到php的扩展库 根据php.ini中指示的extension_dir指向的目录中
修改php.ini中 extension_dir指向(自定义路径):php的安装目录/lib/php/extensions/no***/
将mbstring.so 拷贝到此目录
5> 添加mbstring.so 到php.ini
echo ‘extension=mbstring.so' >>php安装目录/lib/php.ini
6> 重启apache-httpd
#/usr/local/apache2/bin/apachectl restart -f apache的配置文件
7> 通过index.php的phpinfo()查看mbstring 是否安装成功