debian

Debian如何简化Laravel项目的部署流程

小樊
38
2025-04-30 09:49:16
栏目: 智能运维

在Debian上部署Laravel项目可以通过以下步骤简化流程:

更新系统

首先,确保你的系统是最新的:

sudo apt update
sudo apt upgrade

安装必要的软件包

安装Nginx、PHP及PHP-FPM、MySQL和Composer:

sudo apt install nginx php php-cli php-common php-json php-gmp php-fpm php-xmlrpc php-bcmath php-imagick php-curl php-zip php-gd php-mysql php-xml php-mbstring php-xmlrpc php-intl php-sqlite3

配置PHP-FPM

检查PHP是否安装成功:

php -v

配置PHP-FPM:

sudo systemctl status php8.2-fpm

安装MySQL

安装MariaDB或MySQL数据库:

sudo apt install mariadb-server

在安装过程中,系统会提示你设置root密码,请选择一个强密码并确保其安全。

创建Laravel项目

选择一个目录用于存放Laravel项目,并使用Composer创建新项目:

cd /home/david
composer create-project laravel/laravel example-app

配置Nginx

/etc/nginx/conf.d 目录下创建一个新的配置文件,例如 example-app.conf,并添加以下内容:

server {
    listen 80;
    listen [::]:80;
    server_name example-app.local;
    root /home/david/example-app/public;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    index index.php;
    charset utf-8;
    location / {
        try_files uri uri / /index.php?query_string;
    }
    location \.php {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
    location /\.ht {
        deny all;
    }
}

替换 example-app.local 为你的域名,并确保Nginx配置文件指向正确的Laravel项目目录。

重启Nginx服务

最后,重启Nginx服务以应用新的配置:

sudo systemctl restart nginx

配置防火墙(如果需要)

sudo ufw allow 'Nginx Full'

使用Docker简化部署(可选)

如果你希望进一步简化部署流程,可以使用Docker。以下是一个基本的Docker部署示例:

  1. 安装Docker:确保你已经安装了Docker。

  2. 创建Dockerfile

FROM php:7.4-apache
RUN docker-php-ext-install mysqli pdo pdo_mysql
WORKDIR /var/www/html
COPY . .
RUN chown -R www-data:www-data /var/www/html
EXPOSE 80
CMD ["apache2-foreground"]
  1. 创建docker-compose.yml
version: '3'
services:
  web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
  1. 启动Docker容器
docker-compose up -d

等待一段时间,直到容器完全启动。然后,在浏览器中访问 http://localhost:8080,你应该能够看到Laravel应用程序的欢迎页面。

通过以上步骤,你可以在Debian上成功部署Laravel项目,并根据需要选择是否使用Docker来进一步简化部署流程。

0
看了该问题的人还看了