Fork me on GitHub

Thinkphp6安装

官网

https://www.thinkphp.cn/doc

Composer

Composer 是 PHP 的一个依赖管理工具,它允许你声明项目所需的库依赖,并且会为你安装它们。在许多方面,它与其他编程语言中的包管理工具类似,例如 Node.js 的 npm 或者 Python 的 pip。使用 Composer 可以使 PHP 开发变得更加高效、组织化,并且易于维护。

依赖管理: Composer 允许你在一个名为 composer.json 的文件中声明项目所需的依赖库,然后通过命令行工具安装或更新这些依赖。
自动加载: Composer 还能自动生成一个自动加载文件,这让你能够轻松地使用项目中的类库,而无需手动引入每个文件。
版本控制: 它支持语义版本控制和各种约束,让你可以精确地控制项目依赖的版本,确保兼容性和稳定性。
库的发现: 通过 Packagist(PHP 的官方包库),Composer 使得寻找、安装和使用包变得简单。Packagist 为 Composer 提供了一个中央库,其中包含了 PHP 社区提供的各种库和框架。
项目间共享: Composer 使得在不同项目间共享代码变得更加容易,因为你可以将常用的功能打包成库,并通过 Composer 进行管理和复用。

安装Composer

#下载composer.phar文件
curl -sS https://getcomposer.org/installer | php
#移动到usr/local/bin下面并重命名为composer
sudo mv composer.phar /usr/local/bin/composer

Thinkphp

安装稳定版

如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执行下面的命令:

composer create-project topthink/think tp

这里的tp目录名你可以任意更改,这个目录就是我们后面会经常提到的应用根目录。
如果你之前已经安装过,那么切换到你的应用根目录下面,然后执行下面的命令进行更新:

composer update

安装开发版

一般情况下,composer 安装的是最新的稳定版本,不一定是最新版本,如果你需要安装实时更新的版本(适合学习过程),可以安装6.0.x-dev版本。

composer create-project topthink/think=6.0.x-dev tp

image

目录结构

www WEB部署目录(或者子目录)
├─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 命令行入口文件

配置文件

image
由于架构设计原因,下面的配置只能在环境变量中修改。

app_debug	应用调试模式
config_ext	配置文件后缀

环境变量定义

可以在应用的根目录下定义一个特殊的.env环境变量文件,用于在开发过程中模拟环境变量配置(该文件建议在服务器部署的时候忽略),.env文件中的配置参数定义格式采用ini方式,例如:
APP_DEBUG = true

如果你的部署环境单独配置了环境变量( 环境变量的前缀使用PHP_),那么请删除.env配置文件,避免冲突。
环境变量配置的参数会全部转换为大写,值为 off,no 和 false 等效于 布尔值false,值为 yes 、on和 true 等效于 布尔值的true。

注意,环境变量不支持数组参数,如果需要使用数组参数可以,可以使用
[DATABASE]
USERNAME = root
PASSWORD = 123456
如果要设置一个没有键值的数组参数,可以使用
PATHINFO_PATH[] = ORIG_PATH_INFO
PATHINFO_PATH[] = REDIRECT_PATH_INFO
PATHINFO_PATH[] = REDIRECT_URL
获取环境变量的值可以使用下面的方式获取:

Env::get('database.username');
Env::get('database.password');
Env::get('PATHINFO_PATH');
要使用Env类,必须先引入think\facade\Env。

环境变量的获取不区分大小写
// 获取环境变量 如果不存在则使用默认值root
Env::get('database.username', 'root');
可以直接在配置文件中使用环境变量进行本地环境和服务器的自动配置,例如:
return [
'hostname' => Env::get('hostname','127.0.0.1'),
];

开启调试模式

应用默认是部署模式,在开发阶段,可以修改环境变量APP_DEBUG开启调试模式,上线部署后切换到部署模式。

本地开发的时候可以在应用根目录下面定义.env文件。
image

通过create-project安装后在根目录会自带一个.example.env文件(环境变量示例),可以直接更名为.env文件并根据你的要求进行修改,示例文件已经开启调试模式
image

测试运行

php think run
php think run -p 80

image

nginx部署

    server {
        listen       8028;
        server_name  localhost;


        root   /opt/homebrew/var/www/tp/public;
        location / {
            index  index.html index.htm;
	        # 主要是这个是新加的起作用的,
            if (!-e $request_filename) {
	            rewrite  ^(.*)$  /index.php?s=/$1  last;
		        break;
	        }
        }

        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9999;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

    }

出现问题

查看日志

tail -f root /opt/homebrew/var/log/nginx/error.log

No input file specified.

image

查看日志内容如下FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(//.php) is not within the allowed path(s)
image
找到/public/.user.ini将此文件移除即可
image

posted @ 2024-02-26 19:38  秋夜雨巷  阅读(5)  评论(0编辑  收藏  举报