从shell或apache服务器运行PHP脚本

时间:2013-02-11 09:18:50

标签: php mysql apache shell

我想知道是否可以从shell命令行执行PHP脚本。

从shell执行的脚本是否具有从浏览器执行的确切功能?或编码是否存在差异。

从shell运行脚本以提高性能是否更好?从windows或unix / linux运行它是否更好

我问所有这些问题因为,我想开发一个PHP脚本,可以从MySQL数据库中列出的一些网址的http标头中获取一些数据,然后将数据存储在数据库中。

你们能指出我正确的方向吗,我需要ubuntu,还是有一个可以从windows运行php的shell?我目前安装的只有WAMP,它有mysql,php和apache服务器。

我很抱歉成为一名新手。

感谢您的帮助

4 个答案:

答案 0 :(得分:3)

  

我想知道是否可以从shell命令行执行PHP脚本。

可以通过执行:

$ php -f your_script.php

或者通过将#/usr/bin/env php插入脚本的第一行并使其可执行。

$ head -n 1 your_sript.php
#/usr/bin/env php
$ chmod +x your_script.php
$ ./your_script.php

注意:此示例仅适用于UNIX系统。

  

从shell执行的脚本是否具有从浏览器执行的确切功能?或编码是否存在差异。

您可以使用相同的语法/函数等。唯一的区别是$argv中有命令行参数,$_SERVER变量中有一些其他值。

  

从shell运行脚本以提高性能是否更好?从windows或unix / linux运行它是否更好。

这并不重要。对于您的用例,您不需要Web服务器和全功能GUI。使用命令行工具的优点是,您可以将程序与grep等其他可用程序结合使用。

  

你们能指出我正确的方向吗,我需要ubuntu,还是有一个可以从windows运行php的shell?

您不需要ubuntu,也可以从Windows执行shell脚本。 PHP可执行文件位于%PATH%。这个问题可以帮助您做到这一点:https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them

然后只需打开cmd.exe并使用php -f your_script.php

执行脚本

答案 1 :(得分:3)

  

我想知道是否可以从shell命令行执行PHP脚本。

  

从shell执行的脚本是否具有从浏览器执行的确切功能?或编码是否存在差异。

它不会填充$_REQUEST和朋友,$_SERVER中也不会包含服务器信息。

  

从shell运行脚本以提高性能

是否更好?

也许。它避免了运行Web服务器的开销。它会阻止您在内存中缓存版本以便更快地重新执行。

  

并且最好从windows或unix / linux运行它

基准测试。

  

我问所有这些问题因为,我想开发一个PHP脚本,可以从MySQL数据库中列出的一些网址的http标头中获取一些数据,然后将数据存储在数据库中。

似乎没有必要让网络服务器参与其中。

  

你们能指出我正确的方向吗,我需要ubuntu,还是有一个可以从windows运行php的shell?

标准Windows shell可以。

  

目前我所拥有的只有WAMP,它有mysql,php和apache服务器。

您需要PHP的命令行版本。我不知道WAMP是否包括它。

答案 2 :(得分:1)

是的,PHP can be run from command line

不,编码没有任何差异。

唯一的区别是Apache不是运行脚本,而是您当前登录的用户。这可能意味着某些地图和文件夹具有不同的权限。

答案 3 :(得分:1)

是的,您可以使用以下命令从命令行执行PHP:

/path/to/php.exe /path/to/script.php

主要区别在于它不是通过Apache运行的,所以你不会有依赖它的东西(比如一些$_SERVER数据)。

除非您设置了PHP限制,否则它不会在命令行上超时。

请查看http://php.net/manual/en/features.commandline.php了解详情。