用容器部署PHP开发环境

由 夏日冰菓 发布

用容器秒部署PHP开发环境

phplogo-1617378886

这次使用容器来秒部署php开发环境,折腾了半天,算是来填坑,php容器可以搭配nginx或者mysql来使用,目前本机已经部署了nginx服务,配合php容器实现最基本的web开发环境。采用Docker,部署非常方便。

开始部署PHP容器

PHP后面的标签可以自己定义,如版本号这些

docker pull php:7.4-fpm

运行容器

docker run \
-p 9000:9000 \
-d --name php \
-v /opt/www:/www \
--privileged=true \
php:7.4-fpm

-v /opt/www:/www :网页目录映射到容器内的www目录,这个目录在配置nginx文件的时候需要用到,后面会说。

-p 9000 :这个是php的端口,可以修改,这个端口在后期配置nginx文件中也需要用到,保证不冲突即可

配置nginx文件

由于本机已经安装了nginx服务,可以在配置文件内直接修改,以支持PHP文件

修改配置主要是添加了两条内容,第一条是添加 index.php 文件格式,第二是添加php支持,特别注意的是端口和docker映射的端口一致,以及fastcgi_param后面的目录也是映射在容器内的目录,并非物理机的目录,这里经常搞错。blog文件夹是这个网站的文件夹,根据个人的网站目录来写,不能照抄

image-20211102163827758

全部代码

server {
    listen 80;
    listen 443 ssl;
    server_name  blog.lincloud.pro;
    root   /opt/www/blog;  #网页目录名
    index  index.html index.htm index.php;
    
    ssl_certificate "/etc/nginx/ssl/fullchain.pem";
    ssl_certificate_key "/etc/nginx/ssl/privkey.pem";
    ssl_protocols TLSv1.1 TLSv1.2;

    ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
    
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
     location ~ .*\.php(\/.*)*$ {    # 添加php支持
        fastcgi_pass   127.0.0.1:9000;    # PHP程序端口,该端口和Docker映射的端口一致
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/blog/$fastcgi_script_name;    # /www/blog 这个目录是映射在 Docker 容器内的对于的网页目录名
        include        fastcgi_params;
     }
    
}

测试

在网页目录新建一个 index.php 文件用于测试。

<html>
 <head>
  <title>PHP 测试</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 </body>
</html>

最后重启nginx服务,访问web测试

image-20211102163106129

显示如上内容测试通过。

PHP容器内部如何添加MYSQL拓展?

在容器内运行一下命令

docker-php-ext-install pdo pdo_mysql

最后重启PHP容器即可

其他拓展:

安装Typecho博客需要用1.0版本来安装,然后下载正式版来替换文件完成升级

下载1.0版本的页面:https://github.com/typecho/typecho/releases

*直接下载地址:https://github.com/typecho/typecho/releases/download/v1.0-14.10.10-release/1.0.14.10.10.-release.tar.gz*

正式版本下载地址:https://typecho.org/download

如果在登录后台之后显示404,那么需要修改nginx配置文件中的PHP拓展支持。如上代码是正确的。


暂无评论

发表评论