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
相关推荐
爱吃香菜的初学者26 分钟前
十四.Linux——消息队列
linux·运维·开发语言
姜鱼问生7 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*7 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP8 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_8 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时9 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
hz5678910 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC11 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育11 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
IT研究所11 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微