ThinkPHP 安裝
1. 前言
上小節(jié)介紹了如何在 Windows 和 Linux 操作系統(tǒng)中安裝 Composer,本小節(jié)介紹如何使用 Composer 安裝 ThinkPHP 框架,Composer 安裝的好處是使用者不用關(guān)注依賴包中的依賴關(guān)系,只需要通過命令加載,然后直接使用即可。
2. ThinkPHP 框架安裝
2.1來到 ThinkPHP官網(wǎng),點(diǎn)擊 應(yīng)用框架GIT倉庫:

2.2 找到代碼倉庫下面的安裝命令并復(fù)制:

2.3 執(zhí)行上述命令之后即可開始下載 ThinkPHP6.0:
命令:composer create-project topthink/think tp 6.0.*

Tips: 若下載速度太慢,可能是
Composer源地址造成的,可自行上網(wǎng)查找切換Composer地址源的方法。
3. ThinkPHP 安裝視頻
4. ThinkPHP 框架目錄介紹
下面列出 ThinkPHP6.0 框架目錄名稱和說明:
4.1 單應(yīng)用模式
默認(rèn)安裝后的目錄結(jié)構(gòu)就是一個(gè)單應(yīng)用模式:
| 目錄名稱 | 功能與作用描述 |
|---|---|
| ├─app | 應(yīng)用目錄 |
| │ ├─controller | 控制器目錄 |
| │ ├─model | 模型目錄 |
| │ ├─ … | 更多類庫目錄 |
| │ ├─common.php | 公共函數(shù)文件 |
| │ └─event.php | 事件定義文件 |
| ├─config | 配置目錄 |
| │ ├─app.php | 應(yīng)用配置 |
| │ ├─cache.php | 緩存配置 |
| │ ├─console.php | 控制臺(tái)配置 |
| │ ├─cookie.php | Cookie 配置 |
| │ ├─database.php | 數(shù)據(jù)庫配置 |
| │ ├─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 目錄(對(duì)外訪問目錄) |
| │ ├─index.php | 入口文件 |
| │ ├─router.php | 快速測(cè)試文件 |
| │ └─.htaccess | 用于 apache 的重寫 |
| ├─extend | 擴(kuò)展類庫目錄 |
| ├─runtime | 應(yīng)用的運(yùn)行時(shí)目錄(可寫,可定制) |
| ├─vendor | Composer 類庫目錄 |
| ├─.example.env | 環(huán)境變量示例文件 |
| ├─composer.json | composer 定義文件 |
| ├─LICENSE.txt | 授權(quán)說明文件 |
| ├─README.md | README 文件 |
| ├─think | 命令行入口文件 |
4.2 多應(yīng)用模式
若需要一個(gè)多應(yīng)用的項(xiàng)目架構(gòu),目錄結(jié)構(gòu)可以參考下面的結(jié)構(gòu)進(jìn)行調(diào)整:
| 目錄名稱 | 功能與作用描述 |
|---|---|
| ├─app | 應(yīng)用目錄 |
| │ ├─app_name | 應(yīng)用目錄 |
| │ │ ├─common.php | 函數(shù)文件 |
| │ │ ├─controller | 控制器目錄 |
| │ │ ├─model | 模型目錄 |
| │ │ ├─view | 視圖目錄 |
| │ │ ├─config | 配置目錄 |
| │ │ ├─route | 路由目錄 |
| │ │ └─ … | 更多類庫目錄 |
| │ ├─common.php | 公共函數(shù)文件 |
| │ └─event.php | 事件定義文件 |
| ├─config | 全局配置目錄 |
| │ ├─app.php | 應(yīng)用配置 |
| │ ├─cache.php | 緩存配置 |
| │ ├─console.php | 控制臺(tái)配置 |
| │ ├─cookie.php | Cookie 配置 |
| │ ├─database.php | 數(shù)據(jù)庫配置 |
| │ ├─filesystem.php | 文件磁盤配置 |
| │ ├─lang.php | 多語言配置 |
| │ ├─log.php | 日志配置 |
| │ ├─middleware.php | 中間件配置 |
| │ ├─route.php | URL 和路由配置 |
| │ ├─session.php | Session 配置 |
| │ ├─trace.php | Trace 配置 |
| │ └─view.php | 視圖配置 |
| ├─public | WEB 目錄(對(duì)外訪問目錄) |
| │ ├─index.php | 入口文件 |
| │ ├─router.php | 快速測(cè)試文件 |
| │ └─.htaccess | 用于 apache 的重寫 |
| ├─extend | 擴(kuò)展類庫目錄 |
| ├─runtime | 應(yīng)用的運(yùn)行時(shí)目錄(可寫,可定制) |
| ├─vendor | Composer 類庫目錄 |
| ├─.example.env | 環(huán)境變量示例文件 |
| ├─composer.json | composer 定義文件 |
| ├─LICENSE.txt | 授權(quán)說明文件 |
| ├─README.md | README 文件 |
| ├─think | 命令行入口文件 |
Tips:多應(yīng)用模式部署后,記得刪除
app目錄下的controller目錄(系統(tǒng)根據(jù)該目錄作為判斷是否單應(yīng)用的依據(jù))。在實(shí)際的部署中,請(qǐng)確保只有public目錄可以對(duì)外訪問。在mac或者linux環(huán)境下面,注意需要設(shè)置runtime目錄權(quán)限為777。
4.3 默認(rèn)應(yīng)用文件
默認(rèn)安裝后,app 目錄下會(huì)包含下面的文件:
| 文件名稱 | 功能與作用描述 |
|---|---|
| ├─app | 應(yīng)用目錄 |
| │ ├─BaseController.php | 默認(rèn)基礎(chǔ)控制器類 |
| │ ├─ExceptionHandle.php | 應(yīng)用異常定義文件 |
| │ ├─common.php | 全局公共函數(shù)文件 |
| │ ├─middleware.php | 全局中間件定義文件 |
| │ ├─provider.php | 服務(wù)提供定義文件 |
| │ ├─Request.php | 應(yīng)用請(qǐng)求對(duì)象 |
| │ └─event.php | 全局事件定義文件 |
Tips:
provider.php服務(wù)提供定義文件只能全局定義,不支持在應(yīng)用下單獨(dú)定義。
5. 項(xiàng)目根目錄設(shè)置
5.1 nginx 設(shè)置根目錄
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后面的路徑就是項(xiàng)目根目錄,可以看到ThinkPHP框架中public為根目錄,在public目錄中有一個(gè)index.php入口文件。
5.2 apache 設(shè)置根目錄
<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為網(wǎng)站根目錄,需要根據(jù)自己本機(jī)實(shí)際路徑配置。
6. url 重寫
6.1 nginx 設(shè)置 url 重寫
location / { // …..省略部分代碼
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
6.2 apache 設(shè)置 url 重寫
新建 .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>
6.3 iis 設(shè)置 url 重寫
在 IIS 的高版本下面可以配置 web.Config,在中間添加 rewrite 節(jié)點(diǎn):
<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>
7. 小結(jié)
本小節(jié)介紹了如何使用 Composer 命令安裝 ThinkPHP6.0 框架,安裝完成之后,默認(rèn)是單應(yīng)用模式的目錄結(jié)構(gòu),若想改成多應(yīng)用目錄結(jié)構(gòu)可按照本小節(jié)介紹的目錄結(jié)構(gòu)進(jìn)行調(diào)整,需要注意的是單應(yīng)用模式調(diào)整為多應(yīng)用模式目錄,需要?jiǎng)h除 app 目錄下的 controller 目錄,本教程后續(xù)小節(jié)將使用默認(rèn)的單應(yīng)用模式。
愛因詩賢 ·
2025 imooc.com All Rights Reserved |