在Debian上部署Laravel项目是一个相对直接的过程,以下是详细的步骤:
首先,确保你的Debian系统是最新的:
sudo apt update
sudo apt upgrade
安装Nginx,这是Laravel推荐的Web服务器:
sudo apt install nginx
安装完成后,启动Nginx服务并检查其状态:
sudo systemctl start nginx
sudo systemctl status nginx
安装PHP及其必要的扩展,这些扩展对于Laravel的运行至关重要:
sudo apt install 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是否安装成功:
php -v
编辑PHP-FPM配置文件,通常位于 /etc/php/7.x/fpm/pool.d/www.conf
(根据你的PHP版本调整路径)。找到 listen
行,将其更改为:
listen = /run/php/php7.x-fpm.sock
然后重启PHP-FPM服务:
sudo systemctl restart php7.x-fpm
安装MariaDB或MySQL数据库:
sudo apt install mariadb-server
在安装过程中,系统会提示你设置root密码,请选择一个强密码并确保其安全。
Composer是PHP的依赖管理工具,用于安装和管理Laravel项目所需的依赖包:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
验证Composer是否安装成功:
composer --version
选择一个目录用于存放Laravel项目,并使用Composer创建新项目:
cd /home/david
composer create-project laravel/laravel example-app
在 /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服务以应用新的配置:
sudo systemctl restart nginx
进入项目目录,找到 .env.example
文件并将其复制为 .env
文件。然后,使用文本编辑器打开 .env
文件并配置数据库连接信息:
cd /home/david/example-app
cp .env.example .env
nano .env
修改以下配置项:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
保存并关闭文件。接下来,运行以下命令以生成应用程序密钥:
php artisan key:generate
运行数据库迁移以设置数据库结构:
php artisan migrate
现在,你的Laravel项目应该已经在Debian上成功部署并可以访问了。你可以通过访问 http://example-app.local
在浏览器中查看你的Laravel项目。