成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

在 Docker 中運(yùn)行 Laravel 項(xiàng)目

luxixing / 3400人閱讀

摘要:本篇承接使用構(gòu)建環(huán)境,介紹如何在該文所用的容器中運(yùn)行項(xiàng)目。接下來(lái)可以新建一個(gè)項(xiàng)目或是通過(guò)轉(zhuǎn)移項(xiàng)目。從上同步項(xiàng)目一般服務(wù)器中運(yùn)行的項(xiàng)目都是在本地開發(fā)完成后同步上去的。生成文件文件含有項(xiàng)目所需的配置以及用于加密解密的隨機(jī)字符串。

本篇承接 使用 Docker 構(gòu)建 LNMP 環(huán)境,介紹如何在該文所用的容器中運(yùn)行 Laravel 項(xiàng)目。主要步驟為:轉(zhuǎn)移 Laravel 項(xiàng)目到數(shù)據(jù)卷 => 配置數(shù)據(jù)庫(kù) => 配置 Nginx => 配置 Laravel 的 .env 文件。

布置 Laravel 項(xiàng)目

由于我們將 Git、Composer 等工具統(tǒng)一管理于 Console 容器,所以,首先需要進(jìn)入這一容器。當(dāng)然,在這之前,要確保容器已經(jīng)啟動(dòng),在 docker-compose.yml 所在路徑下執(zhí)行:

docker-compose up -d

然后查看容器是否啟動(dòng)以及啟動(dòng)后的名字:

docker ps

之后進(jìn)入 Console 容器,注意替換容器名字:

docker exec -it $console_container_name bash

接下來(lái),可以通過(guò) Composer 新建一個(gè) Laravel 項(xiàng)目,也可以將本地已經(jīng)完成的項(xiàng)目通過(guò) Git 同步到服務(wù)器中。

注意,由于我們?cè)?docker-compose.yml 中對(duì)數(shù)據(jù)卷進(jìn)行了配置,因而項(xiàng)目文件的路徑需要放置于 apps/ 目錄之下,該目錄會(huì)在執(zhí)行 docker-compose up -d 之后生成在 .yml 文件的同級(jí)目錄中。

接下來(lái)可以新建一個(gè) Laravel 項(xiàng)目或是通過(guò) Git 轉(zhuǎn)移項(xiàng)目。

安裝 Laravel

執(zhí)行:

composer create-project laravel/laravel=5.4 $project_name --prefer-dist

可以按照需要更換版本和項(xiàng)目名。

從 Git 上同步項(xiàng)目

一般服務(wù)器中運(yùn)行的項(xiàng)目都是在本地開發(fā)完成后同步上去的??梢酝ㄟ^(guò)在本地添加遠(yuǎn)程 Git 地址后 push 到服務(wù)器中,也可以通過(guò)克隆的方式從代碼倉(cāng)庫(kù)(Github、Coding.net 等)中得到項(xiàng)目。

git clone ${your_project_address}
Install

為了保證 Laravel 項(xiàng)目中 vendor 的版本與本地完全一致,需要在 Laravel 項(xiàng)目下執(zhí)行:

composer install

這一步會(huì)根據(jù) composer.lock 文件中記錄的版本號(hào)進(jìn)行安裝。

生成 .env 文件

.env 文件含有項(xiàng)目所需的配置以及用于加密解密的隨機(jī)字符串。為了安全,一般不會(huì)將該文件與本地同步。但會(huì)保留一個(gè) .env.example 作為副本,此時(shí)我們需要先復(fù)制一份該文件并命名為 .env

cp .env.example .env

然后生成隨機(jī)字符串,該字符串會(huì)自動(dòng)寫入 .env 文件中:

php artisan key:generate
修改權(quán)限

部分 Laravel 文件夾需要更多的權(quán)限,執(zhí)行:

chmod -R 777 storage
chmod -R 777 bootstrap/cache

注意,這些路徑均是相對(duì)于 Laravel 項(xiàng)目而言。

數(shù)據(jù)庫(kù)配置 基本配置

執(zhí)行 exit; 從 Console 容器中退出,然后進(jìn)入數(shù)據(jù)庫(kù)容器,同樣注意容器名字:

docker exec -it $database_container_name bash

