thinkphp 可执行文件think

文章讲述了#!/usr/bin/envphp在shell脚本中的作用,即根据环境变量PATH寻找可执行的PHP程序,以及为何在think可执行文件中需要在网站根目录下运行。还讨论了不同PHP脚本执行方式和全路径执行的适用场景。
摘要由CSDN通过智能技术生成

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

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

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命令执行了,不用必须进入网站根目录了,只要写全路径就可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaopzi123123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值