主页/PHP笔记/PHP问答/框架Laravel/在生产环境中使用 Apache 和 Let’s Encrypt 部署 Laravel

在生产环境中使用 Apache 和 Let’s Encrypt 部署 Laravel

Bug编译狮

Bug编译狮

在生产环境中部署 Laravel 时,使用 Apache 和 Let’s Encrypt 是一种常见的做法,可以确保网站的安全性和可用性。以下是详细步骤:

1. 安装必要的软件

首先,你需要安装以下软件:

  • Apache: 确保你的服务器上已经安装了 Apache。
  • Let’s Encrypt: 下载并安装 Let’s Encrypt 的客户端。

安装 Apache

如果你还没有安装 Apache,可以通过包管理器进行安装。例如,在 Ubuntu 上:

sudo apt update
sudo apt install apache2

安装 Let’s Encrypt

你可以通过以下命令来安装 Let’s Encrypt:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python3-certbot-apache

2. 创建 SSL 证书

使用 Certbot 客户端生成 SSL 证书。假设你的域名是 example.com,运行以下命令:

sudo certbot --apache -d example.com

Certbot 会提示你选择要使用的认证方法(如 HTTP、DNS 等)。选择适合你的方法即可。

3. 配置 Apache

Certbot 安装完成后,Apache 会自动配置 SSL 证书。你需要编辑 Apache 的虚拟主机文件以启用 HTTPS。通常,虚拟主机文件位于 /etc/apache2/sites-available/000-default.conf 或类似的路径。

打开该文件,并添加以下内容:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html/example.com/public

    <Directory /var/www/html/example.com/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>

保存文件后,重新加载 Apache 以应用更改:

sudo systemctl reload apache2

4. 验证配置

你可以通过访问 https://example.com 来验证 SSL 是否成功配置。

5. 配置 Laravel

现在,你可以开始配置 Laravel 项目。首先,确保你的 Laravel 项目已经正确安装并且配置好了数据库连接等。

示例代码:创建 Laravel 项目

如果你还没有创建 Laravel 项目,可以使用 Composer 进行安装:

composer create-project --prefer-dist laravel/laravel example.com
cd example.com

然后,运行以下命令来安装所有依赖项:

composer install

最后,运行以下命令来启动开发服务器:

php artisan serve

现在,你应该能够通过 https://example.com 访问你的 Laravel 应用程序了。

通过以上步骤,你可以在生产环境中成功部署 Laravel 并使用 Apache 和 Let’s Encrypt 提供的 SSL 加密。

黑板Bug讲师

黑板Bug讲师

介绍

部署Laravel应用程序到生产环境需要几个关键步骤,以确保您的Web应用程序安全、高效且可扩展。这些步骤包括配置Web服务器,例如Apache,以及通过Let’s Encrypt提供的SSL证书来保护您的应用。

在本教程中,我们将通过步骤指南的方式介绍如何在Linux服务器上部署一个Laravel应用程序并使用Let’s Encrypt进行安全设置。我们将涵盖从上传您的Laravel应用程序到配置Apache虚拟主机以及设置SSL证书以实现加密通信的所有内容。

前置条件

配置指向您服务器公网IP地址的域名。

对服务器的root权限访问权限。

一台推荐使用Ubuntu或CentOS的Linux服务器,已安装Apache。

SSH(Secure Shell)的基本知识。

一个Laravel应用程序已准备好部署。

部署流程

步骤1:上传您的Laravel应用程序

使用SSLH客户端(如OpenSSH、PuTTY或MacOS内置终端等),并执行以下操作:

请使用SCP或其他您喜欢的方法上传您的Laravel应用:

导航到目录:/var/www

cd /var/www

请使用SSH连接到您的服务器(采用密码认证或免密登录方式)。

ssh [email protected]

确保 /var/www/your-laravel-app 目录的所有者是 Web 服务器用户,通常为 www-data(在基于 Debian 或 Ubuntu 的系统上使用 Apache 时)。

sudo chown -R www-data:www-data /var/www/your-laravel-app

步骤 2:配置 Apache 虚拟主机以支持 Laravel

为您的应用程序创建一个新的配置文件:

