使用 pecl 安装 Php 扩展
环境: 当前执行环境为 7.4, 同时也适用于 8
安装 pecl
pecl 是属于 php 扩展库的一个工具, pecl 可以安装 https://pecl.php.net/ 文章中提到使用 remi 的仓库来安装 php 那同样安装 pecl 也使用 remi 的仓库来安装
shell
$ yum install php-pear --enablerepo=remi-php74
安装 redis
安装 redis , 需要额外的支持, 如果你需要安装的话
- igbinary serializer : ig 序列化工具
- lzf compress : lzf 压缩算法
- zstd compress : facebook 出品的一款快捷压缩算法
需要运行命令
$ pecl install igbinary
$ pecl install lzf
$ pecl install zstd
这样在运行安装的时候可以开启这些支持
$ pecl install redis
...
enable igbinary serializer support? [no] : yes
enable lzf compression support? [no] : yes
enable zstd compression support? [no] : yes
否则会出现需要 igbinary 的扩展
checking for json includes... /usr/local/Cellar/php@7.2/7.2.29/include/php
checking for redis json support... enabled
checking for igbinary includes... configure: error: Cannot find igbinary.h
ERROR: `/private/tmp/pear/temp/redis/configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config --enable-redis-igbinary=y --enable-redis-lzf=y --enable-redis-zstd=y' failed
安装 mcrypt
mac 上 mcrypt 依托于 libmcrypt, 所以在 mac 上需要提前安装
$ brew install mcrypt
在安装的时候需要设置 mcrypt 的路径
html
$ pecl install mcrypt
...
libmcrypt prefix? [autodetect] : /opt/homebrew/Cellar/mcrypt/2.6.8
...
如果是 intel 的mac 路径应当填写 /usr/local/Cellar/mcrypt/2.6.8
这个路径
安装 Swoole
安装默认版本
$ pecl install swoole
安装其他版本, 所有的版本清单可以在 PECL :: Package :: swoole (php.net) 查找到
html
$ pecl install swoole
安装完毕之后的提示
html
Installing '/usr/local/Cellar/php@7.4/7.4.33_1/include/php/ext/swoole/php_swoole.h'
Installing '/usr/local/Cellar/php@7.4/7.4.33_1/include/php/ext/swoole/config.h'
Installing '/usr/local/Cellar/php@7.4/7.4.33_1/pecl/20190902/swoole.so'
install ok: channel://pecl.php.net/swoole-4.8.12
Extension swoole enabled in php.ini
相关支持
在安装的时候会询问是否安装相关支持
html
enable sockets supports? [no] :
enable openssl support? [no] :
enable http2 support? [no] :
enable mysqlnd support? [no] :
enable json support? [no] :
enable curl support? [no] :
enable cares support? [no] :
报错信息
openssl/ssl.h 缺失
在安装 swoole 的时候会遇到错误信息如下:
html
....
In file included from /private/tmp/pear/temp/swoole/php_swoole.h:53:
/private/tmp/pear/temp/swoole/include/swoole.h:620:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
^~~~~~~~~~~~~~~
1 error generated.
make: *** [php_swoole_cxx.lo] Error 1
ERROR: `make' failed
没有加 openssl 库的路径或者指定 openssl 库的路径不对,缺少头文件。没有 openssl 的话使用 brew 安装一个 openssl,在 pecl 安装的时候加上对应路径即可
html
enable openssl support? [no] : yes --with-openssl-dir=/usr/local/opt/openssl@1.1
性能优化
开启脚本缓存(opcode)
安装 opcache
安装应用缓存/内容缓存
安装 redis 缓存数据库
使用 imagemagick 替代 gd
用以提升性能
Swap 推荐值
物理内存 | Swap |
512M | 1024M |
1GB | 1500M |
2GB | 2048M |
4GB | 4096M |
6GB+ | 4096M |
PHP 并发建议
CPU/内存 | 单站点 | 多站点 |
1H/512M | 20-30 | 10-20 |
1H/1G | 30-50 | 20-30 |
2H/2G | 50-80 | 30-50 |
2H/4G | 60-100 | 30-50 |
4H/4G | 100-150 | 30-80 |
4H/8G | 100-200 | 30-80 |
6H/6G | 100-200 | 30-80 |
8H/8G | 100-300 | 50-100 |
8H/16G | 100-300 | 100-150 |
16H/16G | 100-300 | 100-150 |
MySQL 数据库版本建议
CPU/内存 | 数据库 |
4H/4G+ | MySQL5.5/5.6/5.7 |
说明
创建时间: 2023-01-15 00:31:00 , 最后编辑于 2023-12-29 14:30:00