logo

基础知识

创建网站

在您的 Forge 服务器上创建新网站时,您可以使用多种配置选项

  • 根域名:服务器应响应的域名。
  • 别名:网站应响应的其他域名。
  • 项目类型:此配置设置指示为您的网站安装的项目将是通用 PHP/Laravel/Symfony 项目还是静态 HTML 网站。此设置用于确定为您的网站创建的 Nginx 配置文件的结构。
  • Web 目录:可以通过互联网公开访问的目录。对于 Laravel 应用程序,这通常是/public目录。
  • PHP 版本:如果您在服务器上安装了多个版本的 PHP,您可以选择用于为网站提供服务的版本。
  • Nginx 模板: 如果您为服务器配置了任何Nginx 模板,您将可以选择一个作为网站的 Nginx 配置,否则 Forge 将使用其默认的 Nginx 配置为您新的网站。
  • 通配符子域名:此配置设置将使站点能够响应其配置的根域名下的任何子域名。
  • 网站隔离:此配置设置指示 PHP-FPM 进程是否应在其自己的用户帐户下运行。您可以通过查阅有关此功能的完整文档来了解更多关于网站隔离的信息。
  • 创建数据库:此设置指示您是否希望为您的站点创建一个新数据库。

自动重定向

在创建您的站点时,Forge 将自动从 www 子域名创建到根域名的重定向。例如,如果您创建了一个根域名是 example.com 的站点,Forge 将自动从 www.example.com 创建到 example.com 的重定向。同样,如果您的站点的域名是 www.example.com,Forge 将自动从 example.com 创建到 www.example.com 的重定向。

圈子权限

您可以通过授予 site:createsite:delete 权限来授予圈子成员创建和删除站点的权限。

应用程序/项目

在 Forge 中创建站点后,您可以安装应用程序或项目。项目包含应用程序的实际源代码。Forge 可以安装三种类型的应用程序:存在于Git 仓库中的应用程序、WordPressphpMyAdmin

Git 仓库

源代码控制提供商

在安装 Git 仓库之前,您必须首先确保已将源代码控制提供商连接到您的 Forge 帐户。

连接源代码控制提供商帐户后,您可以从可用选项中选择提供商。如果您自托管自己的代码或使用 Forge 不提供第一方支持的提供商,您可以选择自定义选项。使用 Bitbucket 或自定义提供商选项时,您需要手动将 Forge SSH 密钥添加到提供商。

您还需要提供仓库名称。对于 GitHub、GitLab 和 Bitbucket 提供商,您应该以 user/repository 格式提供名称,例如 laravel/laravel。自托管项目应使用完整的 SSH URL,例如 [email protected]:laravel/laravel.git

在安装仓库之前,您还可以决定是否安装 Composer 依赖项。如果您的项目不包含 composer.json 文件,您应该取消选中此选项。

部署密钥

有时您可能希望只授予 Forge 用户访问特定存储库的权限。这通常通过在存储库的 GitHub、GitLab 或 Bitbucket 仪表板中将 SSH 密钥添加到该存储库的“部署密钥”来实现。

在将新站点添加到服务器时,您可以选择为该应用程序生成部署密钥。密钥生成后,您可以通过源代码控制提供商的仪表板将其添加到您选择的存储库中,从而允许服务器克隆该特定存储库。

WordPress

Forge 还可以为您安装 WordPress,以便您可以立即开始撰写您的下一篇博文。

如果您尚未这样做,您应该 创建一个新的数据库 和数据库用户。WordPress 使用它来存储您所有的博文。

WordPress 安装完成后,您可以访问您网站的域名,并从浏览器中继续 WordPress 安装。

在为您的网站安装 WordPress 时,Forge 还会安装 WordPress CLI,以便您可以使用 wp 终端命令管理您的安装。

保护 WordPress

您应该在 Forge 为您安装 WordPress 后立即继续安装 WordPress,以便使用您的用户名和密码使其安全。您也可以选择在安装 WordPress 之前创建一个新的 安全规则,以便您的安装受到密码保护。

phpMyAdmin