sudo nano /etc/apache2/sites-available/your-laravel-app.conf

请按照以下虚拟主机配置插入,确保将其替换为您的实际域名:

<VirtualHost *:80>
    ServerName your-domain.com
    ServerAlias www.your-domain.com

    DocumentRoot /var/www/your-laravel-app/public

    <Directory /var/www/your-laravel-app/public>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用新站点并重写模块:

sudo a2ensite your-laravel-app
sudo a2enmod rewrite
sudo systemctl restart apache2

步骤 3:安装 Let’s Encrypt 并获取 SSL 证书

安装 certbot 工具和 Apache 插件:

sudo apt-get update
sudo apt-get install python-certbot-apache

运行Certbot以获取SSL证书:

sudo certbot --apache -d your-domain.com -d www.your-domain.com

请遵循提示,选择以下选项以将HTTP流量重定向到HTTPS,从而确保您的站点安全。

Let’s Encrypt 的 Certbot 会在证书到期前自动续期,确保您的站点始终安全。

第4步:Laravel 配置和优化

请在 .env 文件中正确配置数据库和其他环境变量:

APP_ENV=production
APP_DEBUG=false
APP_KEY=SomeRandomString

优化你的Laravel应用程序以适应生产环境:

php artisan optimize
php artisan config:cache
php artisan route:cache
php artisan view:cache

确保设置适当的权限:

sudo chown -R www-data:www-data /var/www/your-laravel-app
sudo chmod -R 755 /var/www/your-laravel-app
sudo chmod -R 777 /var/www/your-laravel-app/storage
sudo chmod -R 777 /var/www/your-laravel-app/bootstrap/cache

高级配置

如果你需要更复杂的配置,例如负载均衡、反向代理配置或额外的安全措施,请参见以下示例:

为了设置一个反向代理,使用Apache:

<IfModule mod_proxy.c>
    <Proxy *>
        Require all granted
    </Proxy>
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/
</IfModule>

为了添加额外的头信息以提高安全性:

Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

启用这些头信息:

sudo a2enmod headers
sudo systemctl restart apache2

结论。

您已成功部署并安全地运行了您的Laravel应用程序,使用Apache和Let’s Encrypt。现在,您的应用在生产服务器上运行,拥有一个SSL证书,确保所有通信都加密且安全。

长工码奴1523

长工码奴1523

Apache 是一种非常流行的 Web 服务器软件,而 Let’s Encrypt 是一个免费的 CA(证书授权)服务,用于颁发安全的 SSL/TLS 证书。以下是如何在生产环境中使用这两个工具来部署 Laravel 应用程序的步骤:

步骤 1: 安装和配置 Apache

首先,确保您的服务器上安装了 Apache HTTP Server。您可以通过运行以下命令进行安装:

sudo apt-get update && sudo apt-get install apache2

然后,打开终端并输入以下命令来启动 Apache 服务器:

sudo systemctl start apache2

接下来,编辑 /etc/apache2/sites-available/000-default.conf 文件,并添加以下内容以启用 Laravel:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/laravel
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateFile /path/to/cert.pem
        SSLCertificateKeyFile /path/to/private.key
    </VirtualHost>
</IfModule>

步骤 2: 使用 Let’s Encrypt 颁发 SSL/TLS 证书

访问 Let’s Encrypt 网站(https://letsencrypt.org/),按照指示注册域名。然后创建一个自签名证&#20070;。

  • 在浏览器中输入 https://www.example.com/
  • 在右上角找到“SSL Certificates”选项卡。
  • 选择“Generate a self-signed certificate”。
  • 输入您想要的域名和密钥对。
  • 单击“Create”按钮。

这将生成一个名为 example.com-selfsigned.crt 的文件和 example.com-selfsigned.key 的私钥文件。

步骤 3: 启动 Laravel 服务

在 Laravel 项目根目录下,执行以下命令来启动应用程序:

php artisan serve --ansi

现在,Laravel 应用已成功部署到 Apache 上,它使用 Let’s Encrypt 证书提供 SSL/TLS 加密。通过这种方式,您可以放心地将 Laravel 应用部署到生产环境。