> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 在 Square Cloud 上使用 PHP 快速入门

> 了解如何在 Square Cloud 上使用 PHP 快速入门

## 🚀 简介

* 开始之前，请确保你的系统已安装 PHP。如果尚未安装，可以从 [PHP 官方网站](https://www.php.net/)下载。
* 接下来，你需要在 Square Cloud 上创建一个账户，可以通过[登录页面](https://squarecloud.app/zh/signup)完成。你可以使用邮箱、GitHub 或两者结合来创建账户。
* 最后，你的账户需要拥有一个有效的付费套餐。你可以在[这里](https://squarecloud.app/zh/pricing)查看我们的套餐并根据需求购买。

## ⚙️ squarecloud.app 文件配置

<Note>
  如果你通过 Square Cloud 网站上传应用，可以忽略本节内容。网站会自动为你创建 `squarecloud.app` 配置文件。
</Note>

<Card title="了解更多：如何为 Square Cloud 创建配置文件。" icon="link" href="https://docs.squarecloud.app/zh/getting-started/config-file">
  squarecloud.app 文件是一个配置文件，用于配置你的应用；它用来定义名称、描述、
  版本、主文件等内容。
</Card>

## 📄 必需文件

* index.php（主文件示例）。
* `composer.json`（依赖文件，*可选*）。
* [squarecloud.app](https://docs.squarecloud.app/zh/getting-started/config-file)（包含 Square Cloud 配置的文件）。

## ▶️ 如何启动你的应用

* 如果配置文件中未定义 `START` 字段，将使用命令 `php -S 0.0.0.0:80` 启动一个本地 PHP 服务器。如果定义了 `START` 字段，则会直接执行其中的值。有关配置文件参数的更多信息，请访问[配置参数](https://docs.squarecloud.app/zh/getting-started/config-file#configuration-parameters)。

* 如果存在 `composer.json` 文件，将使用命令 `php composer.phar install` 安装所有依赖。

## PHP 与 Swoole

* Swoole 是一款提升标准 PHP 性能的工具，使 Web 服务器能够异步处理多个请求。

* 借助该工具，你可以创建微服务、websocket、后台队列等。它还允许你像 JavaScript 那样执行事件。

* 值得一提的是，Swoole 与其他 PHP 框架兼容。一个很好的 PHP 框架示例是 Laravel，它借助 Octane 与 Swoole 兼容。

* 你可以通过定义自定义的 START 命令来使用它替代标准 PHP 服务器。示例：

```bash theme={null}
npm run build && composer install --no-interaction --prefer-dist --optimize-autoloader && php artisan optimize && php artisan migrate --force && php -v && php artisan octane:start --host=0.0.0.0 --port=80 --workers=4 --task-workers=8 --server=swoole
```

* 你可以在[这里](https://www.php.net/manual/en/book.swoole.php)查看 Swoole 的所有强大功能。

## 🖥️ 准备项目

在将项目托管到 Square Cloud 之前，请先检查项目文件是否已正确配置以便托管。

如果你的项目包含 `composer.json` 文件，Square Cloud 将使用 Composer 自动安装依赖。但是，如果你的项目还有 Node 依赖（即 `package.json`），你必须在 `squarecloud.app` 文件的 `START` 字段中指定安装过程。例如：

```plaintext theme={null}
START=npm install && php .....
```

<Warning>配置文件（`squarecloud.app/.config`）必须位于 zip 文件的根目录。否则，Square Cloud 在 deploy 期间将无法找到它。</Warning>

## 📤 如何托管你的项目

现在你已经为 PHP 项目准备好了所有文件，下一步就是将它们上传到 Square Cloud 并让你的应用上线。上传方式有多种，但我们将介绍两种：通过 Dashboard 或通过 CLI。

### 通过控制面板

<Steps>
  <Step title="访问上传页面">
    访问[上传页面](https://squarecloud.app/zh/dashboard/new)并上传你的项目 zip 文件。
  </Step>

  <Step title="配置你的环境">
    上传 zip 后，你需要为项目配置名称、主文件或运行时环境以及其他设置。\
    如果你上传的是 Web 项目，请务必选择 "Web Publication" 并为项目设置子域名。
  </Step>

  <Step title="部署你的项目">
    最后，点击 "Deploy" 按钮，即可将项目托管到 Square Cloud。\
    部署完成后，你可以在控制面板中监控项目的状态和日志。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="正在上传应用到 Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### 通过 CLI

要使用此方法，你需要在项目根目录中创建一个名为 `squarecloud.app` 的配置文件。该文件将包含项目所需的配置。

<Card title="了解更多：如何为 Square Cloud 创建配置文件。" icon="link" href="/zh/getting-started/config-file">
  squarecloud.app 文件是一个配置文件，用于配置你的应用；它将用于定义你的环境。
</Card>

<Steps>
  <Step title="安装 CLI">
    首先，你的环境中需要已安装 CLI。如果尚未安装，请在终端中运行以下命令：

    ```
    npm install -g @squarecloud/cli
    ```

    如果你已经安装，我们建议对其进行更新。为此，请在终端中运行以下命令：

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux、macOS 和 WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="进行身份验证">
    现在，要进行身份验证并使用其他 CLI 命令，你可以在[此处](https://squarecloud.app/zh/account/security)点击 "Request API Key" 找到你的授权密钥。获取授权密钥后，运行以下命令：

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="上传你的项目">
    最后，要使用 CLI 将应用部署到 Square Cloud，你需要运行以下命令：

    ```bash theme={null}
    squarecloud upload 
    ```

    或者，如果你手动创建了 zip 文件，可以使用：

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## 联系我们

如果你仍然遇到**技术问题**，我们的**专业支持团队**可以为你提供帮助。[**联系我们**](https://squarecloud.app/zh/support)，我们很乐意协助你解决任何问题。
