Linux 系统 docker快速搭建PHP环境

PHP安装

#############################################################################

1、直接拉取官方镜像

查找Docker Hub上的php镜像

复制代码
docker search php

直接拉取官方镜像

复制代码
docker run --name myphp  --restart=always --network lnmp -d php:7.1-fpm 

2、创建php容器

复制代码
mkdir /opt/php

#拷贝配置文件(这个地方容易出错,可以直接把实施工程文件里现成的配置文件直接拷贝过去,不用执行下面的语句了)

复制代码
docker cp 0850901bc597:/etc/php/7.1/fpm/php.ini /opt/php/php.ini
#停止、删除容器
docker stop php
docker rm b2009f54cf34
#正式部署
docker run -p 9000:9000 --name php -v //opt/nginx/html:/var/www/html -v //opt/php/php.ini:/etc/php/7.4/fpm/php.ini -d  --restart=always php:7.1-fpm 

第一个-v 网址Nginx网站目录映射到PHP目录

第二个-v 映射配置文件php容器和宿主机共享目录

3、修改nginx配置(此处配置文件在本机,/opt/nginx/conf目录下)

复制代码
user  root;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;

    server {
    listen       80;
    server_name  localhost;

    location / {
        #这是nginx容器中的默认配置路径,已经映射到虚拟机/www下了 不需要改动
        root   /usr/share/nginx/html/;
        #这里添加index.php入口文件
        index index.php index.html index.htm;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    #配置php
    location ~ \.php$ {
        #这里要换成php容器的ip!
        fastcgi_pass   192.168.0.118:9000; 
        fastcgi_index  index.php;
        #这一段一定要注意!把php容器中默认的/var/www/html写进去,替换掉之前的$document
        fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
}

##############################轮询负载均衡##################################

复制代码
 # upstream order {
   #ip_hash;
   #server 192.168.0.118:8011 weight=1;  #weight权重
   #server 192.168.0.118:8088 weight=1;
   #}

 
   # server{
   # listen 80;
   # server_name 192.168.0.118;
   # location / {
   #    index  index.html  index.htm;
   #     proxy_pass http://order/;
# }
# }

####################################标准配置################################

复制代码
#   server {
#      listen   80;
#     server_name  somename  alias  another.alias;
# 
#       location / {
#            root   /usr/share/nginx/html/;
#            index  index.html index.htm;
#       }
#    }
    
}

#保存退出,然后重启nginx

复制代码
docker restart nginx

#去Nginx目录下/opt/nginx/html目录中新建index.php(此目录是共享目录,已经挂载给Nginx和PHP,所以项目可以直接放在这个目录下即可)

#写入php代码,然后本地访问虚拟机ip即可看到配置成功

php扩展安装

首先进入容器

docker ps

docker exec -it 容器ID或名称 /bin/bash

cd /usr/src 里边会有两个压缩文件

安装链接MySQL数据库的驱动

复制代码
docker-php-ext-install pdo pdo_mysql

docker-php-ext-install mysqli
相关推荐
chlk12318 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑18 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件19 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒19 小时前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行2 天前
Linux和window共享文件夹
linux
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux