iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >使用Docker Dockerfile构建php LNMP集成开发环境,并运行Thinkphp5
  • 471
分享到

使用Docker Dockerfile构建php LNMP集成开发环境,并运行Thinkphp5

docker容器运维 2023-08-31 14:08:13 471人浏览 薄情痞子
摘要

宿主机环境 系统:Mac、windows10 Docker版本:Docker version 23.0.5 Docker Desktop:Dockerdesktop官方地址 前言 这篇主要介绍如何在Mac、Windows10使用docke

宿主机环境

系统:Macwindows10

Docker版本:Docker version 23.0.5

Docker Desktop:Dockerdesktop官方地址

前言

这篇主要介绍如何在Mac、Windows10使用docker搭建LNMP集成开发环境。下面我会写Dockerfile编译安装Nginx+PHP基础环境。MysqlRedis基于官方Docker hub,分别构建我们自己的镜像。

目录结构

  1.  code目录存放工程代码,会映射到docker容器WEB目录
  2. docker-data目录存放容器数据
  3. fileinfo是php的扩展
  4. fricc2是php源码加密扩展

构建PHP+Nginx镜像

Dockerfile文件

# 从官方基础版本构建FROM centos:7MAINTAINER ityunENV TIME_ZONE Asia/Shanghai#基础依赖RUN yum install -y install epel-release && \    yum -y install gcc gcc-c++  autoconf wget libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg-turbo libjpeg-turbo-devel libpng-devel libpng freetype-devel freetype icu libicu-devel libicu libmcrypt libmcrypt-devel libxslt libxslt-devel php-mysql oniguruma oniguruma-devel libtidy-devel openldap openldap-devel sqlite-devel zlib-static zlib-devel && \    yum clean all && \    groupadd www && \    useradd -g www www  RUN cat .pwd.txt | chpasswd#拷贝源码包到环境中ADD php-8.0.10.tar.gz /usr/local/src/ADD redis-5.3.4.tgz /usr/local/src/ADD nginx-1.21.1.tar.gz /usr/local/src/ADD libzip-1.2.0.tar.gz /usr/local/src/COPY fricc2 /usr/local/src/php-fricc2/COPY nginx.conf /usr/local/src/nginx.confCOPY cas.ityun.com_80.conf /usr/local/src/cas.ityun.com_80.confCOPY php.ini /usr/local/src/php.iniCOPY fileinfo /usr/local/src/fileinfo/#编译安装nginx及phpRUN cd /usr/local/src/nginx-1.21.1 && \    ./configure --prefix=/usr/local/nginx --user=www --group=www --with-stream --with-http_ssl_module --with-http_stub_status_module && \    make -j 4 && \    make install && \    mkdir -p /web && \    cd /usr/local/nginx/conf/ && \    mkdir vhosts && \    cp /usr/local/src/cas.ityun.com_80.conf /usr/local/nginx/conf/vhosts/ &&\    cp /usr/local/src/nginx.conf /usr/local/nginx/conf/ &&\    cp -frp /usr/lib64/libldap* /usr/lib/ &&\    #安装libzip依赖,方便gd开启    cd /usr/local/src/libzip-1.2.0 && \    ./configure && make && make install && \    export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" &&\    #安装php    cd /usr/local/src/php-8.0.10 && \    ./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8/etc \    --with-config-file-scan-dir=/usr/local/php8/conf.d \    --enable-fpm --with-fpm-user=www \    --with-fpm-group=www --enable-static --enable-sockets \    --enable-mysqlnd --enable-opcache --enable-pcntl --enable-gd \    --enable-mbstring --enable-soap  --enable-calendar \    --enable-bcmath --enable-exif --enable-ftp --enable-intl --with-mysqli --with-pdo-mysql  --without-sqlite3 \    --with-openssl --with-curl --with-gettext  --with-zip --with-zlib \    --with-mhash  --with-tidy  \    --disable-fileinfo \    --with-freetype \    --with-jpeg && \    make && \    make install && \    ln -s /usr/local/php8/bin/php /usr/bin/php && \    #配置相关    cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf && \    cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf && \    sed -i "90a \daemonize = no" /usr/local/php8/etc/php-fpm.conf && \    cp /usr/local/src/php-8.0.10/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && \    chmod +x /etc/init.d/php-fpm && \    echo "${TIME_ZONE}" > /etc/timezone && \ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime && \    #安装redis扩展    cd /usr/local/src/redis-5.3.4 && \    /usr/local/php8/bin/phpize &&\    ./configure --with-php-config=/usr/local/php8/bin/php-config &&\    make -j 4 && make install &&\    #安装ldap扩展    cd /usr/local/src/php-8.0.10/ext/ldap/ &&\    /usr/local/php8/bin/phpize && ./configure --with-php-config=/usr/local/php8/bin/php-config  --with-ldap &&\    make && make install &&\    #安装fileinfo扩展#    cd /usr/local/src/php-8.0.10/ext/fileinfo/ &&\    /usr/local/php8/bin/phpize && ./configure --with-php-config=/usr/local/php8/bin/php-config &&\    cp -rf /usr/local/src/fileinfo/Makefile /usr/local/src/php-8.0.10/ext/fileinfo/ &&\    make && make install &&\    #安装fricc2扩展    cd /usr/local/src/php-fricc2/fricc2load/ &&\    /usr/local/php8/bin/phpize && ./configure --with-php-config=/usr/local/php8/bin/php-config &&\    make && make install &&\    cd /usr/local/src/php-fricc2/fricc2/ && make &&\    cp fricc2 /usr/bin &&\    cp /usr/local/src/php.ini /usr/local/php8/etc/php.ini &&\    rm -rf /usr/local/src/*WORKDIR /usr/local/nginxEXPOSE 9000EXPOSE 80EXPOSE 443CMD /etc/init.d/php-fpm start && /usr/local/nginx/sbin/nginx -g "daemon off;"

