您好,登录后才能下订单哦!
在现代Web开发中,Laravel是一个非常流行的PHP框架,而Docker则是一个强大的容器化工具,可以帮助开发者快速搭建和配置开发环境。本文将详细介绍如何使用Docker搭建Laravel的本地开发环境。
在开始之前,确保你的系统已经安装了Docker和Docker Compose。如果还没有安装,可以参考以下步骤:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Docker Compose通常与Docker一起安装。如果没有安装,可以使用以下命令:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
首先,我们需要创建一个新的Laravel项目。你可以使用Composer来创建项目:
composer create-project --prefer-dist laravel/laravel my-laravel-app
这将创建一个名为my-laravel-app
的Laravel项目。
接下来,我们需要为Laravel项目配置Docker环境。我们将使用Docker Compose来定义和运行多个容器。
docker-compose.yml
文件在项目的根目录下创建一个名为docker-compose.yml
的文件,并添加以下内容:
version: '3.8'
services:
app:
image: php:8.0-fpm
container_name: laravel_app
restart: unless-stopped
working_dir: /var/www/html
volumes:
- .:/var/www/html
networks:
- laravel_network
webserver:
image: nginx:alpine
container_name: laravel_webserver
restart: unless-stopped
ports:
- "8080:80"
volumes:
- .:/var/www/html
- ./docker/nginx:/etc/nginx/conf.d
networks:
- laravel_network
depends_on:
- app
db:
image: mysql:5.7
container_name: laravel_db
restart: unless-stopped
environment:
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: secret
volumes:
- ./docker/mysql:/var/lib/mysql
networks:
- laravel_network
redis:
image: redis:alpine
container_name: laravel_redis
restart: unless-stopped
ports:
- "6379:6379"
networks:
- laravel_network
networks:
laravel_network:
driver: bridge
在项目根目录下创建一个docker/nginx
目录,并在其中创建一个名为default.conf
的文件,内容如下:
server {
listen 80;
index index.php index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
在项目根目录下创建一个docker/mysql
目录,用于存储MySQL的数据。
现在,我们可以使用Docker Compose来启动所有容器:
docker-compose up -d
这将启动四个容器:app
(PHP-FPM)、webserver
(Nginx)、db
(MySQL)和redis
(Redis)。
.env
文件在Laravel项目的根目录下,编辑.env
文件,配置数据库连接:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret
在容器中运行数据库迁移:
docker-compose exec app php artisan migrate
现在,你可以通过浏览器访问http://localhost:8080
来查看你的Laravel应用。
当你完成开发后,可以使用以下命令停止和删除容器:
docker-compose down
通过使用Docker和Docker Compose,我们可以轻松地搭建一个Laravel本地开发环境。这种方法不仅简化了环境配置过程,还确保了开发环境的一致性。希望本文能帮助你快速上手使用Docker搭建Laravel开发环境。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。