php-fpm 安装使用
php-fpm installation in ubuntu
之前安装wordpress的时候, php-fpm都是wordpress的docker镜像自带, 所以压根就没有去考虑过安装php的事情, 甚至还以为caddy自带了php.
这次安装discuz, 才发现需要本地机器安装php-fpm.
同时php-fpm默认监听的是socks, 如果要使用tcp 9000端口监听, 也需要额外配置.
在远程服务, 或者多个docker 容器的情况下, 还是用ip比较方便.
- 安装
sudo apt install php8.1-fpm
- 操作启动
sudo systemctl restart php8.1-fpm
systemctl status php8.1-fpm.service
- 修改配置支持9000端口监听
修改的是www.conf配置.
ubuntu@geetk:/etc/php/8.1/fpm$ pwd
/etc/php/8.1/fpm
ubuntu@geetk:/etc/php/8.1/fpm$ ls
conf.d php-fpm.conf php.ini pool.d
ubuntu@geetk:/etc/php/8.1/fpm$ ls pool.d/
www.conf
默认监听的是sock端口
listen = /run/php/php8.1-fpm.sock
修改为 tcp 端口, 然后重启服务即可.
listen = 127.0.0.1:9000
- 安装额外的插件以便支持php和xml
sudo apt install php-mysql
sudo apt install php-xml
caddy file的联动配置
注意这里的配置只用作开发, 还没有仔细去考虑安全性, 比如禁用敏感php访问执行之类.
discuz.fake.cn {
tls fake@qq.com
root * /data/devops/discuz/q
php_fastcgi 127.0.0.1:9000
file_server
}
比如配置了discuz数据库后, 在以下地址可以发现数据库相关的配置, 如果php被泄漏出去站点就不安全了.
ubuntu@geetk:/data/devops/discuz$ grep "mysql.fake.domain" -R .
./q/config/config_global.php:$_config['db'][1]['dbhost'] = 'mysql.fake.domain:11306';
./q/config/config_ucenter.php:define('UC_DBHOST', 'mysql.fake.domain:11306');
./q/uc_server/data/config.inc.php:define('UC_DBHOST', 'mysql.fake.domain:11306');
完整的参考文档
How to Install or Upgrade PHP 8.1 on Ubuntu 20.04
https://www.cloudbooklet.com/how-to-install-or-upgrade-php-8-1-on-ubuntu-20-04/
sudo apt install php8.1-fpm
安装常用插件
sudo apt install php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-redis php8.1-intl -y
discuz 需要安装的插件
安装discuz后发现还需要安装的php插件
# 支持mysql
sudo apt install php-mysql
# 支持xml
sudo apt install php-xml
# 支持插件
sudo apt install php-curl
# 据说是验证码
sudo apt install php-gd
报错 运行环境提示GD版本过低, 安装gd插件解决: sudo apt install php-gd