# 搭建ThinkPHP框架
#### 简介
ThinkPHP遵循Apache2开源许可协议发布，是一个免费、开源、快速、简单的面向对象的轻量级PHP开发框架，是为了敏捷WEB应用开发和简化企业应用开发而诞生。本文介绍如何在华为云上使用CentOS 7.2操作系统的实例搭建ThinkPHP框架。
#### 前提条件
- 已购买一台弹性云服务器，且已为其绑定弹性公网IP。
- 弹性云服务器所在安全组添加了如下表所示的安全组规则，具体步骤参见[为安全组添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)。
  表1安全组规则 
  | 方向  | 优先级 | 策略 | 类型   | 协议端口    | 源地址        |
  |:---|:---|:---|:---|:---|:---|
  | 入方向  | 1       | 允许   | IPv4   | TCP: 22 | 0.0.0.0/0   |
  | 入方向 | 1     | 允许     | IPv4 | TCP: 443  | 0.0.0.0/0 |
  | 入方向                       | 1       | 允许     | IPv4                          | TCP: 8000                       | 0.0.0.0/0                        |
     
  
- 为了更好地获取和更新系统和软件，建议您更新镜像源为华为云镜像源，详细操作，请参见[如何使用华为云开源镜像配置yum源(x86_64和鲲鹏)？](https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0118948562.html)。
 
#### 资源和成本规划
本次实践所用的资源配置及软件版本如[表2]中所示。当您使用不同的硬件规格或软件版本时，本指导中的命令及参数可能会发生改变，需要您根据实际情况进行调整。
 表2资源和成本规划 
| 资源     | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 成本说明                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| 虚拟私有云VPC | VPC网段：192.168.0.0/16                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 免费                                                                                                                                                                                                                                                                                                                                                                                   |
| 虚拟私有云子网  | - 可用区：可用区1  - 子网网段：192.168.0.0/24                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 免费                                                                                                                                                                                                                                                                                                                                                                                   |
| 弹性云服务器    | - 计费模式：包年/包月  - 可用区：可用区1  - 规格：c7.large.2  - 镜像：CentOS 7.2 64bit  - 系统盘：40G  - 弹性公网IP：现在购买  - 线路：全动态BGP  - 公网带宽：按流量计费  - 带宽大小：5 Mbit/s   | ECS涉及以下几项费用： - 云服务器  - 云硬盘  - 弹性公网IP   具体的计费方式及标准请参考[计费模式概述](https://support.huaweicloud.com/price-ecs/ecs_billing_2001.html)。 |
| PHP      | 是一款开源软件，用于Web开发。 获取方式： <https://rpms.remirepo.net/enterprise/remi-release-7.rpm>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 免费                                                                                                                                                                                                                                                                                                                                                                                      |
| Composer   | Composer是PHP编程语言的包管理器，提供管理PHP软件依赖和所需库的标准格式。 获取方式： <https://getcomposer.org/installer>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 免费                                                                                                                                                                                                                                                                                                                                                                                       |
| ThinkPHP    | 面向对象的轻量级PHP开发框架。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 免费                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 操作步骤
1. 登录弹性云服务器。 具体操作请参见[Linux ECS登录方式概述](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0013771089.html)。
   
2. 安装PHP。
   1. 执行以下命令，安装EPEL源和Remi仓库。
      ```
      sudo yum install -y epel-release
      sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
      ```
      
   
   2. 执行以下命令，启用PHP 8.0仓库。
      ```
      sudo yum -y install yum-utils
      sudo yum-config-manager --enable remi-php80
      ```
      
   
   3. 执行以下命令，安装PHP。
      ```
      sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
      ```
      
   
   4. 执行以下命令，验证PHP的安装版本。
      ```
      php -v
      ```
      回显如下类似信息：
      ```
      PHP 8.0.30 (cli) (built: Jun  4 2024 15:19:49) ( NTS gcc x86_64 )
      Copyright (c) The PHP Group
      Zend Engine v4.0.30, Copyright (c) Zend Technologies
      ```
      
    
3. 安装Composer。
   1. 执行以下命令，安装Composer所需依赖。
      ```
      sudo yum install -y unzip git
      ```
      
   
   2. 执行以下命令，安装Composer。
      ```
      curl -sS https://getcomposer.org/installer | php
      sudo mv composer.phar /usr/local/bin/composer
      ```
      
   
   3. 执行以下命令，查看Composer版本。
      ```
      composer --version
      ```
      回显如下类似信息：
      ```
      Composer version 2.7.7 2024-06-10 22:11:12
      PHP version 8.0.30 (/usr/bin/php)
      ```
      
    
4. 安装ThinkPHP。
   1. 使用Composer创建一个新的ThinkPHP应用程序。 该命令会在当前目录下创建一个名为my-thinkphp-app的目录，并下载ThinkPHP的核心文件和依赖项。
      ```
      composer create-project topthink/think my-thinkphp-app
      ```
      
   
   2. 切换到新创建的ThinkPHP应用程序目录，启动ThinkPHP内置服务器进行开发。
      ```
      cd my-thinkphp-app
      php think run
      ```
      回显如下类似信息，表示ThinkPHP已启动。
      ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001971716197.png "点击放大")
      
   
   3. 安装完成后，可通过浏览器访问"http://*云服务器弹性公网IP* :8000"，显示如下页面，说明ThinkPHP安装成功。
      ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001941949950.png "点击放大")
      
    
 
#### 后续操作
更多ThinkPHP开发规范及目录结构说明，请参见[开发规范](https://doc.thinkphp.cn/v8_0/development_specifications.html)和[目录结构](https://doc.thinkphp.cn/v8_0/directory_structure.html)。
