适用于 php-fpm debian容器
gd扩展
# 安装依赖
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
# 解压源码
docker-php-source extract
# 进入源码文件夹
cd /usr/src/php/ext/gd
# 准备编译<7.4
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
# 准备编译7.4
docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2/
#编译安装
docker-php-ext-install gd
#检查支持
php -r 'print_r(gd_info());'
mysql扩展
docker-php-ext-install pdo_mysql
docker-php-ext-install mysqli
redis扩展
pecl install redis
docker-php-ext-enable redis
# pecl无法装就:
docker-php-source extract # 创建并初始化 /usr/src/php目录(扩展源码在/usr/src/php/ext)
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/5.1.1.tar.gz
tar xfz /tmp/redis.tar.gz
rm -r /tmp/redis.tar.gz
mv phpredis-5.1.1 /usr/src/php/ext/redis
docker-php-ext-install redis
zip扩展
apt install libzip-dev
docker-php-ext-install zip
bcmath扩展
docker-php-ext-install -j$(nproc) bcmath
# 带上-j$(nproc)参数可以提高编译速度。
opcache扩展
docker-php-ext-install opcache
pcntl扩展
docker-php-ext-install pcntl
mongodb扩展
pecl install mongodb
docker-php-ext-enable mongodb
swoole扩展
pecl install swoole
docker-php-ext-enable swoole
sodium扩展
pecl install libsodium
docker-php-ext-enable sodium
sqlsrv和pdo_sqlsrv扩展
# 安装依赖
apt-get install unixodbc-dev
# 下载源码,网址: https://github.com/microsoft/msphpsql
# 解压后进入source文件夹,执行
./packagize.sh
# 然后将sqlsrv和pdo_sqlsrv文件夹拷贝到/usr/src/php/ext中,然后执行
docker-php-ext-install sqlsrv
docker-php-ext-install pdo_sqlsrv
# sqlsrv和pdo_sqlsrv扩展依赖Microsoft ODBC Driver,所以要装:
# 系统要求:
# https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?redirectedfrom=MSDN&view=sql-server-ver15
# 先查看系统版本: cat /etc/os-release
# 然后找对应的安装方法:
# https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017
composer工具
$ php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ mv composer.phar /usr/local/bin/composer
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 启动composer 常用参数
# composer install
# --ignore-platform-reqs 忽略版本安装
# --no-dev 不安装开发包
git工具
apt install git
ps工具
apt install procps
zip工具
apt install zip unzip
vim工具
apt install vim
crontab工具
apt install cron
sudo工具
apt install sudo
supervisor工具
apt install supervisor
# 启动supervisor:
service supervisor start
# 起不来可以手动加载配置文件
supervisord -c /etc/supervisor/supervisord.conf
查看进程文件的启动位置
pwdx [进程号]
# 或进入进程文件夹查看进程文件内容:
cat /proc/[进程号]
配置php
vim /usr/local/etc/php/php.ini
# PHP版本信息在HTTP头中的泄露
expose_php = Off
# 每个脚本运行的最长时间
max_execution_time = 60
# PHP最大上传文件大小限制
upload_max_filesize = 50M
# POST数据最大大小限制
post_max_size = 100M
# PHP运行时可使用的最大内存
memory_limit = 256M
配置php-fpm
vim /usr/local/etc/php-fpm.d/www.conf
# 配置动态或静态分配进程
pm = dynamic
# 配置最子进程数,4核cpu就配64,以此类推
pm.max_children = 64
# 配置启动时进程数,算法: pm.min_spare_servers + (pm.max_spare_servers - pm.min_spare_servers) / 2
pm.start_servers = 15
# 配置闲置时最小进程数
pm.min_spare_servers = 10
# 配置闲置时最大进程数
pm.max_spare_servers = 20
# 配置请求多少次重启,防假死占内存,一般设500
pm.max_requests = 500
重启php-fpm
kill -USR2 1
别名持久化
# 编辑文件
vim ~/.bashrc
# 添加别名
alias php='docker exec -it my-php bash'
# 使别名生效
source ~/.bashrc