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

4
我已经创建了一个PHP脚本将RSS订阅导入到数据库中。这个订阅非常庞大(从2004年到2010年,约有200万条记录),必须插入到数据库中。我一直在浏览器中运行脚本,但是它的速度很慢(大约每秒钟1条记录),我怀疑即使我全天候运行,它也需要另外20-25天才能输入这些数据。我尝试在不同的浏览器窗口同时运行它,并且在过去的两天里只完成了70000条记录。我不确定如果我同时运行10-12个实例会对服务器产生什么影响。
我的客户端的程序员说我可以通过命令行直接在服务器上运行它。有人能告诉我如果我通过命令行运行它会有多大的区别吗?还有运行它的命令行语法是什么?我正在使用Apache、PHP/MySQL。我在网上搜索了类似的答案,但它们对我来说太混乱了,因为我不是系统管理员,也不是Linux方面很好的人,虽然我以前完成过像SVN存储库和在服务器上安装一些Apache模块等任务,所以如果有人告诉我如何做,我希望我能够应对。
5个回答

10

速度差异:微小。你所节省的是在NET I/O和连接上的阻塞时间(以及可以忽略不计的Apache开销)。

如何实现:

bash> php -f /path/to/my/php/script.php
你可能只安装了适用于Apache的php5-mod包,而需要安装实际的命令行解释器,尽管很多发行版都会同时安装两者。个人认为你在算法方面存在效率问题。花费数天的事情看起来可以通过缓存和最坏情况性能分析(大O符号表示法)来加速。

此外,PHP Vanilla并不是很快,有很多方法可以使其真正快速,但如果你正在进行大量计算,应该考虑C / C ++、C#/ Mono(也许)或Python(可以预编译,可能实际上并没有更快)。

但是,强烈建议探索这些其他出路。


3

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文件所在的位置。


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