成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

使用docker搭建laravel開(kāi)發(fā)環(huán)境

fish / 2021人閱讀

摘要:已經(jīng)集成需要使用的環(huán)境,只需要簡(jiǎn)單修改配置就能搭建環(huán)境提供開(kāi)發(fā),對(duì)開(kāi)發(fā)及管理來(lái)說(shuō)真是一味良方。目前能正常訪問(wèn)文件。

為何用docker?

在電腦還是window系統(tǒng)的時(shí)候,經(jīng)常需要基于vm服務(wù)搭建一套環(huán)境才能更好地(應(yīng)該是更貼近線上環(huán)境)進(jìn)行開(kāi)發(fā),而現(xiàn)在在docker的神秘光環(huán)底下已經(jīng)能實(shí)現(xiàn)用最小的資源搭建本地開(kāi)發(fā)環(huán)境,同時(shí)能更好地遷移到其他地方。

前置知識(shí)

了解docker安裝及使用

了解docker-compose命令行的使用

了解laravel安裝及使用

本文主要使用laradock進(jìn)行本地的docker配置。laradock已經(jīng)集成laravel需要使用的環(huán)境,只需要簡(jiǎn)單修改配置就能搭建環(huán)境提供開(kāi)發(fā),對(duì)開(kāi)發(fā)及管理來(lái)說(shuō)真是一味良方。

簡(jiǎn)單說(shuō)明一下,在docker環(huán)境下我們需要運(yùn)行laravel項(xiàng)目,實(shí)際會(huì)建立下幾個(gè)容器(container):

workspace (開(kāi)發(fā)環(huán)境)

php-fpm (php支持)

nginx (web服務(wù))

mysql (數(shù)據(jù)庫(kù))

這些都是基于laradock再處理后的生成的容器,可參考laradock目錄下相應(yīng)名字的目錄,里面包含Dockerfile及相關(guān)配置,感興趣的同學(xué)可以盡情閱讀學(xué)習(xí) :)

更加深入的內(nèi)容建議移步至laradock官方文檔。

準(zhǔn)備

在window系統(tǒng)下先安裝docker

等多次重啟后運(yùn)行docker命令測(cè)試一下。

然后在你項(xiàng)目的平級(jí)目錄使用git拉取https://github.com/laradock/laradock.git這個(gè)包。

# 平級(jí)目錄

D:/www/
 - /laradock
 - /my-project

這樣準(zhǔn)備就緒進(jìn)入下一步。

配置

這里配置的環(huán)境按常用環(huán)境進(jìn)行配置

nginx

php-fpm 5.6

mysql 5.6

接著需要修改laradock/.env文件

/www/laradock
 - .env

進(jìn)入laradock目錄會(huì)發(fā)現(xiàn)并不存在.env文件,這里需要我們從env-example復(fù)制一份進(jìn)行修改。

# /www/laradock

$ cp env-example .env
修改PHP版本

進(jìn)入.env文件找到 PHP_VERSION 修改php版本為56(默認(rèn)71,可選71, 70, 56)。

# /www/laradock/.env
### PHP Version

PHP_VERSION=56
修改Mysql版本及配置

進(jìn)入.env文件找到 MYSQL 修改mysql版本為56(默認(rèn)8,可選8, 5, 5.6, 5.5)。

其他的設(shè)置根據(jù)個(gè)人需要填寫(xiě),一般情況下需要修改MYSQL_USER, MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD 來(lái)確保鏈接。

# /www/laradock/.env
### MYSQL

MYSQL_VERSION=5.6

# MYSQL_DATABASE 可選,填寫(xiě)后會(huì)默認(rèn)創(chuàng)建同名數(shù)據(jù)庫(kù)
MYSQL_DATABASE=default

# MYSQL_USER 用戶,填寫(xiě)后會(huì)創(chuàng)建用戶,默認(rèn)為 default
MYSQL_USER=packy

# MYSQL_PASSWORD 密碼,填寫(xiě)后作為新建用戶的密碼,默認(rèn)為 secret
MYSQL_PASSWORD=123456-

# MYSQL_PORT 訪問(wèn)端口,默認(rèn)是3306,建議不要修改
MYSQL_PORT=3306

# MYSQL_ROOT_PASSWORD root用戶密碼,建議使用嚴(yán)謹(jǐn)?shù)拿艽a,默認(rèn)為 root
MYSQL_ROOT_PASSWORD=23333-
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
關(guān)于Mysql版本選擇

mysql使用的是官方鏡像,所以我們可以使用hub.docker.com查詢mysql官方鏡像包含哪些版本。具體如何選擇得看各自的需求。

修改nginx配置

一般情況下并不需要修改什么,使用默認(rèn)的便可。關(guān)于網(wǎng)站的配置需要進(jìn)入laradock/nginx/sites。

如需要修改端口可以進(jìn)入.env文件找到 NGINX進(jìn)行修改。
# /www/laradock/.env
### NGINX

NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443

# NGINX_HOST_LOG_PATH log存放位置,默認(rèn)位置在laradock/logs/nginx/
NGINX_HOST_LOG_PATH=./logs/nginx/

# NGINX_SITES_PATH 網(wǎng)站配置, 默認(rèn)位置在laradock/nginx/sites/
NGINX_SITES_PATH=./nginx/sites/

NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000
關(guān)于Nginx的配置

nginx的配置文件存放在laradock/nginx/sites下,需要新建網(wǎng)站的可通過(guò)復(fù)制對(duì)應(yīng)的.example并重命名為.conf進(jìn)行修改。注:只用.conf文件才會(huì)在nginx下加載。