根據(jù) docker-compose.yml 中的設(shè)置,通過(guò) root 進(jìn)入數(shù)據(jù)庫(kù)服務(wù):

mysql -uroot -proot

由于多個(gè) Docker 容器間的關(guān)系類似于依賴網(wǎng)絡(luò)進(jìn)行連接的主機(jī),要想通過(guò) PHP 容器中的腳本訪問(wèn) MySQL 容器的數(shù)據(jù)庫(kù)服務(wù),需要具有遠(yuǎn)程連接的數(shù)據(jù)庫(kù)用戶,執(zhí)行以下命令進(jìn)行創(chuàng)建:

GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY "password";

注意以下幾點(diǎn):

*.* 表示對(duì)所有數(shù)據(jù)庫(kù)的所有表都具有權(quán)限;

% 表示不限制連接的主機(jī) IP,為了安全起見(jiàn),這里可以把 % 改為 php。注意,這里的 php 其實(shí)相當(dāng)于一個(gè)域名,Docker 的內(nèi)置 DNS 會(huì)將其解析為 PHP 容器的地址;

修改 username 和 password 為自定義的用戶名和密碼。

遠(yuǎn)程連接

若想要在本地(非 Docker 宿主機(jī))連接到數(shù)據(jù)庫(kù)容器,需要利用端口映射,將數(shù)據(jù)庫(kù) Docker 的 3306 端口映射到主機(jī)的某個(gè)端口(如:12345),然后在本地通過(guò)訪問(wèn)服務(wù)器的 $server_ip:12345 并附帶具有遠(yuǎn)程訪問(wèn)權(quán)限的用戶名和密碼進(jìn)行遠(yuǎn)程連接(注意 % 的問(wèn)題)。

在本文所用的 docker-compose.yml 中已經(jīng)默認(rèn)打開了 3306:3306 的端口映射,大家可以根據(jù)需要進(jìn)行設(shè)置。

創(chuàng)建數(shù)據(jù)庫(kù)

通過(guò)以下方式創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)并設(shè)置字符集:

CREATE DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
執(zhí)行 SQL 文件

我們可以把本地的數(shù)據(jù)庫(kù)導(dǎo)出為 .sql 文件,然后在上傳到數(shù)據(jù)庫(kù)容器中并執(zhí)行,首先在本地將 SQL 文件上傳到宿主服務(wù)器:

scp xxx.sql root@your_server_ip:/

然后在宿主服務(wù)器中將該文件轉(zhuǎn)移到數(shù)據(jù)庫(kù)容器中的共享數(shù)據(jù)卷中,執(zhí)行:

mv /xxx.sql path/to/docker-compose.yml/database

最后進(jìn)入數(shù)據(jù)庫(kù)容器并進(jìn)入 MySQL 數(shù)據(jù)庫(kù)服務(wù),執(zhí)行:

source /path/to/xxx.sql
Nginx 虛擬主機(jī)配置

由于 Laravel 的請(qǐng)求依賴重寫規(guī)則,在 Nginx 服務(wù)器中需要使用虛擬主機(jī),將某一域名映射到 Laravel 項(xiàng)目根目錄以實(shí)現(xiàn)正確的請(qǐng)求重寫(若為 Apache 則不需要)。

執(zhí)行 exit; 退出上一個(gè)容器,然后進(jìn)入 images/nginx/config 中,該路徑相對(duì)于 docker-compose.yml 文件。

由于 Nginx 容器中 nginx.conf 的配置以及數(shù)據(jù)卷的設(shè)置,在該路徑下的所有 *.conf 文件都會(huì)起到作用。下面我們新建一個(gè) myweb.comf 文件,內(nèi)容如下:

server{

    listen         80;
    server_name my.app.dev;
    root         /mnt/apps/laravel/public;
    index         index.php index.html index.htm;

    location / {
        index       index.php index.html;
        try_files     $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass     php:9000;
        fastcgi_index     index.php;
        fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }

}

注意以下兩行需要根據(jù)具體情況進(jìn)行修改,其中 my.app.dev 為域名,laravel/public 部分要修改為 Laravel 的項(xiàng)目名。注意這里是 /mnt/apps/xxx,路徑為 Nginx 服務(wù)器的項(xiàng)目路徑,注意分清共享數(shù)據(jù)卷和配置文件的作用位置。:

