日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

快速部署PHP Web环境(docker nginx php mysql redis)

發布時間:2024/3/13 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速部署PHP Web环境(docker nginx php mysql redis) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注:此項目已升級成 通用 docker 項目自動化部署腳本工具

先看最終效果,如下:

使用方式

debian/ubuntu/deepin:

sudo wget -O /tmp/src.tar.gz https://gitee.com/gogls/php-web-environment/raw/master/src.tar.gz&&tar -C /tmp -zxvf /tmp/src.tar.gz&&cd /tmp/src/&&sudo bash /tmp/src/start.sh

它是什么?

它是 docker 容器虛擬化技術。總共只有幾KB大小的描述文件,文件里定義了要安裝什么、配置什么,一執行就全自動處理好了。

它有什么用?

  • 解決新來同事搭環境搭半天的問題
  • 解決重裝系統后要搭環境浪費時間的問題
  • 環境一致,快速部署
  • 進入詳情講解(此腳本針對debian系操作系統,如deepin、ubuntu)

    如圖,四個文件:

  • 準備文件 Dockerfile-php7.4,內容如下。這是基于 docker 官方的 7.4版本的PHP ,并且定義了要安裝 MySQL 擴展、GD 擴展、Redis 擴展,如果有需要,你可以自行增減。
  • FROM php:7.4-fpm# 系統更新 RUN apt-get update \ # 安裝sql擴展 && docker-php-ext-install pdo_mysql \ # 安裝圖形處理擴展 && apt install libjpeg62-turbo-dev libfreetype6-dev -y \ && docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg \ && docker-php-ext-install gd \ # 安裝redis擴展 && pecl install -o -f redis \ # 刪除臨時文件 && rm -rf /tmp/pear \ # 啟用redis擴展 && docker-php-ext-enable redis
  • 準備文件 docker-compose.yml,內容如下。這是一個工程描述文件,里面描述了要安裝什么、配置什么。
  • version: '3' services:php:build:context: ./dockerfile: Dockerfile-php7.4 #從這個文件名里構建phpports:- "9100:9000"container_name: common_1.0_php #容器名volumes:- "/opt/wwwroot/www:/www" #把宿主機的 /opt/wwwroot/www 目錄掛載到容器內的 /www 目錄restart: always #自動啟動nginx:image: nginx:1.23 #基于官方的鏡像nginx:1.23ports:- "80:80"container_name: common_1.0_nginxrestart: alwaysvolumes:- "/opt/wwwroot/www:/www"- "/opt/wwwroot/nginx/conf.d:/etc/nginx/conf.d"- "/opt/wwwroot/nginx/logs:/etc/nginx/logs"redis:image: redis:7.0ports:- "6179:6379"container_name: common_1.0_redisrestart: alwaysmysql:image: mysql:8.0ports:- "3106:3306"container_name: common_1.0_mysqlrestart: alwaysvolumes:- "/opt/wwwroot/mysql:/var/lib/mysql"environment:MYSQL_ROOT_PASSWORD: 123qwe.
  • 準備文件 start.sh ,這是一個自動化處理腳本,內容如下:
  • #!/bin/bash echo "請問,您想要做什么?這里是php通用開發環境。輸入 exit 退出。" echo " 安裝docker:install docker" echo " 卸載docker:remove docker" echo " 安裝docker-compose:install compose" echo " 卸載docker-compose:remove compose" echo " 生成PHP環境:build php env" echo " 查看容器列表:docker ps" echo " 查看鏡像列表:docker images"echo ""function go(){if [ "$install_type" ]thenif [ "$install_type" == "install docker" ]thensudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunelif [ "$install_type" == "remove docker" ]thensudo apt-get purge docker-cesudo rm -rf /var/lib/dockerelif [ "$install_type" == "install compose" ]thensudo curl -L "https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose versionelif [ "$install_type" == "remove compose" ]thensudo /usr/local/bin/docker-composeelif [ "$install_type" == "build php env" ]thensudo docker-compose up -delif [ "$install_type" == "docker ps" ]thensudo docker pselif [ "$install_type" == "docker images" ]thensudo docker imageselseecho "請輸入正確的值"fielseecho "請輸入一個值"fi }# 死循環,這樣可以多次處理 while [ true ] doread -p "請輸入一個值:" install_typeif [ "$install_type" ] && [ "$install_type" == "exit" ]thenbreakfigo $install_type done

    搭建 PHP Web 環境

  • 進入當前目錄,執行 ./start.sh,就會看到文章開頭的圖片效果。此教程,需要先安裝docker 和
    docker-compose,可自行安裝,也可在這里安裝,輸入對應命令即可。

  • 輸入:build php env ,可能會提示輸入密碼,這是當前 linux 系統管理員的密碼。

    就這么簡單,搞定了。看到如上幾個 started 表示 PHP Web 環境構建成功并啟動了,mysql啟動了,php啟動了,redis啟動了,nginx啟動了。連接的時候,用宿主機IP也行、用容器名也行。

  • 輸入:docker ps 查看這四個容器是否啟動了,名稱都是 common_1.0_xx

  • 新增一個網站

  • 設置 host 域名,或去域名商解析一個域名。請自行完成。我這里配置了一個 sdt.com

  • 配置 nginx ,在 /opt/wwwroot/nginx/conf.d 目錄里,新建一個 sdt.com.conf 文件,內容如下:

  • # 服務端配置節點 server {# 監聽端口。此端口不能被占用了listen 80;# 此站點的域名。直接在宿主機配置一個host域名,或者在阿里云等云服務商那里解析過來。server_name sdt.com;# 此站點的入口目錄,也就是php容器的目錄。宿主機掛載到容器內的目錄。root /www/shangdiantuanfenxiao/public;# 入口目錄里可識別的入口文件index index.html index.htm index.php;# 配置url。Thinkphp的偽靜態設置。這個是fastadmin,用的是thinkphp5.0location / {#訪問路徑的文件不存在則重寫URL轉交給ThinkPHP處理if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=/$1 last;break;}}# 配置url,處理及轉發PHP請求location ~ \.php(/|$) {# 可以直接寫容器名,也可以直接寫宿主機的IPfastcgi_pass common_1.0_php: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;}# 目錄會自動生成。access_log /etc/nginx/logs/sdt.com.log;# 錯誤日志error_log /etc/nginx/logs/sdt.com.error.log; }

    注意,新增一個網站,就在 /opt/wwwroot/nginx/conf.d 里增加一個配置文件即可,nginx 會自動去這個目錄里讀取所有配置文件。

  • 打開網站看看
  • 附上下載地址:https://gitee.com/gogls/php-web-environment.git

    總結

    以上是生活随笔為你收集整理的快速部署PHP Web环境(docker nginx php mysql redis)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。