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
相关推荐
User_芊芊君子13 分钟前
影音自由新玩法:Plex+cpolar 解锁异地访问,告别网盘限速烦恼
服务器·nginx·测评
wanhengidc36 分钟前
云手机的运行环境如何
运维·服务器·游戏·智能手机·生活
炸膛坦客40 分钟前
Linux - Ubuntu - PC端:(三)切换中英文,Fcitx5
linux·ubuntu
7yewh41 分钟前
jetson_yolo_deployment 01_linux_dev_env
linux·嵌入式硬件·yolo·机器人·嵌入式
cyber_两只龙宝44 分钟前
【Haproxy】Haproxy的算法详解及配置
linux·运维·服务器·云原生·负载均衡·haproxy·调度算法
阿常呓语1 小时前
Linux命令 jq详解
linux·运维·shell·jq
君生我老2 小时前
Linux 权限
linux
hy____1232 小时前
Linux_网络基础3
linux·服务器·网络
我不听你讲话2 小时前
LNMP网络服务搭建
linux·php·apache
Mr. Cao code2 小时前
MySQL服务器配置与socket连接详解
服务器·数据库·mysql