Thinkphp

秋夜雨巷 / 2024-02-26 / 原文

官网

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 topthink/framework

安装开发版

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

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

image

开启调试模式

应用默认是部署模式,在开发阶段,可以修改环境变量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