从命令行运行PHP脚本

3

我正在与一位设计师合作开发一个PHP/MySQL网站,他希望有一些脚本可以让他更轻松地工作。他对于像git、SASS、node等命令行操作比较熟悉。我希望他能像运行程序一样来运行我的脚本,而不是通过PHP来运行。

因此,不再需要这样:

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

我想做这个:

myscript create_module module_name

在Apache服务器上,使用PHP可以实现这个吗?我知道我很可能需要修改服务器以正确解释它,这没问题。但我甚至不知道从哪里开始,也找不到我需要的东西。


myscript 应该做什么? - sberry
4个回答

3

你最好创建一个别名来解决问题。

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

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

cd /etc/
nano bash.bashrc

在文件最底部添加这行文字:
<p>在文件最底部添加这行文字:</p>
alias "myscript=php /path/to/file/create_module.php"

BASHRC是一个在用户登录时运行的脚本,所以别名将在每次用户登录系统时重新创建。


1
正是我所需要的,谢谢!只是请注意,如果您使用的是CentOS,则bash文件位于/etc/bashrc而不是/etc/bash.bashrc。 - Kyle Piontek

2

我不确定您希望myscript做什么,但是如果要通过命令行运行PHP脚本而不指定PHP二进制文件,只需添加一个shebang,例如:

#!/bin/env php
<?php

// The above expects env is in /bin

$foo = "bar";

或者,如果您喜欢,可以提供完整路径。

#!/usr/bin/php

不要忘记将文件设为可执行。 - Ikke
还要确保你的脚本是路径无关的。 - dualed

1

另一种选择:Shell脚本包装器

/bin或其他PATH目录中创建一个新的文本文件,命名为您想要调用脚本的名称,并将其内容设置为以下内容

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

不要忘记

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

这样做的好处是,您的PHP脚本在正确的目录中运行,可以期望其他资源存在并依赖于它们。

0
在 Linux 解决方案中:
/usr/bin/php /path/to/file.php

在 Windows 解决方案中:
C:\Path\To\PHPExe C:\Path\To\phpfile.php

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接