這里我復(fù)制laravel.conf.example作為例子重命名為my-project.conf

# laradock/nginx/sites/my-project.conf
server {

    listen 80;
    listen [::]:80;

    # 域名,改為你的域名
    server_name my-project.com;
    # 項(xiàng)目目錄,均以 /var/www/ 開(kāi)頭。這個(gè)約定后續(xù)會(huì)說(shuō)明
    root /var/www/my-project;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ .php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }

    error_log /var/log/nginx/laravel_error.log;
    access_log /var/log/nginx/laravel_access.log;
}

同時(shí)修改宿主機(jī)(就是window本地機(jī)子)的hosts

# C:WindowsSystem32driversetchosts

127.0.0.1   my-project.com
嘗試運(yùn)行

到這步準(zhǔn)備工作差不多完成了。

運(yùn)行以下命令進(jìn)行安裝及使用,因?yàn)槭菄?guó)外源拉取時(shí)間比較慢請(qǐng)耐心等待。

docker-compose up -d nginx mysql

完成后輸入docker ps參看容器運(yùn)行情況。一切正常?。?!

嘗試訪問(wèn)http://my-project.com看看效果。目前能正常訪問(wèn)php文件。

運(yùn)行l(wèi)aravel

這里就不得說(shuō)workspace這個(gè)容器,它作為工作區(qū)提供各類(lèi)工具使用(包含:PHP CLI, Composer, Git, Linuxbrew, Node, V8JS, Gulp, SQLite, xDebug, Envoy, Deployer, Vim, Yarn等)。

那如何使用這些功能呢?

首先進(jìn)入workspace容器
# /www/laradock
docker-compose exec workspace bash
composer換國(guó)內(nèi)源

進(jìn)到容器后默認(rèn)就是項(xiàng)目目錄/var/www,由于composer用的是國(guó)外源比較慢,這里需要切換成國(guó)內(nèi)源。

composer config -g repo.packagist composer https://packagist.phpcomposer.com
安裝laravel

這里我們需要在my-project目錄安裝laravel。

*注:需要提前把my-project里的所有內(nèi)容清空
composer create-project laravel/laravel my-project2 "5.2.*" && 
cd my-project && 
php artisan key:generate
配置并重啟nginx

安裝完成后,把laradock/nginx/sites/my-project.conf文件下的網(wǎng)站目錄地址稍微改一下

server {

    listen 80;
    listen [::]:80;

    server_name my-project.com;
    # 加上public目錄
    root /var/www/my-project/public;
    index index.php index.html index.htm;

    ...
}

重啟nginx容器

# /www/laradock
docker-compose restart nginx

關(guān)于數(shù)據(jù)庫(kù)服務(wù)
# .env
DB_CONNECTION=mysql

# mysql的容器網(wǎng)絡(luò)已經(jīng)解析至"mysql"域,所以這里配置"mysql"域便能訪問(wèn)
DB_HOST=mysql

# 默認(rèn)3306,一般不需要改動(dòng),如要改動(dòng)端口應(yīng)該與laradock/.env中的MYSQL_PORT一致
DB_PORT=3306

# 數(shù)據(jù)庫(kù)
DB_DATABASE=default

# 用戶
DB_USERNAME=packy

# 密碼
DB_PASSWORD=123456-
一些問(wèn)題:

Q:運(yùn)行失敗,提示ERROR: for laradock_mysql_1 Cannot create container for service mysql: Drive sharing seems blocked by a firewall

A:先暫停你本機(jī)殺毒程序的防御進(jìn)程。


Q:運(yùn)行失敗,提示ERROR: for laradock_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (6e4f4761d30f4cd80c44c6b0fddfbd4ef0324529099aace02bee6a6653ce453a): Error starting userland proxy: Bind for 0.0.0.0:443 failed: port is already allocated

A:建議你切換端口,我已嘗試改為1443能正常運(yùn)行,目前只能以這種方式處理。


# .env
### NGINX

NGINX_HOST_HTTPS_PORT=1443

Q:為何網(wǎng)站目錄必須以/var/www開(kāi)頭?

A:網(wǎng)站訪問(wèn)進(jìn)入的是nginx容器,/var/www目錄就是容器內(nèi)網(wǎng)站目錄存放的位置。由于配置在創(chuàng)建容器時(shí),會(huì)將本地目錄掛載至/var/www目錄,所以就能訪問(wèn)到本地的代碼。這塊設(shè)置在laradock/.env中找到APPLICATION可自行設(shè)置。


Q:Windows下開(kāi)啟了Hyper-v后安卓模擬器及VMware均不能用了?

A:對(duì)的,貌似是因?yàn)镠yper-v獨(dú)占硬件虛擬化,使用其他虛擬化技術(shù)(如:VMware, virtualbox)均不能使用(開(kāi)啟可能藍(lán)屏),目前并沒(méi)有共存手段。這里博主建議需要模擬安卓系統(tǒng)的可以直接在Hyper-v上安裝,關(guān)于GUI渲染的性能方面聽(tīng)說(shuō)還行。(博主并沒(méi)嘗試,考慮最近嘗試一波)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39792.html

相關(guān)文章

  • 使用 Docker 搭建 Laravel 本地環(huán)境

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

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

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

    lscho 評(píng)論0 收藏0
  • PHP開(kāi)發(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)目能做什么搭建開(kāi)發(fā)生產(chǎn)環(huán)境。搭建開(kāi)發(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開(kāi)發(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)目能做什么搭建開(kāi)發(fā)生產(chǎn)環(huán)境。搭建開(kāi)發(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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<