zoukankan      html  css  js  c++  java
  • PHP应用的CI/CD流程实践与学习:一、PHP运行环境的准备

      前言:一直以来想学习与实践一下敏捷开发,之前项目虽说口口声声我们项目是敏捷开发,其实很扯。

    敏捷开发如果有持续集成、持续部署的支持,那样开发、测试、运维将节省不少精力。

    此系列博客只为记录CI/CD的实践与学习:

    一、PHP运行环境的准备(centos7.4下安装docker环境搭建 PHP7.1 + MySQL5.7环境,openresty1.13.6.1做代理服务器)

    服务器环境:阿里云ECS

    操作系统:centos7.4

    1、 安装docker

    https://help.aliyun.com/document_detail/51853.html?spm=5176.11065259.1996646101.searchclickresult.3461232cUlszWt

    具体可参照阿里云说明文档


    2、安装MySQL环境

    我这里由于单独没有购买MySQL服务,所以就安装了MySQL环境

    2.1 拉取MySQL镜像

    docker pull hub.c.163.com/library/mysql:5.7

    2.2 创建MySQL容器(设置root密码,并映射在宿主机3306端口)
    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql57 hub.c.163.com/library/mysql:5.7

    3、安装PHP环境

    3.1 拉取PHP容器

    docker pull hub.c.163.com/library/php:7.1-fpm

    3.2 创建PHP容器

    创建一个PHP的api的项目容器(并创建需要解释的PHP脚本目录数据卷目录,此项目暴露的端口为8001)
    docker run -d -v /home/www/php/zjjbnb_api:/var/www/html -p 8001:9000 --link mysql57:mysql --name php71 hub.c.163.com/library/php:7.1-fpm

    4、安装web环境

    这里选择了openresty并且直接安装在宿主机上,而没有采用docker容器的形式。

    本系列操作主要还是从实际痛点中出发:

    a. 平时开发PHP应用时,最能影响项目的环境因素主要是PHP版本以及对应的扩展,对MySQL基本不挑,对web环境如NGINX版本更加不挑;

    b. 项目中代码风格与代码结构是否合理

    c. 代码能否持续集成(以前都是开发完了,web项目从前端大致走一遍流程,然后发提测邮件,把最新的开发代码打包一份给测试)

    d. 代码环境是否安全,有漏洞被提权了怎么办、xss、sql注入了怎么办?

    这些是我认为有痛点的地方

    PHP代码跑在docker容器中算比较安全了;openresty能很好的做项目层面的waf(Web应用防护系统),做除了云服务器商提供的服务的第二道保障

    so:安装了openresty

    https://openresty.org/cn/installation.html

    具体安装可以参考openresty官网

    安装完后,这个项目的NGINX大致配置如下(只改了.php相关配置):

            location ~ .php$ {
                root           /var/www/html/public;
                fastcgi_pass   127.0.0.1:8001;
                fastcgi_index  index.php;
                #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }

    将PHP代码交给docker的PHP容器去运行,我这里装了一个laravel应用:

  • 相关阅读:
    2019.4.18 淘宝商品显示块2号铺设练习
    Debuggee not connected 寒江孤钓<<windows 内核安全编程>> 学习笔记
    指定的服务已标记为删除 寒江孤钓<<windows 内核安全编程>> 学习笔记
    删除自定义服务 寒江孤钓<<windows 内核安全编程>> 学习笔记
    发生系统错误 1275.此驱动程序被阻止加载 寒江孤钓<<windows 内核安全编程>> 学习笔记
    无法编译出.sys文件 寒江孤钓<<windows 内核安全编程>> 学习笔记
    iOS11 适配
    curl
    ddd
    201060512 viewcontroller view
  • 原文地址:https://www.cnblogs.com/liugx/p/8734879.html
Copyright © 2011-2022 走看看