在Ubuntu环境下部署Laravel应用程序通常涉及以下几个步骤:
安装必要的软件:
设置Web服务器:
public目录。配置数据库:
.env文件中配置数据库连接信息。安装和配置Laravel:
优化和安全设置:
测试部署:
下面是详细的步骤说明:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx php-fpm php-mysql composer -y
sudo apt install mysql-server -y # 对于MySQL
# 或者
sudo apt install postgresql postgresql-contrib -y # 对于PostgreSQL
server {
listen 80;
server_name example.com; # 替换为你的域名或公网IP
root /var/www/laravel_project/public; # 替换为你的Laravel项目的public目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
将上述配置保存到/etc/nginx/sites-available/laravel_project,然后创建一个符号链接到sites-enabled目录,并重启Nginx:
sudo ln -s /etc/nginx/sites-available/laravel_project /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置文件是否有误
sudo systemctl restart nginx
<VirtualHost *:80>
ServerName example.com # 替换为你的域名或公网IP
DocumentRoot /var/www/laravel_project/public # 替换为你的Laravel项目的public目录
<Directory /var/www/laravel_project/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
将上述配置保存到/etc/apache2/sites-available/laravel_project.conf,然后启用站点并重启Apache:
sudo a2ensite laravel_project.conf
sudo systemctl restart apache2
登录到MySQL或PostgreSQL并创建数据库和用户:
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
在.env文件中配置数据库连接:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password
导航到你的项目目录并使用Composer安装依赖:
cd /var/www/laravel_project
composer install
设置文件和目录权限:
sudo chown -R www-data:www-data /var/www/laravel_project
sudo chmod -R 755 /var/www/laravel_project
sudo chmod -R 777 /var/www/laravel_project/storage
sudo chmod -R 777 /var/www/laravel_project/bootstrap/cache
运行迁移和种子命令:
php artisan migrate
php artisan db:seed
配置队列和缓存系统,设置SSL证书,并应用安全最佳实践。
访问你的网站URL以确保一切正常运行。
以上步骤提供了一个基本的Laravel部署流程。根据你的具体需求,可能还需要进行额外的配置和优化。