从命令行运行PHP脚本

时间:2012-12-21 17:11:16

标签: php apache

所以我在一个PHP / MySQL网站上与设计师合作,他希望有一些脚本让他的生活更轻松。他非常适合使用git,SASS,node等东西的命令行。我希望他能像运行程序一样运行我的脚本,而不是通过PHP运行它。

所以不要这样:

php /path/to/file/create_module.php module_name

我想这样做:

myscript create_module module_name

是否可以在Apache服务器上使用PHP执行此操作?我知道我很可能必须修改服务器才能正确解释它,这很好。我甚至不知道从哪里开始,也无法在Google上找到我需要的东西。

4 个答案:

答案 0 :(得分:3)

您最好的选择是创建alias

因此,myscript的别名实际上会指向命令:php /path/to/file/create_module.php,然后任何额外的参数将作为类型传递。

在命令行中,执行以下操作:

cd /etc/
nano bash.bashrc

在文件的最底部,添加以下文本:

alias "myscript=php /path/to/file/create_module.php"

BASHRC是一个在用户登录时运行的脚本,因此每次用户登录系统时都会重新创建别名。

答案 1 :(得分:2)

我不确定你在寻找myscript要做什么,但是要通过命令行运行php脚本而不指定php二进制文件,只需添加一个shebang,如

#!/bin/env php
<?php

// The above expects env is in /bin

$foo = "bar";

如果您愿意,可以选择完整路径

#!/usr/bin/php

答案 2 :(得分:1)

另一个选项:Shell脚本包装器

/binPATH中的另一个目录中创建一个新文本文件,将其命名为您要调用脚本的方式并为其提供此内容

#!/bin/bash
cd /path/to/your/php/scripts/folder
php script.php $*

别忘了

chmod a+x /path/to/bash/script

这样做的好处是,您的PHP脚本在正确的目录中运行,在该目录中可能会有其他资源依赖于它。

答案 3 :(得分:0)

在Linux解决方案上:

/usr/bin/php /path/to/file.php

在Windows解决方案上:

C:\Path\To\PHPExe C:\Path\To\phpfile.php