thinkphp 可执行文件think

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

相关推荐

  1. thinphp 调用 \think\Log::write 写入回调日志信息

    2024-01-20 00:20:03       55 阅读
  2. Qt框架相关的执行文件

    2024-01-20 00:20:03       45 阅读
  3. 二进制执行文件的常见后缀

    2024-01-20 00:20:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 00:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 00:20:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 00:20:03       82 阅读
  4. Python语言-面向对象

    2024-01-20 00:20:03       91 阅读

热门阅读

  1. 黑马C++125-关系运算符重载-==

    2024-01-20 00:20:03       56 阅读
  2. OpenHarmony—Linux之系统调用

    2024-01-20 00:20:03       48 阅读
  3. linux上面hadoop配置集群

    2024-01-20 00:20:03       51 阅读
  4. 【MySQL】更改表的主键报错及解决办法

    2024-01-20 00:20:03       58 阅读
  5. uniapp 学习笔记

    2024-01-20 00:20:03       59 阅读
  6. IDA Pro 7.7和8.3共用方案

    2024-01-20 00:20:03       52 阅读
  7. 小程序显示兼容处理,home键处理

    2024-01-20 00:20:03       47 阅读
  8. 年终总结:我的2023编程之旅

    2024-01-20 00:20:03       55 阅读
  9. 介绍 TensorFlow 的基本概念和使用场景

    2024-01-20 00:20:03       56 阅读