到目前为止,Laravel 是 PHP 开发人员构建 api 和 web 应用程序的首选。如果你是新手的话,将 Laravel 应用程序部署到线上服务器上可能有点棘手。
在本指南中,我们将向您展示在 Ubuntu 系统中部署 Laravel 应用程序的全过程。
Step 1: Update Your Server
首先,确保当前的系统包是最新的。
sudo apt update
sudo apt upgrade -y
Step 2: Install Required Software
Laravel 是用 PHP 编程语言编写的,要在 web 上提供服务,您需要像 Apache 这样的 web 服务器。为了永久存储数据,您需要像 MySQL 这样的数据库。总之,您需要安装一些运行 Laravel 应用程序所需的软件。这包括 Apache、MySQL、PHP 和其他一些工具。
(1) 安装 Apache
sudo apt install apache2 -y
(2) 安装 MySQL
sudo apt install mysql-server -y
(3) 安装PHP和相关扩展
sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-mcrypt php-curl php-zip -y
Step 3: Configuring MySQL
首次安装 MySQL 服务器后,需要执行以下命令启动 MySQL 安装向导
sudo mysql_secure_installation
按照说明来确保安装的安全,然后登录到 MySQL,为您的 Laravel 应用程序创建一个数据库。
sudo mysql -u root -p
在 MySQL shell 中,运行以下命令来创建数据库和用户。
CREATE DATABASE laravel_app;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 4: Set Up Apache Server
我们需要配置 Apache 来服务我们的 Laravel 应用程序。首先,启用 mod 重写模块。
sudo a2enmod rewrite
然后,为您的 Laravel 站点创建一个新的 Apache 配置文件。
sudo nano /etc/apache2/sites-available/laravel.conf
将以下内容添加到创建的配置文件中
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/laravel/public
<Directory /var/www/laravel>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
保存并关闭该文件。然后,启用新站点并重新启动 Apache
sudo a2ensite laravel.conf
sudo systemctl restart apache2
Step 5: Deploy Your Laravel Application
把 Laravel 项目上传到 /var/www/laravel 目录
切换到项目目录,并安装所需的依赖项。
cd /var/www/laravel
composer install
接下来,为存储和缓存目录设置正确的权限。
sudo chown -R www-data:www-data storage
sudo chown -R www-data:www-data bootstrap/cache
Step 6: Configure Environment Variables
Laravel 使用 .env 文件来存储配置设置,更新其中的数据库相关设置。
DB_DATABASE=laravel_app
DB_USERNAME=laravel_user
DB_PASSWORD=your_password
Step 7: Generate Application Key
最后,为 Laravel 应用程序生成一个应用程序密钥。
php artisan key:generate
Step 8: Set Up SSL Certificate
为了保护您的 Laravel 应用程序,您可以使用 Let ’ s Encrypt 来设置一个免费的 SSL 证书。
安装 Certbot
sudo apt install certbot python3-certbot-apache -y
获取并安装 SSL 证书
sudo certbot --apache
按照屏幕上的说明操作,Certbot 将自动为您的站点配置 SSL,并在需要时更新证书。
测试证书续订过程
sudo certbot renew --dry-run