使用laradock快速部署laravel

laradock 简介

一套完整的基于Docker的PHP开发环境。

包含了预先打包的Docker镜像,所有预先配置都是为了提供一个完美的PHP开发环境。

Laradock是在laravel社区众所周知的,因为这个项目最开始只关注在Docker上运行的laravel项目。后来,由于PHP社区的大量使用,它开始支持比如Symfony、CodeIgniter、WordPress、Drupal等其他的PHP项目。

快速安装laradock

这里以在没有项目的前提下的安装
1 - 在您的计算机上的任何位置克隆此存储库:

git submodule add https://github.com/Laradock/laradock.git  

您的文件夹结构应如下所示:
+ laradock
+ project-z
2 - 编辑Web服务器站点配置

  • 进入laradock文件夹并复制env-example到.env

    cp env-example .env
    
  • 在.env文件顶部,将APP_CODE_PATH_HOST变量更改为项目路径。

    APP_CODE_PATH_HOST=../project-z/  
    

ps:这里中文文档和英文文档有差异,中文文档没有更新,需按照英文文档配置

3 - 构建环境并使用它运行 docker-compose

docker-compose up -d nginx mysql

注意:所有Web服务器容器nginx,apache…依赖于php-fpm,这意味着如果您运行其中任何一个,它们将自动php-fpm为您启动容器,因此无需在up命令中明确指定它。如果必须这样做,您可能需要按如下方式运行它们:docker-compose up -d nginx php-fpm mysql。

4 - 进入Workspace容器,执行命令,如(Artisan,Composer,PHPUnit,Gulp,…)

docker-compose exec workspace bash  

docker-compose exec --user=laradock workspace bash  //以laradock用户身份进入容器

5 - 更新项目配置以使用数据库主机
打开PHP项目的.env文件或您正在读取的配置文件,并将数据库主机设置DB_HOST为mysql:

DB_HOST=mysql    

6 - 其他更新配置
同样打开PHP项目的.env文件或您正在读取的配置文件,并编辑如下
   
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

部署laravel应用

1 - 首先,您需要进入工作区容器。  
ps:这里不能以root用户身份进入容器,因为在创建新的laravel应用时会报警告,因此这里以laradock身份进入,并赋给laradock以一定的权限

docker-compose exec --user=laradock workspace bash

2 - 为composer切换中国镜像
由于墙的原因,不切换的话创建时会很慢

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

3 - 安装laravel

composer create-project laravel/laravel my-cool-app "5.2.*"

4 - 编辑.env以映射新的应用程序路径:
默认情况下,Laradock假定Laravel应用程序位于laradock文件夹的父目录中。

由于新的Laravel应用程序位于my-cool-app文件夹中,我们需要替换…/:/var/www为…/my-cool-app/:/var/www,如下所示:

APP_CODE_PATH_HOST=../my-cool-app/

5 - 重新构建环境

docker-compose up -d nginx php-fpm mysql

6 - 转到该文件夹并开始工作

cd my-cool-app

Mysql配置

laradock在默认情况下,是使用MySQL 8.0。

MySQL 8.0是一个开发版本。而一般开发中可能更喜欢使用最新的稳定版本或更旧的版本,所以我们更改使用的MySQL映像。以下是步骤

# 修改 .env 文件
MYSQL_VERSION=5.7 # 默认为 latest

#停止mysql容器
docker-compose stop mysql

# 删除旧数据库数据
rm -rf ~/.laradock/data/mysql

# !注意重启docker应用,然后再构建新 mysql
docker-compose build mysql

# 重新创建容器
docker-compose up -d nginx mysql

# 查看现有 mysql 版本
docker inspect laradock_mysql_1

# 配置laravel中的.env文件
DB_CONNECTION=mysql
DB_HOST=mysql  //不能使用localhost和127.0.0.1
DB_PORT=3306
DB_DATABASE=自己的数据库名
DB_USERNAME=root
DB_PASSWORD=root

关于本地laravel应用上传到服务器

  • 出现The stream or file “/storage/logs/laravel.log” could not be opened: failed to open stream: Permission denied错误的解决办法

    进入项目顶部文件,依次输入以下命令
         php artisan cache:clear
    chmod -R 777 storage
    composer dump-autoload

文档查找

  • 中文文档
  • 英文文档

你可能感兴趣的:(laravel,laravel,php,docker)