使用 LEMP 堆栈(Linux、Nginx、MySQL、PHP)在 Ubuntu 上部署 Laravel 应用程序似乎令人畏惧,但逐步分解使其易于管理。本指南将引导您完成从服务器设置到部署 Laravel 应用程序的过程。
首先确保您的服务器是最新的。
sudo apt update && sudo apt upgrade -y
Nginx 将为您的应用程序提供服务。
sudo apt install nginx -y
安装后,您可以启动并启用 Nginx 开机运行:
sudo systemctl start nginx sudo systemctl enable nginx
您可以通过在浏览器中访问服务器的 IP 地址来验证 Nginx 是否正在运行。
接下来,我们将安装MySQL数据库服务器。
sudo apt install mysql-server -y
保护 MySQL 安装:
sudo mysql_secure_installation
这将提示您设置 root 密码并删除不安全的默认值。
Laravel 需要 PHP,所以让我们安装它以及一些必要的扩展:
sudo apt install php-fpm php-mysql php-cli php-xml php-mbstring php-curl php-zip -y
验证 PHP 安装:
php -v
您应该看到类似以下内容:
PHP 7.x.x (cli) (built: ...)
以root用户登录MySQL控制台:
sudo mysql
为 Laravel 应用程序创建新的数据库和用户:
CREATE DATABASE laravel_app; CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
确保新的数据库用户可以连接:
mysql -u laravel_user -p
系统将提示您输入密码,然后输入:
SHOW DATABASES;
您应该在列表中看到 laravel_app。
Laravel 使用 Composer 作为其依赖管理器。安装作曲家:
sudo apt install composer -y
导航到要安装 Laravel 的目录(例如 /var/www/):
cd /var/www/ composer create-project --prefer-dist laravel/laravel laravel_app
Laravel 要求 Web 服务器可写某些目录:
sudo chown -R www-data:www-data /var/www/laravel_app sudo chmod -R 775 /var/www/laravel_app/storage sudo chmod -R 775 /var/www/laravel_app/bootstrap/cache
在 Laravel 项目根目录中,打开 .env 文件并配置数据库设置:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_app DB_USERNAME=laravel_user DB_PASSWORD=strong_password
我们将为 Laravel 项目创建一个 Nginx 配置文件。
sudo nano /etc/nginx/sites-available/laravel_app
在文件中添加以下配置:
server { listen 80; server_name your_domain_or_ip; root /var/www/laravel_app/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.x-fpm.sock; # Change this to the correct PHP version. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
将your_domain_or_ip替换为您的实际域名或服务器IP地址。
通过创建指向启用站点的符号链接来启用新的 Nginx 配置:
sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/
测试 Nginx 配置以确保没有语法错误:
sudo nginx -t
如果一切正常,重启Nginx:
sudo systemctl reload nginx
运行 Laravel 迁移来设置数据库:
cd /var/www/laravel_app php artisan migrate
您现在应该能够通过在浏览器中导航到服务器的 IP 或域来访问 Laravel 应用程序。您将看到默认的 Laravel 欢迎页面。
如果您有域名,请使用 Let's Encrypt 保护您的网站:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain
按照说明安装 SSL 证书。 Certbot 将自动配置 Nginx 将 HTTP 流量重定向到 HTTPS。
队列处理诸如发送电子邮件或在后台处理作业等任务。
php artisan queue:work
使用 Laravel 的任务调度功能来执行清除缓存、发送每日电子邮件等任务。
sudo crontab -e
添加以下行:
* * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1
您已使用 LEMP 堆栈在 Ubuntu 服务器上成功部署了 Laravel 应用程序。从这里,您可以继续开发您的应用程序、保护它并监控它的性能。
如果遇到任何问题,请检查位于 /var/log/nginx/error.log 的 Nginx 错误日志或位于 /var/www/laravel_app/storage/logs/laravel.log 的 Laravel 日志。
通过这些步骤,您已经完成了完整的 Laravel 实际部署!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3