この記事では主にローカル Docker 設定に laradock
を使用します。 laradock
は、laravel が使用する必要がある環境を統合しています。構成を変更するだけで開発および管理のための環境を構築できます。 laradock
进行本地的docker配置。laradock
已经集成laravel需要使用的环境,只需要简单修改配置就能搭建环境提供开发,对开发及管理来说真是一味良方。
简单说明一下,在docker
环境下我们需要运行laravel
项目,实际会建立下几个容器(container):在电脑还是window系统的时候,经常需要基于vm服务搭建一套环境才能更好地(应该是更贴近线上环境)进行开发,而现在在docker的神秘光环底下已经能实现用最小的资源搭建本地开发环
境,同时能更好地迁移到其他地方。
workspace (开发环境)
php-fpm (php支持)
nginx (web服务)
mysql (数据库)
这些都是基于laradock
再处理后的生成的容器,可参考laradock
目录下相应名字的目录,里面包含Dockerfile
及相关配置,感兴趣的同学可以尽情阅读学习 :)
更加深入的内容建议移步至laradock官方文档。
在window系统下先安装docker
等多次重启后运行docker
命令测试一下。
然后在你项目的平级目录使用git
拉取https://github.com/laradock/laradock.git
这个包。
# 平级目录 D:/www/ - /laradock - /my-project
这样准备就绪进入下一步。
这里配置的环境按常用环境进行配置
nginx
php-fpm 5.6
mysql 5.6
接着需要修改laradock/.env
文件
/www/laradock - .env
进入laradock
目录会发现并不存在.env
文件,这里需要我们从env-example
复制一份进行修改。
# /www/laradock $ cp env-example .env
进入.env
文件找到 PHP_VERSION
修改php版本为56(默认71,可选71, 70, 56)。
# /www/laradock/.env ### PHP Version PHP_VERSION=56
进入.env
文件找到 MYSQL
修改mysql版本为56(默认8,可选8, 5, 5.6, 5.5)。
其他的设置根据个人需要填写,一般情况下需要修改MYSQL_USER
, MYSQL_PASSWORD
, MYSQL_ROOT_PASSWORD
来确保链接。
# /www/laradock/.env ### MYSQL MYSQL_VERSION=5.6 # MYSQL_DATABASE 可选,填写后会默认创建同名数据库 MYSQL_DATABASE=default # MYSQL_USER 用户,填写后会创建用户,默认为 default MYSQL_USER=packy # MYSQL_PASSWORD 密码,填写后作为新建用户的密码,默认为 secret MYSQL_PASSWORD=123456- # MYSQL_PORT 访问端口,默认是3306,建议不要修改 MYSQL_PORT=3306 # MYSQL_ROOT_PASSWORD root用户密码,建议使用严谨的密码,默认为 root MYSQL_ROOT_PASSWORD=23333- MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
mysql使用的是官方镜像,所以我们可以使用hub.docker.com查询mysql
官方镜像包含哪些版本。具体如何选择得看各自的需求。
一般情况下并不需要修改什么,使用默认的便可。关于网站的配置需要进入laradock/nginx/sites
。
如需要修改端口可以进入.env
文件找到NGINX
进行修改。
# /www/laradock/.env ### NGINX NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 # NGINX_HOST_LOG_PATH log存放位置,默认位置在laradock/logs/nginx/ NGINX_HOST_LOG_PATH=./logs/nginx/ # NGINX_SITES_PATH 网站配置, 默认位置在laradock/nginx/sites/ NGINX_SITES_PATH=./nginx/sites/ NGINX_PHP_UPSTREAM_CONTAINER=php-fpm NGINX_PHP_UPSTREAM_PORT=9000
nginx
的配置文件存放在laradock/nginx/sites
下,需要新建网站的可通过复制对应的.example
并重命名为.conf
进行修改。注:只用.conf
文件才会在nginx
下加载。
这里我复制laravel.conf.example
作为例子重命名为my-project.conf
:
# laradock/nginx/sites/my-project.conf server { listen 80; listen [::]:80; # 域名,改为你的域名 server_name my-project.com; # 项目目录,均以 /var/www/ 开头。这个约定后续会说明 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; }
同时修改宿主机(就是window本地机子)的hosts
# C:\Windows\System32\drivers\etc\hosts 127.0.0.1 my-project.com
到这步准备工作差不多完成了。
运行以下命令进行安装及使用,因为是国外源拉取时间比较慢请耐心等待。
docker-compose up -d nginx mysql
完成后输入docker ps
参看容器运行情况。一切正常!!!
尝试访问http://my-project.com
看看效果。目前能正常访问php
文件。
这里就不得说workspace
docker
環境では laravel
プロジェクトを実行する必要があります。これにより、実際にいくつかのコンテナが作成されます。 コンピュータがまだウィンドウ システムである場合、多くの場合、より良い開発を行うためにはvmサービスをベースとした環境を構築する必要がありましたが(オンライン環境に近づけるべき)、dockerの神秘的なオーラの下、最小限のリソースでローカル開発環境を構築することが可能になりました、同時に、他の場所に移動する方が良いこともあります。 laradock
に基づいて生成されたコンテナであり、処理できます。 laradock
ディレクトリの下にある対応する名前のディレクトリに移動します。このディレクトリには Dockerfile
と関連する設定が含まれています。興味のある学生は好きなだけ読んで学ぶことができます:)🎜🎜詳細については、深度のコンテンツについては、laradock 公式ドキュメントに移動することをお勧めします。 🎜docker
をインストールします🎜🎜🎜🎜数回再起動した後、docker
コマンドを実行してテストします。 🎜🎜🎜 🎜次に、git
を使用して、プロジェクトのフラット ディレクトリにある https://github.com/laradock/laradock.git
パッケージをプルします。 🎜# /www/laradock docker-compose exec workspace bash🎜これで、次のステップに進む準備ができました。 🎜
laradock/.env
ファイルを変更する必要があります🎜composer config -g repo.packagist composer https://packagist.phpcomposer.com🎜
laradock を入力してください
ディレクトリ .env
ファイルが存在しないことがわかりました。ここでは、env-example
からコピーをコピーして変更する必要があります。 🎜composer create-project laravel/laravel my-project2 "5.2.*" && \ cd my-project && \ php artisan key:generate
.env
ファイルを入力して PHP_VERSION
を見つけ、PHP バージョンを 56 (デフォルトは 71、オプションで 71、70) に変更します。 , 56) 。 🎜server { listen 80; listen [::]:80; server_name my-project.com; # 加上public目录 root /var/www/my-project/public; index index.php index.html index.htm; ... }
.env
ファイルを入力して MYSQL
を見つけ、mysql バージョンを 56 (デフォルトは 8、オプションで 8) に変更します、5、5.6、5.5)。 🎜🎜その他の設定は個人のニーズに応じて入力する必要があります。通常、リンクを確実にするには、MYSQL_USER
、MYSQL_PASSWORD
、MYSQL_ROOT_PASSWORD
を変更する必要があります。 🎜# /www/laradock docker-compose restart nginx
mysql
公式イメージに含まれるバージョンをクエリできます。具体的な選択は個々のニーズによって異なります。 🎜🎜🎜 laradock/nginx/sites
と入力する必要があります。 🎜ポートを変更する必要がある場合は、.env
ファイルを入力し、NGINX
を見つけて変更します。
# .env DB_CONNECTION=mysql # mysql的容器网络已经解析至"mysql"域,所以这里配置"mysql"域便能访问 DB_HOST=mysql # 默认3306,一般不需要改动,如要改动端口应该与laradock/.env中的MYSQL_PORT一致 DB_PORT=3306 # 数据库 DB_DATABASE=default # 用户 DB_USERNAME=packy # 密码 DB_PASSWORD=123456-
nginx
の設定ファイルは、laradock/nginx/sites
に保存されます。新しい Web サイトでは、対応する .example
をコピーし、名前を .conf
に変更して変更できます。注: .conf
ファイルのみが nginx
にロードされます。 🎜🎜ここでは、例として laravel.conf.example
をコピーし、それを my-project.conf
に名前変更します。 🎜# .env ### NGINX NGINX_HOST_HTTPS_PORT=1443🎜同時に、ホスト マシンを変更します (つまり、ウィンドウ ローカル マシン)hosts🎜rrreee
docker ps
」と入力して、コンテナーの実行ステータスを確認します。すべてが正常です! ! ! 🎜🎜🎜 🎜 http://my-project.com
にアクセスして効果を確認してください。現在、php
ファイルには正常にアクセスできます。 🎜🎜🎜 workspace
コンテナについては触れません。これは、さまざまなツール (PHP CLI、Composer、Git、Linuxbrew、Node、V8JS、 Gulp、SQLite、xDebug、Envoy、Deployer、Vim、Yarn など)。 🎜🎜それでは、これらの機能をどのように使用するのでしょうか? 🎜workspace
容器# /www/laradock docker-compose exec workspace bash
进到容器后默认就是项目目录/var/www
,由于composer用的是国外源比较慢,这里需要切换成国内源。
composer config -g repo.packagist composer https://packagist.phpcomposer.com
这里我们需要在my-project
目录安装laravel。
*注:需要提前把my-project里的所有内容清空
composer create-project laravel/laravel my-project2 "5.2.*" && \ cd my-project && \ php artisan key:generate
安装完成后,把laradock/nginx/sites/my-project.conf
文件下的网站目录地址稍微改一下
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
# .env DB_CONNECTION=mysql # mysql的容器网络已经解析至"mysql"域,所以这里配置"mysql"域便能访问 DB_HOST=mysql # 默认3306,一般不需要改动,如要改动端口应该与laradock/.env中的MYSQL_PORT一致 DB_PORT=3306 # 数据库 DB_DATABASE=default # 用户 DB_USERNAME=packy # 密码 DB_PASSWORD=123456-
Q:运行失败,提示ERROR: for laradock_mysql_1 Cannot create container for service mysql: Drive sharing seems blocked by a firewall
A:先暂停你本机杀毒程序的防御进程。
Q:运行失败,提示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能正常运行,目前只能以这种方式处理。
# .env ### NGINX NGINX_HOST_HTTPS_PORT=1443
Q:为何网站目录必须以/var/www
开头?
A:网站访问进入的是nginx
容器,/var/www
目录就是容器内网站目录存放的位置。由于配置在创建容器时,会将本地目录挂载至/var/www
目录,所以就能访问到本地的代码。这块设置在laradock/.env
中找到APPLICATION
可自行设置。
相关推荐:
以上がDocker が Laravel 開発環境を構築する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。