server_name my.app.dev;
root         /mnt/apps/laravel/public;
Laravel 中 .env 文件配置

需要根據(jù)之前的配置修改 .env 文件,主要修改如下:

DB_HOST=database
DB_DATABASE=database_name
DB_USERNAME=remote
DB_PASSWORD=remote

DB_HOST=database 中的 database 同樣是指數(shù)據(jù)庫(kù)容器,相當(dāng)于 Docker 內(nèi)部 DNS 的一個(gè)標(biāo)識(shí)(該標(biāo)識(shí)由 docker-compose.yml 進(jìn)行設(shè)置)。

DB_DATABASE=database_name 為該項(xiàng)目所用的數(shù)據(jù)庫(kù)名;

DB_USERNAME=remoteDB_PASSWORD=remote 為之前設(shè)置的可以進(jìn)行遠(yuǎn)程連接的數(shù)據(jù)庫(kù)用戶;


參考

MySQL 下執(zhí)行 sql 腳本 - 博客園

MySQL 創(chuàng)建數(shù)據(jù)庫(kù)指定字符集 - 163 博客

MySQL 開啟遠(yuǎn)程連接

Linux 查看服務(wù)器開放的端口號(hào) - 博客園

上傳文件到遠(yuǎn)程服務(wù)器 - CSDN

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://hztianpu.com/yun/26872.html

相關(guān)文章

  • PHP開發(fā)環(huán)境03 - 使用KFKDock搭建PHP項(xiàng)目環(huán)境

    摘要:基于快速搭建服務(wù)根據(jù)自定義配置文件快速搭建環(huán)境。目錄此項(xiàng)目能做什么地址視頻教程包含軟件項(xiàng)目目錄結(jié)構(gòu)快速運(yùn)行運(yùn)行服務(wù)運(yùn)行項(xiàng)目運(yùn)行前端服務(wù)此項(xiàng)目能做什么搭建開發(fā)生產(chǎn)環(huán)境。搭建開發(fā)生產(chǎn)環(huán)境。 基于Docker快速搭建Web服務(wù) 根據(jù)自定義配置文件快速搭建Web環(huán)境。 目錄 此項(xiàng)目能做什么 GItHub地址、視頻教程 包含軟件 項(xiàng)目目錄結(jié)構(gòu) 快速運(yùn)行KFKDock 運(yùn)行PHP服務(wù) 運(yùn)行L...

    Zhuxy 評(píng)論0 收藏0
  • PHP開發(fā)環(huán)境03 - 使用KFKDock搭建PHP項(xiàng)目環(huán)境

    摘要:基于快速搭建服務(wù)根據(jù)自定義配置文件快速搭建環(huán)境。目錄此項(xiàng)目能做什么地址視頻教程包含軟件項(xiàng)目目錄結(jié)構(gòu)快速運(yùn)行運(yùn)行服務(wù)運(yùn)行項(xiàng)目運(yùn)行前端服務(wù)此項(xiàng)目能做什么搭建開發(fā)生產(chǎn)環(huán)境。搭建開發(fā)生產(chǎn)環(huán)境。 基于Docker快速搭建Web服務(wù) 根據(jù)自定義配置文件快速搭建Web環(huán)境。 目錄 此項(xiàng)目能做什么 GItHub地址、視頻教程 包含軟件 項(xiàng)目目錄結(jié)構(gòu) 快速運(yùn)行KFKDock 運(yùn)行PHP服務(wù) 運(yùn)行L...

    yagami 評(píng)論0 收藏0
  • 使用 Docker 搭建 Laravel 本地環(huán)境

    摘要:本文就介紹如何使用搭建本地環(huán)境。講座介紹是現(xiàn)在火熱的一個(gè)容器技術(shù),作為開發(fā)人員有必要掌握它的使用,無(wú)論你是用來(lái)搭建本地環(huán)境,還是部署應(yīng)用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發(fā)環(huán)境,Homestead 是一個(gè)官方預(yù)封裝的 Vagrant Box,也就是一個(gè)虛擬機(jī),但是跟...

    StonePanda 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<