Forge 还支持安装 phpMyAdmin,以便您可以从任何地方管理您的数据库。

如果您尚未这样做,您应该 创建一个新的数据库 和数据库用户。phpMyAdmin 使用它来存储您的数据库和用户的配置。

Forge 安装 phpMyAdmin 后,您可以使用任何数据库用户名和密码组合登录您的安装。

服务器大小

一些非常小的服务器尺寸,例如 AWS 上的 t2.nano,没有足够的资源来运行像 phpMyAdmin 这样的应用程序。

默认站点

当您最初配置 Forge 服务器时,Forge 会在服务器上创建一个名为 default 的单个站点。可以通过在您的网络浏览器中访问服务器的 IP 地址来访问此站点。这很方便,因为有时您可能在配置后立即没有要与特定服务器关联的特定域名。

当您准备好将应用程序迁移到官方域名时,您可以在站点管理面板的 **设置** 选项卡中重命名站点。重命名站点后,您将无法再使用服务器的 IP 地址访问它。重命名站点后,您应该为指向服务器 IP 地址的域添加 DNS A 记录。

Nginx 配置

以下是 Laravel Forge 使用的默认 Nginx 站点配置示例。 其他 Nginx 模板 可以使用服务器管理面板中的“Nginx 模板”面板在 Forge 中创建。

nginx
# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/your-domain.com/before/*;

server {
    listen 80;
    listen [::]:80;
    server_name your-domain.com;
    server_tokens off;
    root /home/forge/your-domain.com;

    # FORGE SSL (DO NOT REMOVE!)
    # ssl_certificate
    # ssl_certificate_key

    ssl_protocols TLSv1.2 TLSv1.3;
    # ssl_ciphers XXXXXXX
    ssl_prefer_server_ciphers off;
    ssl_dhparam /etc/nginx/dhparams.pem;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index index.htm index.php;

    charset utf-8;

    # FORGE CONFIG (DO NOT REMOVE!)
    include forge-conf/your-domain.com/server/*;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/your-domain.com-error.log error;

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/your-domain.com/after/*;

创建站点后,您可以逐个站点地编辑 Nginx 配置。这可以通过访问站点管理面板右上角的 **编辑文件** 下拉菜单并使用 **编辑 Nginx 配置** 操作来完成。

防止未配置的域名

配置服务器时,Forge 会自动在 /etc/nginx/sites-available/000-catch-all 为您的服务器创建一个“通配符”站点。这是一个特殊的站点,用于阻止未在您的服务器上配置的域名被提供服务。此站点将对任何与已配置域名不匹配的请求返回特殊的 Nginx 444 状态代码。

PHP 版本

如果您的服务器安装了 多个版本的 PHP,您可以随时使用 Forge 仪表板中站点的 **设置** 选项卡来切换站点使用的版本。

更改站点的已安装 PHP 版本

当切换网站使用的版本时,您应该确保您的服务器已安装该版本所需的任何其他 PHP 扩展/模块。未安装额外的模块可能会导致您的网站无法响应。

您还需要更新网站的 部署脚本 以重新加载正确的 PHP-FPM 版本并在运行任何 PHP 命令时调用正确的 PHP 版本。

维护模式

如果您已部署 Laravel 应用程序,Forge 允许您使用 Laravel 的维护模式功能。在网站的 App 选项卡中单击 启用维护模式 按钮将在您的应用程序中运行 php artisan down Artisan 命令,这将使您的网站不可用。当网站处于维护模式时,您可以单击 禁用维护模式 按钮使您的网站再次可用。

维护模式“秘密”

Laravel 8.0+ 应用程序可以使用“秘密”选项绕过维护模式。在 Laravel 的旧版本中使用此选项不受支持。

网站日志

Forge 还提供从仪表板中查看网站日志文件的功能。

出于性能原因,Forge 仅返回文件中的最后 500 行。日志文件路径将在下拉菜单和日志输出底部显示。

仅 Laravel 日志文件

Forge 只能显示来自 Laravel 5+ 应用程序的日志文件。支持 dailysingle 日志格式。Forge 将自动读取最后更新的文件。