Published on

docker php的使用

Authors

想装个macCMS玩一玩,又不想弄乱vps的系统环境,选择docker进行php环境部署。

环境

  • nginx
  • docker
  • ubuntu20.04

Nginx配置总有问题,js css 无法加载放弃下面搭建的方案。直接使用nginx+php- fpm环境

docker run --name macCMS -d -p 9000:80 -v /root/web/myphp:/var/www/html richarvey/nginx-php-fpm:2.1.2

放弃下面的方案

安装

macCMS应该是支持php8的,直接拉去镜像

docker pull php:8-fpm-alpine3.17

启动容器,映射端口到9527

docker run --restart=always --name macCMS -p 9527:9000 -v /root/web/myphp:/var/www/html -d php:8-fpm-alpine3.17

/root/web/myphp 这里放入index.php站点文件的根目录

配置nginx

server {
    listen 81;
    server_name 127.0.0.1;
    root /root/web/myphp;

    access_log  /var/log/nginx/php-access.log;
    error_log   /var/log/nginx/php-error.log;

    location / {
        autoindex on;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9527;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}

service nginx restart

php插件安装

docker exec -it macCMS sh  进入容器
docker-php-ext-install pdo_mysql gd 一般使用这个命令安装
redis使用pecl安装
pecl install redis
docker-php-ext-enable redis

zip插件安装

直接docker-php-ext-install zip 出现下面报错

 configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:

Package ‘libzip’, required by ‘virtual:world’, not found
Package ‘libzip’, required by ‘virtual:world’, not found
Package ‘libzip’, required by ‘virtual:world’, not found

alpine 安卓的libzip版本过高 在 Alpine Linux packages 查询低版本的libzip 使用

apk add libzip=1.3.0-r1 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.7/community
apk add libzip-dev=1.3.0-r1 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.7/community
apk add libzip-tools=1.3.0-r1 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.7/community

安装成功 安装插件成功后,记得重启php运行环境,因为是docker运行,直接docker restart macMCS