如何通过命令行在服务器上运行php脚本

时间:2010-05-25 18:51:13

标签: php mysql command-line rss

我创建了一个php脚本来将rss feed导入数据库。必须将数量巨大的饲料(从2004年到2010年,大约200万条记录)插入到数据库中。我一直在浏览器中运行脚本,但它插入的速度(大约每秒1次)我怀疑即使我每天24小时运行它也需要另外20-25天输入这些数据。我已经尝试在同一时间在不同的浏览器窗口上运行,并且在过去两天内仅完成了70000条记录。如果我同时运行10-12个实例,我不确定服务器会如何反应。

我客户端的程序员说我可以通过命令行直接在服务器上运行它。谁能告诉我,如果我通过命令行运行它会有多大的不同?还有什么命令行语法来运行它?我在apache,php / mysql。我尝试通过网络获得类似的答案,但它们似乎让我感到困惑,因为我不是系统管理员或Linux的好,虽然我已经完成了svn存储库和在服务器上安装一些apache模块等任务,所以我希望如果有人告诉我该怎么做,我可以管理这个。

4 个答案:

答案 0 :(得分:9)

速度差异:最小。您节省的只是阻止NET I / O和连接(以及可忽略不计的apache开销)。

怎么做:

bash> php -f /path/to/my/php/script.php

您可能只安装了php5-mod软件包,这是apache的php,您可能必须安装实际的命令行解释器,但是很多发行版都安装了这两个软件包。我个人认为你在算法中有一个效率问题。花费数天和数天的东西似乎可以通过缓存和加速来加速最坏情况的性能分析(Big-O表示法)。

另外,php vanilla不是很快,有很多方法可以让它变得非常快,但是如果你正在进行繁重的计算,你应该考虑c / c ++,C#/ Mono(也许),可能是python(可以预先编译,可能实际上不会更快。)

但强烈建议探索这些其他网点。

答案 1 :(得分:3)

仅提供要执行的文件名就足够了:

php -f <YourScriptHere.php>

请参阅documentationmore command line options

答案 2 :(得分:1)

要在命令行中运行php脚本,只需执行:

php yourscript.php

如果你想让这个过程在后台运行,请执行:

php yourscript.php &

然后,您可以同时运行多个进程。要标识当前正在运行的脚本实例,请执行:

ps aux | grep yourscript.php

但是,如果您认为需要太长时间,请尝试查看代码中是否存在任何瓶颈并对其进行优化。

答案 3 :(得分:0)

在linux中

php -f file.php

输入

php --help 

其他选项