基于 Docker 的 Laravel 开发环境-lardock【网络不好别尝试】
学习文章
基础
lardock是什么?
Laradock是基于Docker的完整PHP开发环境。
支持各种通用服务,所有这些都预先配置为提供完整的PHP开发环境。
lardock有什么用?
功能#
- 在PHP版本之间轻松切换:7.4、7.3、7.2、7.1、5.6…
- 选择您喜欢的数据库引擎:MySQL,Postgres,MariaDB…
- 运行自己的堆栈:Memcached,HHVM,RabbitMQ…
- 每个软件都在自己的容器上运行:PHP-FPM,NGINX,PHP-CLI…
- 只需对进行简单的编辑,即可轻松自定义任何容器
Dockerfile
。 - 所有图像均来自官方基础图像。(受信任的基本图像)。
- 预先配置的NGINX可以在根目录中托管任何代码。
- 每个项目可以使用Laradock,或者所有项目可以使用一个Laradock。
- 使用环境变量可轻松在Containers中安装/删除软件。
- 干净且结构良好的Dockerfile(
Dockerfile
)。 - 最新版本的Docker Compose文件(
docker-compose
)。 - 一切都可见且可编辑。
- 快速图像构建。
lardock 如何发展起来的?
Laradock 早期专注为 Laravel 打造 Docker 开发环境,因而最早在 Laravel 社区中出名,后来随着影响力的扩大,逐渐被 PHP 社区接纳和采用,目前支持的 PHP 项目除了 Laravel 之外,还有 Symfony、CodeIgniter、WordPress、Drupal 等等。
关于docker
也可以看下up主的这个视频哈。喜欢的请点赞。
二维码:
视频:
配置安装lardock
1. 克隆 Laradock 到本地
// 如果你项目已经有git
git submodule add https://github.com/Laradock/laradock.git
// 如果没有git仓库
https://github.com/laradock/laradock.git
执行命令:
clone成功后,目录结构如下:
ps:
git submodule
, 使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。- 建议fork一份到github,然后复制一份到gitee。否则网络你10k每秒,你有工具咱除外。
2. 进入 laradock 目录将 env-example 重命名为 .env
cd lardock
mv env-example .env
3、构建环境并使用运行 docker-compose:
docker-compose up -d nginx mysql redis workspace
执行结果:
状态1: 下载中【需要工具才可以使用网络】:
状态2: 开始安装
状态3: 安装成功
基本上下载,1.5小时要的。所以等吧,等下载成功后,看下一步。
ps:所有的web服务器容器
nginx
,apache
..等要看php-fpm
,如果你运行任何人,这意味着,他们将自动启动php-fpm
容器给你,所以没必要明确地在其指定up
的命令。如果必须这样做,则可能需要按以下方式运行它们:docker-compose up -d nginx php-fpm mysql
。
您可以从此列表中选择自己的容器组合。
4、在.env
文件添加如下配置:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
5、在laradock 中创建 wwwroot
- 在
laradock
父级目录下创建一个与laradock
同级的wwwroot
目录 - 在
wwwroot
目录下运行composer create-project laravel/laravel blog --prefer-dist
命令创建一个新的 Laravel 应用,相应的层级目录关系如下所示:
安装中
安装成功。
- 编辑 lardock目录下的 .env 中的 APP_CODE_PATH_HOST
APP_CODE_PATH_HOST=../wwwroot/
这一步就相当于,为wwwroot
与 Docker 的 /var/www
目录建立了软链接.
- 配置虚拟主机
cd laradock/nginx/sites
touch blog.conf
在 blog.conf 中配置你的虚拟主机即可。
下面是测试使用的配置:
server {
listen 80;
listen [::]:80;
server_name blog.test;
root /var/www/blog/public; # 要修改,然后注释删掉
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;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;# 要修改,然后注释删掉
log_not_found off;
}
}
作者本人的配置:
修改hosts
/etc/hosts 增加127.0.0.1 blog.test
注意: blog.test 就是你的虚拟主机server名字。重启服务
改完配置文件后需要重启服务。
docker-compose up -d nginx
- 访问
如何配置多个站点?
配置虚拟主机文件
laradock/nginx/sites
下对应创建多个配置文件配置对应的hosts
那我们如何选择自己的laravel 开发环境呢?
就趋势而言,肯定docker。所以我选lardock。
而且,学院君老师使用的也是lardock。嘿嘿,你懂的。
报错解决
1. Failed to connect to raw.githubusercontent.com port 443: Connection refused,ERROR: Service ‘workspace’ failed to build:
Running in 0326b7d610ee
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
/bin/sh: 1: .: Can't open /home/laradock/.nvm/nvm.sh