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

问题描述 投票:4回答:5

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

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

php mysql command-line rss
5个回答
9
投票

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

怎么做:

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

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

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

但强烈建议探索这些其他商店。


3
投票

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

php -f <YourScriptHere.php>

有关documentation的信息,请参阅more command line options


1
投票

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

php yourscript.php

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

php yourscript.php &

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

ps aux | grep yourscript.php

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


0
投票

在linux中:

php -f file.php

类型

php --help 

其他选择


0
投票

您可能还需要-n选项(没有php.ini文件)或选项来指定可以找到php-cli.iniphp.ini文件的位置。

© www.soinside.com 2019 - 2024. All rights reserved.