thinkphp 可执行文件think

这篇具有很好参考价值的文章主要介绍了thinkphp 可执行文件think。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

think 是一个可执行文件,位置:网站根目录

内容:1 定义项目路径 2 加载cll框架文件

thinkphp 可执行文件think,php

shell脚本里第一行的:#!/usr/bin/env php 什么意思

这句#!的含义就是,按照环境变量PATH寻找第一个php程序来执行。

#!/usr/bin/php表示,直接使用/usr/bin/php来执行脚本,但是这个路径下没有php可执行命令呢?就会报错

最近在写PHP脚本发现有些脚本有这么个写法,长见识了。

脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它。比如php脚本的第一行可以写成如下几种格式

#!/usr/bin/php

#!/usr/bin/env php

#!/usr/bin/env -S -P/usr/local/bin:/usr/bin php

#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php

#!/usr/bin/env php写法的好处这种写法主要是为了让你的程序在不同的系统上都能适用。

不管你的php是在/usr/bin/php还是/usr/local/bin/php#!/usr/bin/env php会自动的在你的用户PATH变量中所定义的目录中寻找php来执行的。

加上-P参数使用来指定一些目录去寻找php这个程序#!/usr/bin/env -S -P/usr/local/bin:/usr/bin php的作用就是在/usr/local/bin和/usr/bin目录下寻找php。

为了让程序更加的有可扩展性,可以写成如下代码:

#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php

#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl

(-S-P之间没有空格)那么它除了在这两个目录寻找之外,还会在PATH变量中定义的目录中寻找。

#!/usr/bin/php写成 #!/usr/bin/env php会好些,当然更好的是#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php一般使用#!/usr/bin/env php这种写法就能兼容大部分服务器了。

同理,python脚本开头写法:

#!/usr/bin/env python

我的执行命令

cd /www/wwwroot/www.xxx.com/ 进入网站根目录(也就是think文件所在目录)

php think spider --user php软连接到php的安装目录下的可执行文件(/www/server/php/73/bin/php)上面已经解释过

env php think spider --user 这个和上面的直接用php执行在命令行下没有区别,都是从PATH环境变量里按顺序找php可执行命令,但是如果是在shell脚本就有区别了,详情请看shell脚本里第一行的:#!/usr/bin/env php 什么意思里的解释

/usr/bin/php think spider --user php软连接到php的安装目录下的可执行文件(/www/server/php/73/bin/php)

/www/server/php/73/bin/php think spider --user 直接用php的可执行文件执行

问题1

为什么必须要进入think文件所在的目录才能执行而写全路径就不可以 比如:env php /www/wwwroot/www.xxx.com/think spider --user

因为他的think可执行文件里 加载框架引导文件用的是.

// 加载框架引导文件

require './thinkphp/console.php';

你改成 require '/www/wwwroot/www.xxx.com/thinkphp/console.php';

或者__DIR__.'/thinkphp/console.php';

就可以用env php /www/wwwroot/www.xxx.com/think spider --user命令执行了,不用必须进入网站根目录了,只要写全路径就可以文章来源地址https://www.toymoban.com/news/detail-800605.html

到了这里,关于thinkphp 可执行文件think的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • thinkphp 命令行执行

    1 php 1 which php 查看命令来源 2 ll /usr/bin/php 软连接,来源是php的安装文件的可执行文件php 3 $PATH的作用, 显示当前PATH环境变量,该变量的值由一系列以冒号分隔的目录名组成如下, echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 当我们执行程序时,shell自动跟据PATH变量的值

    2024年01月18日
    浏览(40)
  • 让php开发更优雅-ThinkPHP篇

    随着开发经验的增加,也伴随团队开发的积累,规范开发显得越来越重要,本文给大家提供一些ThinkPHP框架开发API接口的进阶思路和经验,让大家开发更加统一规范,代码看起来更加优雅。 1.更多使用第三方库。团队开发的时候,各个人的开发经验和思考方式不同,也有一些

    2024年04月27日
    浏览(38)
  • ThinkPHP5远程命令执行漏洞

    ThinkPHP是一个快速、兼容而且简单的轻量级国产 PHP开发框架 ,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,使用面向对象的开发结构和 MVC模式 ,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式。 由于th

    2024年02月11日
    浏览(46)
  • PHP 使用ThinkPHP实现电子邮件发送示例

    在我们很多的程序中都需要发送邮件去提示用户一些相关信息,应用的范围还是很广的,比如:登录验证需要验证码,后台管理系统中有变更需要发送邮箱提示等,而且邮件的发送相较于短信发送成本更低,是 免费 的!! 那么要实现邮件发送需要做以下操作: 我这边使用的

    2024年02月13日
    浏览(48)
  • PHP:ThinkPHP6.0实现输出字段映射

    需求: 查询到list后,需要将 id 字段转换为 order_id sql查询字段别名 使用 append + hidden 在Model中配置数据输出字段映射

    2024年02月11日
    浏览(53)
  • CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

    小白一个,记录解题过程,如有错误请指正! 知识点:         eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入

    2024年02月01日
    浏览(45)
  • 原生PHP及thinkphp6接入阿里云短信

    申请accesskey 获取到Accesskey ID和Accesskey Secret保存下来,一会要用到 添加测试手机号,在接口测试能否正常发送 下载阿里云短信sdk,使用composer下载,没有安装请先安装 安装可以安装到任意文件夹下,后面代码写好后,直接复制到tp项目内就行,最新版本安装可能composer查找不

    2024年02月05日
    浏览(49)
  • ThinkPHP5.0.23 远程代码执行漏洞

    ThinkPHP 是一款运用极广的 PHP 开发框架。其 5.0.23 以前的版本中,获取 method 的方法中没有正确处理方法名,导致攻击者可以调用 Request 类任意方法并构造利用链,从而导致远程代码执行漏洞。 百度漏洞 获得exp 路径: POST传参 我用的是hackbar,用burpsuite也行。 burp操作方法 抓包

    2024年02月11日
    浏览(44)
  • ThinkPHP5.0.21远程命令执行漏洞

    漏洞出现的背景 : ThinkPHP是⼀款运⽤极⼴的PHP开发框架。 其5.0.23以前的版本中,获取method的⽅法中没有正确处理⽅法名, 导致攻击者可以调⽤Request类任意⽅法并构造利⽤链,从⽽导致远程代码执⾏漏洞。 由于ThinkPHP5框架对控制器名没有进⾏⾜够的安全检测,导致在没有开

    2024年02月04日
    浏览(43)
  • ThinkPHP5系列远程代码执行漏洞复现(详细)

    ThinkPHP是一款运用极广的PHP开发框架。其版本5中,由于框架对控制器名没有进行足够的检测,会导致在没有开启强制路由的情况下可执行任意方法,从而导致远程命令执行漏洞。 漏洞危害 启动环境 切换到/thinkphp/5.0.23-rce# 目录下 将version改为2,保存并退出 接着执行 此时环境

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包