1. 程式人生 > 實用技巧 >基於 Laradock 環境 Project 的總結

基於 Laradock 環境 Project 的總結

基於 Laradock 環境 Project 的總結

本地 Laradock 測試環境的安裝

雲伺服器上 Laradock 生產環境的安裝

1 . 安裝 docker 相關

以下操作在雲伺服器上執行(%)

安裝 docker

% curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安裝 docker-compose

% sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

其中 1.24.1 可以改為目前指定版本的 docker-compose.

設定許可權

% sudo chmod +x /usr/local/bin/docker-compose

2. 安裝雲伺服器的圖形介面和 vscode(可選)

安裝和登入遠端桌面

有時需要圖形介面進行資料夾和程式碼版本管理,相比於命令列更適合人類閱讀,我明白命令列才是程式猿的修煉場,但是我想對自己好一點。
圖形介面以 CentOS 為例。

% chattr +i /etc/resolv.conf  

% yum install -y tigervnc tigervnc-server  

% yum groupinstall GNOME Desktop  

% vncserver  

在 Windows 上下載VNC Viewer,使用該軟體登入雲伺服器,注意預設5901 埠需要在雲伺服器上放通。最後登入即可:

安裝 Vsode 和 Firefox

%  sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

%  sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

% yum check-update

% sudo yum install code

% code 

% yum install firefox

載入 alias 指令碼簡化命令列書寫

下載一份合適的alias.sh指令碼,假定放在~/alias.sh位置。

此處需要補充下載連結

% sudo vim ~/.bashrc

在 vim 內輸入source ~/aliases.shwq!儲存。

2. 安裝 Laradock

下載 Laradock 環境安裝包

建立project資料夾,在 project 專案資料夾上下載最新的 Laradock 環境安裝包

% git clone https://github.com/Laradock/laradock.git

修改配置 Laradock 配置檔案

進入環境安裝包,複製一份.env配置檔案

cp env-example .env

修改 Laradock 配置檔案最關鍵的在於.envdocker-compose.yaml,以及對應容器的配置檔案(如以下 NGINX、MYSQL 等)

NGINX 配置

Laradock 的.env內:

 ### NGINX #################################################
NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443
NGINX_HOST_LOG_PATH=./logs/nginx/
NGINX_SITES_PATH=./nginx/sites/
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000
NGINX_SSL_PATH=./nginx/ssl/

Laradock 的.docker-compose.yml內:

### NGINX Server #########################################
    nginx:
      build:
        context: ./nginx
        args:
          - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
          - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
          - CHANGE_SOURCE=${CHANGE_SOURCE}
          - http_proxy
          - https_proxy
          - no_proxy
      volumes:
        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
        - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
        - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
        - ${NGINX_SSL_PATH}:/etc/nginx/ssl
      ports:
        - "${NGINX_HOST_HTTP_PORT}:80"
        - "${NGINX_HOST_HTTPS_PORT}:443"
      depends_on:
        - php-fpm
      networks:
        - frontend
        - backend

專案目錄中 Laradock 內nginx的配置檔案:

~/project/laradock/nginx/sites/default.conf

server {
    listen 80 ;
    listen [::]:80 ;
    server_name owell.test;
    root /var/www/public;
    index index.php index.html index.htm ;

Windows 主機內的hosts配置檔案 (如果是 Windows 本地安裝 Docker) 的話:

127.0.0.1 owell.test

現根據已配置的檔案下載和安裝 Laradock 的相關映象和容器

進入 laradock 資料夾,安裝下列 Laradock 的基本容器,其中workspacephp-fpm是預設必須安裝的兩個容器,所以可以不寫出來。

% docker-compose up -d mysql nginx phpmyadmin

等待完成後會出現既代表安裝成功。

訪問 laradock.io 瞭解 Laradock 更多擴充套件容器與功能。

安裝 Laravel 專案

進入workspace容器:

% docker-compose exec workspace bash

$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

$ composer create-project laravel/laravel owell --prefer-dist "6.*"

複製env-expmle並修改專案中.env檔案:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:zI3ecX0dcokWxRQ9S5TROasqaTB2ayjojmOv676PBt0=
APP_DEBUG=true
APP_URL=owell.test
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=mysql 
DB_PORT=3306
DB_DATABASE=owell_db
DB_USERNAME=owell
DB_PASSWORD=owell1

測試NGINX是否配置併成功:
本地部署 Laradock :訪問owell.test
雲伺服器部署 Laradock :訪問該雲伺服器外網 IP 地址

測試MYSQL是否配置併成功:

% docker-compose exec workspace bash

cd project/owell/

migrate

如成功則顯示

**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > y

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table
本作品採用《CC 協議》,轉載必須註明作者和本文連結