PHP應用的CI/CD流程實踐與學習:1、PHP運行環境的準備

  前言:一直以來想學習與實踐一下敏捷開發,以前項目雖然說口口聲聲咱們項目是敏捷開發,其實很扯。php

敏捷開發若是有持續集成、持續部署的支持,那樣開發、測試、運維將節省很多精力。html

此係列博客只爲記錄CI/CD的實踐與學習:前端

1、PHP運行環境的準備(centos7.4下安裝docker環境搭建 PHP7.1 + MySQL5.7環境,openresty1.13.6.1作代理服務器)mysql

服務器環境:阿里雲ECSlaravel

操做系統:centos7.4web

一、 安裝docker

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

具體可參照阿里雲說明文檔docker


二、安裝MySQL環境

我這裏因爲單獨沒有購買MySQL服務,因此就安裝了MySQL環境centos

2.1 拉取MySQL鏡像api

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

 

三、安裝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

 

四、安裝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應用:

相關文章
相關標籤/搜索