nginx配置文件

user  www;worker_processes  4;events {    worker_connections  1024;}Http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    #keepalive_timeout  0;    keepalive_timeout  200;    fastcgi_connect_timeout 300;    fastcgi_send_timeout 300;    fastcgi_read_timeout 300;    gzip  on;    gzip_min_length  1k;    gzip_buffers     4 16k;    gzip_http_version 1.1;    gzip_comp_level 9;    gzip_types       text/plain application/x-javascript text/CSS application/xml text/javascript application/x-httpd-php application/javascript application/JSON;    gzip_disable "MSIE [1-6]\.";    gzip_vary on;    include vhosts/*.conf;}

cas.ityun.com_80.conf配置文件

server {    listen       80;    server_name cas.ityun.com;    client_max_body_size 2048M;    root   "/web/cas.ityun.com/public/";    location / {        index  index.php index.html;        #主要是这一段一定要确保存在        if (!-e $request_filename) {            rewrite  ^(.*)$  /index.php?s=/$1  last;            break;        }    }    location ~ \.php(.*)$ {        fastcgi_pass   127.0.0.1:9000;        fastcgi_index  index.php;        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        fastcgi_param  PATH_INFO  $fastcgi_path_info;        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;        include        fastcgi_params;    }    add_header X-Content-Type-Options nosniff;    add_header X-XSS-Protection "1; mode=block";    add_header X-Frame-Options SAMEORIGIN;    error_page 403 =404 /404.html;}

开始构建

进入Dockefile所在目录,执行以下命令。PS:构建过程比较慢,大概需要20分钟左右。

docker build -t ityun/Centos7-php8 .

拉取mysql、Redis镜像

docker pull redisdocker pull mysql:5.7

执行完成后执行docker images命令,可以看到本地镜像列表。

 运行镜像

# 启动Docker容器## 启动redis容器docker run -it -d -p 8379:6379 --name redis  redis:latest## 启动mysql容器 docker run -it -d -p 8306:3306 -e MYSQL_ROOT_PASSWord=root --name mysqldb  -v ~/Documents/mysql57:/var/lib/mysql mysql:5.7## 通过上面步骤下面这个对应的link名称自己改一下docker run -it -p 8472:80 -p 8473:443 --name ityun --link mysqldb:mysqldb --link redis:redis --link -d -v ~/Documents/code:/web ityun/centos7-php8### ps:以下是windows系统的启动 可忽略docker run -it -d -p 8379:6379 --name redis  redis:latestdocker run -it -d -p 8306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysqldb  -v E://project/docker/docker-data/mysql57:/var/lib/mysql mysql:5.7docker run -it -p 8472:80 -p 8473:443 --name ityun --link mysqldb:mysqldb --link redis:redis -d -v E://project/docker/code:/web ityun/centos7-php8

运行完成后 通过docker ps可以查看正在运行的docker容器。

 运行thinkphp5

在code目录创建一个文件夹cas.ityun.com,目录中放置thinkphp5框架代码

在浏览器访问一下http://cas.ityun.com:8472内容显示正常即可:

 构建时需要的源文件:PS:期待给点个星。。。lnmp: 使用Dockerfile部署LNMP集成环境。centos+php+nginx+mysql+redis.

来源地址:https://blog.csdn.net/qq_36592808/article/details/130782247

--结束END--

本文标题: 使用Docker Dockerfile构建php LNMP集成开发环境,并运行Thinkphp5

本文链接: https://www.lsjlt.com/news/385974.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Docker Dockerfile构建php LNMP集成开发环境,并运行Thinkphp5
    宿主机环境 系统:MAC、Windows10 Docker版本:Docker version 23.0.5 Docker Desktop:Dockerdesktop官方地址 前言 这篇主要介绍如何在Mac、Windows10使用docke...
    99+
    2023-08-31
    docker 容器 运维
  • 如何使用Docker构建开发环境
    这篇文章主要介绍“如何使用Docker构建开发环境”,在日常操作中,相信很多人在如何使用Docker构建开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Docker构建开发环境”的疑惑有所帮助!...
    99+
    2023-06-21
  • 如何利用Eclipse构建Spark集成开发环境
    如何利用Eclipse构建Spark集成开发环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用Maven编译生成可直接运行在Hadoop ...
    99+
    2024-04-02
  • 使用Docker Compose轻松搭建PHP开发环境
    随着时代的发展,开发环境搭建越来越迅速高效。而Docker Compose作为一种容器编排工具,可以让我们轻松地配置和管理多个Docker容器,从而快速搭建PHP开发环境。本文将介绍如何使用Docker Compose搭建PHP开发环境,并...
    99+
    2023-10-21
    Docker PHP compose
  • CentOS7环境下使用Docker搭建PHP运行环境的过程详解
    相关文章: CentOS7下使用yum安装Docker Win10环境下使用Docker搭建PHP运行环境 1、创建私有网络 docker network create lnmp...
    99+
    2024-04-02
  • 使用远程Docker进行集成测试的环境搭建过程
    需求背景 团队有集成测试的需求,集成测试需要依赖一些中间件,比如mysql,rabbitmq。每个研发人员有对自己开发的那部分代码进行测试编写和运行检测的需求。 为了不互相影响,可以...
    99+
    2024-04-02
  • 如何搭建使用远程Docker进行集成测试的环境
    这篇文章将为大家详细讲解有关如何搭建使用远程Docker进行集成测试的环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求背景团队有集成测试的需求,集成测试需要依赖一些中间件,比如mysql,rabbi...
    99+
    2023-06-20
  • 使用Docker构建开发环境的方法步骤( Windows和mac)
    目录1. 使用 Docker 的好处2. 安装 Docker1) Linux 安装 Docker2) Windows 103) macOS3. Docker 换源1) Linux 换...
    99+
    2024-04-02
  • 如何使用Docker快速搭建多版本PHP开发环境
    本篇内容主要讲解“如何使用Docker快速搭建多版本PHP开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker快速搭建多版本PHP开发环境”吧!目标支持 PHP 5.6.x...
    99+
    2023-07-04
  • 实例介绍:使用Docker快速搭建多版本PHP开发环境
    本篇文章给大家带来了关于PHP的相关知识,其中主要介绍了关于怎么使用docker快速搭建多版本PHP开发环境的相关内容,下面一起来看一下希望对大家有帮助。文章中使用的软件:Mac:11.4(macOS Big Sur) ,处理器为:Inte...
    99+
    2023-05-14
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作