ThinkPHP 安装
上小节介绍了如何在 Windows 和 Linux 操作系统中安装 Composer,本小节介绍如何使用 Composer 安装 ThinkPHP 框架,Composer 安装的好处是使用者不用关注依赖包中的依赖关系,只需要通过命令加载,然后直接使用即可。
2.1来到 ThinkPHP官网,点击 应用框架GIT仓库
:
2.2 找到代码仓库下面的安装命令并复制:
2.3 执行上述命令之后即可开始下载 ThinkPHP6.0
:
命令:composer create-project topthink/think tp 6.0.*
代码块预览 复制
Tips: 若下载速度太慢,可能是
Composer
源地址造成的,可自行上网查找切换Composer
地址源的方法。
下面列出 ThinkPHP6.0
框架目录名称和说明:
默认安装后的目录结构就是一个单应用模式:
目录名称 | 功能与作用描述 |
---|---|
├─app | 应用目录 |
│ ├─controller | 控制器目录 |
│ ├─model | 模型目录 |
│ ├─ … | 更多类库目录 |
│ ├─common.php | 公共函数文件 |
│ └─event.php | 事件定义文件 |
├─config | 配置目录 |
│ ├─app.php | 应用配置 |
│ ├─cache.php | 缓存配置 |
│ ├─console.php | 控制台配置 |
│ ├─cookie.php | Cookie 配置 |
│ ├─database.php | 数据库配置 |
│ ├─filesystem.php | 文件磁盘配置 |
│ ├─lang.php | 多语言配置 |
│ ├─log.php | 日志配置 |
│ ├─middleware.php | 中间件配置 |
│ ├─route.php | URL 和路由配置 |
│ ├─session.php | Session 配置 |
│ ├─trace.php | Trace 配置 |
│ └─view.php | 视图配置 |
├─view | 视图目录 |
├─route | 路由定义目录 |
│ ├─route.php | 路由定义文件 |
├─public | WEB 目录(对外访问目录) |
│ ├─index.php | 入口文件 |
│ ├─router.php | 快速测试文件 |
│ └─.htaccess | 用于 apache 的重写 |
├─extend | 扩展类库目录 |
├─runtime | 应用的运行时目录(可写,可定制) |
├─vendor | Composer 类库目录 |
├─.example.env | 环境变量示例文件 |
├─composer.json | composer 定义文件 |
├─LICENSE.txt | 授权说明文件 |
├─README.md | README 文件 |
├─think | 命令行入口文件 |
若需要一个多应用的项目架构,目录结构可以参考下面的结构进行调整:
目录名称 | 功能与作用描述 |
---|---|
├─app | 应用目录 |
│ ├─app_name | 应用目录 |
│ │ ├─common.php | 函数文件 |
│ │ ├─controller | 控制器目录 |
│ │ ├─model | 模型目录 |
│ │ ├─view | 视图目录 |
│ │ ├─config | 配置目录 |
│ │ ├─route | 路由目录 |
│ │ └─ … | 更多类库目录 |
│ ├─common.php | 公共函数文件 |
│ └─event.php | 事件定义文件 |
├─config | 全局配置目录 |
│ ├─app.php | 应用配置 |
│ ├─cache.php | 缓存配置 |
│ ├─console.php | 控制台配置 |
│ ├─cookie.php | Cookie 配置 |
│ ├─database.php | 数据库配置 |
│ ├─filesystem.php | 文件磁盘配置 |
│ ├─lang.php | 多语言配置 |
│ ├─log.php | 日志配置 |
│ ├─middleware.php | 中间件配置 |
│ ├─route.php | URL 和路由配置 |
│ ├─session.php | Session 配置 |
│ ├─trace.php | Trace 配置 |
│ └─view.php | 视图配置 |
├─public | WEB 目录(对外访问目录) |
│ ├─index.php | 入口文件 |
│ ├─router.php | 快速测试文件 |
│ └─.htaccess | 用于 apache 的重写 |
├─extend | 扩展类库目录 |
├─runtime | 应用的运行时目录(可写,可定制) |
├─vendor | Composer 类库目录 |
├─.example.env | 环境变量示例文件 |
├─composer.json | composer 定义文件 |
├─LICENSE.txt | 授权说明文件 |
├─README.md | README 文件 |
├─think | 命令行入口文件 |
Tips:多应用模式部署后,记得删除
app
目录下的controller
目录(系统根据该目录作为判断是否单应用的依据)。在实际的部署中,请确保只有public
目录可以对外访问。在mac
或者linux
环境下面,注意需要设置runtime
目录权限为777
。
默认安装后,app
目录下会包含下面的文件:
文件名称 | 功能与作用描述 |
---|---|
├─app | 应用目录 |
│ ├─BaseController.php | 默认基础控制器类 |
│ ├─ExceptionHandle.php | 应用异常定义文件 |
│ ├─common.php | 全局公共函数文件 |
│ ├─middleware.php | 全局中间件定义文件 |
│ ├─provider.php | 服务提供定义文件 |
│ ├─Request.php | 应用请求对象 |
│ └─event.php | 全局事件定义文件 |
Tips:
provider.php
服务提供定义文件只能全局定义,不支持在应用下单独定义。
server { listen 80; server_name tp6.com; #include https-ssl.conf; index index.html index.htm index.php; root /home/www/www/tp/public; location / { if ( $request_method = 'OPTIONS' ) { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,SALE-TOKEN,x-oss-pub-key-url,X_OSS_PUB_KEY_URL; add_header Access-Control-Allow-Methods GET,POST,OPTIONS,HEAD,PUT,DELETE; add_header Access-Control-Allow-Credentials true; return 200; } try_files $uri $uri/ /index.php?$query_string; } include denyrobots.conf; include enable-php.conf; access_log /home/wwwlog/nginx/access/api.com-access.log; }
代码块预览 复制
Tips: 其中
root
后面的路径就是项目根目录,可以看到ThinkPHP
框架中public
为根目录,在public
目录中有一个index.php
入口文件。
<VirtualHost *:80> DocumentRoot "E:/www/tp/public/tp6.com" ServerName tp6.com ServerAlias FcgidInitialEnv PHPRC "D:/soft/phpstudy_pro/Extensions/php/php7.4.3nts" AddHandler fcgid-script .php FcgidWrapper "D:/soft/phpstudy_pro/Extensions/php/php7.4.3nts/php-cgi.exe" .php <Directory "E:/www/tp/public/tp6.com"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted DirectoryIndex index.php index.html error/index.html </Directory> </VirtualHost>
代码块预览 复制
Tips: 其中
E:/www/tp/public/tp6.com
为网站根目录,需要根据自己本机实际路径配置。
location / { // …..省略部分代码 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } }
代码块预览 复制
新建 .htaccess
文件放到 public
根目录下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
代码块预览 复制
在 IIS
的高版本下面可以配置 web.Config
,在中间添加 rewrite
节点:
<rewrite> <rules> <rule name="OrgPage" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^(.*)$" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite>
代码块预览 复制
本小节介绍了如何使用 Composer
命令安装 ThinkPHP6.0
框架,安装完成之后,默认是单应用模式的目录结构,若想改成多应用目录结构可按照本小节介绍的目录结构进行调整,需要注意的是单应用模式调整为多应用模式目录,需要删除 app
目录下的 controller
目录,本教程后续小节将使用默认的单应用模式。
Tips: 代码仓库
Excel导入学生信息
Excel导出学生信息
后台处理数据