在Linux系统下安装PHP并且使用其常用扩展是很常见的需求。其中,安装mbstring扩展则是其中的一个常见问题。下面分别介绍安装mbstring扩展的两种方法:
方法一:使用命令行安装扩展
以下示例以Ubuntu 20.04为例进行操作,其他Linux系统类似。
- 使用命令行安装PHP 7.4和mbstring扩展:
sudo apt install php7.4
sudo apt install php7.4-mbstring
注:php7.4-mbstring是mbstring扩展的包名。
- 修改php.ini配置文件,开启mbstring扩展:
sudo nano /etc/php/7.4/cli/php.ini
找到以下两行(一行中可能已经存在extension=mbstring.so):
;extension=mbstring
;extension=exif
将其改为:
extension=mbstring
extension=exif
保存并退出。
- 重启Apache或Nginx服务器:
sudo systemctl restart apache2
或
sudo systemctl restart nginx
方法二:手动编译安装扩展
以下示例以CentOS 7为例进行操作,其他Linux系统类似。
- 下载mbstring扩展源码包并解压:
wget https://www.php.net/distributions/php-7.4.24.tar.gz
tar -zxvf php-7.4.24.tar.gz
- 进入扩展源码包目录:
cd php-7.4.24/ext/mbstring/
- 执行以下命令以编译扩展:
phpize
./configure
make
sudo make install
- 修改php.ini配置文件,开启mbstring扩展:
sudo nano /etc/php.ini
找到以下两行(一行中可能已经存在extension=mbstring.so):
;extension=mbstring
; extension=exif
将其改为:
extension=mbstring.so
extension=exif.so
保存并退出。
- 重启Apache或Nginx服务器:
sudo systemctl restart httpd
或
sudo systemctl restart nginx
经过以上步骤,就可以在Linux系统下安装mbstring扩展了。
示例一:在CentOS 7上手动编译安装mbstring扩展
假设现在我们使用PHP 7.4.24,但是CentOS 7默认仅提供了PHP 5.4.16,因此需要手动编译安装。
- 安装PHP编译所需的依赖:
sudo yum install -y gcc gcc-c++ autoconf automake libtool libxml2-devel bzip2-devel libcurl-devel libpng-devel libjpeg-devel freetype-devel libmcrypt-devel openssl-devel make
- 下载mbstring扩展源码包并解压:
wget https://www.php.net/distributions/php-7.4.24.tar.gz
tar -zxvf php-7.4.24.tar.gz
- 进入扩展源码包目录:
cd php-7.4.24/ext/mbstring/
- 执行以下命令以编译扩展:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install
- 修改php.ini配置文件,开启mbstring扩展:
sudo nano /usr/local/php/etc/php.ini
找到以下两行(一行中可能已经存在extension=mbstring.so):
;extension=mbstring
;extension=exif
将其改为:
extension=mbstring
extension=exif
保存并退出。
- 重启Apache服务器:
sudo systemctl restart httpd
示例二:在Ubuntu 20.04上使用命令行安装mbstring扩展
Ubuntu 20.04已经默认提供了PHP 7.4,所以我们只需要使用命令行安装扩展即可。
- 使用命令行安装mbstring扩展:
sudo apt install php7.4-mbstring
- 修改php.ini配置文件,开启mbstring扩展:
sudo nano /etc/php/7.4/cli/php.ini
找到以下两行(一行中可能已经存在extension=mbstring.so):
;extension=mbstring
;extension=exif
将其改为:
extension=mbstring
extension=exif
保存并退出。
- 重启Apache或Nginx服务器:
sudo systemctl restart apache2
或
sudo systemctl restart nginx