podman 只搭建 php
昨天折腾半天,把之前系统用的面板去掉,然后手撕博客环境。
因为总感觉用面板多多少少老遇到问题,而且感觉不放心。
这次想着把 php 单独放容器,nginx maraidb 之类的放本机,后续有其他需要容器的也干净。
说说步骤吧 有几个点需要注意
1.首先 安装 podman 后需要定义镜像仓库:
配置文件路径:/etc/containers/registries.conf
填入:unqualified-search-registries = ["docker.io"]
2.拉取 php-fpm 镜像:podman pull php:8.3-fpm
3.启动容器
podman run -d \
--name phpx \
-p 9000:9000 \ #注意这里的端口信息
-v /var/www/php/:/var/www/php \ #前面是本机目录 后者是容器
php:8.3-fpm
4.进入容器,装一些必要扩展:
podman exec -it my-php bash
apt update
apt install libcurl4-openssl-dev zlib1g-dev libpng-dev libzip-dev libxml2 libxml2-dev
#安装 php 扩展
docker-php-ext-install curl mbstring pdo_mysql
5.nginx 设置
server {
...
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # 上面设置中容器暴露的端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
...
}
6.网页输出 No input file specified. #删除或重新配置目录中的 .user.ini
7.数据库的配置我禁用了 root 远程链接,新建了一个远程链接的用户,但是链接不成功,后面又在/etc/maraidb/my.cnf
设置了 bind-address=0.0.0.0
php 配置文件中的链接 ip 可以直接填主机的外网 ip 地址,
当然也可以用内网地址 hostname -I #取第一个 ip
podman 容器的一些操作我不是很深入,有不对的欢迎讨论。
就这样了。
果然技术大佬就是可以为所欲为