一套完整的基于Docker的PHP开发环境。
包含了预先打包的Docker镜像,所有预先配置都是为了提供一个完美的PHP开发环境。
Laradock是在laravel社区众所周知的,因为这个项目最开始只关注在Docker上运行的laravel项目。后来,由于PHP社区的大量使用,它开始支持比如Symfony、CodeIgniter、WordPress、Drupal等其他的PHP项目。
这里以在没有项目的前提下的安装
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
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
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
出现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