Leo*_*han 11 php windows xampp cron
我正在寻找一种使用PHP设置cron作业的方法.我想做的就是在特定时间运行PHP脚本.用户首先在脚本中输入时间,根据服务器运行脚本指定的时间.我正在使用Windows 7和xampp.
我发现的是:
创建一个调用cron.php文件的php文件:使用notepad(或其他),将以下内容粘贴到一个新文件中:$ data = file("http://pearl.supplychain.com/cron.php"); 你需要把它放在常规的php标签里,"少于标志"吗?php在前面,而且?最后"大于号".(我似乎不能只键入它,因为它是"可疑内容"而drupal不允许它)将它保存为executecron.php,与cron.php(htdocs)保存在同一目录中.
设置定期调用此任务的计划任务:
设置每日任务,从凌晨12:00开始,每半小时(或其他)运行一次,直到晚上11:59.告诉任务"运行"以下内容:
C:\cms\xampp\php\php.exe c:\cms\xampp\htdocs\executecron.php
Run Code Online (Sandbox Code Playgroud)
(在此系统上,php.exe安装在C:\ cms\xampp\php中,但您可能需要更改路径).
如你所见,要做到这一点,必须这样做 Open Start–All Programs–Accessories–System tools–Scheduled tasks.
可以通过PHP代码或使用其他方式来实现这一点吗?因为我想在php/server上完成所有工作而不需要我的用户自己配置cron作业.这意味着我想要我的PHP代码可以在服务器中设置cron,服务器会查看cron吗?
对stefgosselin:
创建批处理文件
Run Code Online (Sandbox Code Playgroud)Open Notepad. Paste the line "C:\xampp\php\php.exe C:\wamp\www\index.php" Click "File" -> "Save As" Ensure "Save as type:" is set to "All Files" Save the file as "cron.bat" to your C drive安排批处理文件运行
Run Code Online (Sandbox Code Playgroud)Open Command Prompt Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat" Press Enter This will make the script run every 20 minutes, the first time 20 minutes from now.
我能够使用php创建一个浴室文件,但是,有没有办法Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat
使用PHP而不是使用操作系统?谢谢
谢谢
Adr*_* P. 37
我在waytocode.com找到了我对这个问题的答案
他们提供了3种可能的解决方案来在Windows上运行cron作业:
解决方案-1使用任务调度程序
在Windows 7/windows 2005/2008中.
转到Startmenu-> All Programs-> Accessories-> System Tools-> Task Scheduler-> create Task
在新窗口中:
常规(给出任务名称并进行测试,您可以选择"用户登录时运行")
触发(您可以选择运行间隔为"每日,每周,每月".)
动作(这是最重要的部分.选择一个Mozilla firefox作为"程序/脚本",并在Argument中提供用Mozilla firefox启动的URL).
解决方案-2使用来自XAMPP服务器的Task调度程序和PHP
在Windows Xp中,无需复制或安装任何内容(已经在服务器上安装了PHP,如XAMPP)
转到任务调度程序
创建一个任务给出运行时间,然后在"运行"命令文本框类型的高级设置选项中
C:\xampp\php\php.exe -f c:/xampp/htdocs/waytocode/mycron.php
Run Code Online (Sandbox Code Playgroud)
在Windows 7/server 2005/2008中
无需复制或安装任何东西(已在服务器上安装PHP)
在"触发器"设置中创建任务给出运行时间.然后在"程序/脚本"命令文本框类型中的"操作"设置选项中
C:\xampp\php\php.exe
Run Code Online (Sandbox Code Playgroud)
并在"添加参数(可选)"类型中
-f c:/xampp/htdocs/mycron.php
Run Code Online (Sandbox Code Playgroud)
解决方案-3安装一个Windows exe文件,该文件将模拟来自*nix系统的cron作业
我不想将任何exe文件安装到我的服务器或开发机器上, 但我会提供他们发布的解决方案:
在Windows XP中,使用wget.exe将所有2个DLL文件复制到C:\ windows文件夹
在"运行"命令文本框类型中创建任务给出运行时间然后在高级设置选项中
C:\Windows\wget.exe -q -O NUL http://localhost/mycron.php
Run Code Online (Sandbox Code Playgroud)
在Windows 7/server 2005/2008中,使用wget.exe将所有2个DLL文件复制到C:\ windows文件夹
在"程序/脚本"命令文本框类型中创建一个任务给出运行时间然后在avanced setting选项中
C:\Windows\wget.exe
Run Code Online (Sandbox Code Playgroud)
并在"添加参数(可选)"类型中
-q -O NUL http://localhost/mycron.php
Run Code Online (Sandbox Code Playgroud)
解决方案-4使用.bat文件和任务调度程序
我在Stackoverflow找到了它,它与前两个类似:
创建一个cron.php文件(您希望定期执行的代码)
创建一个CRON.BAT文件,复制并通过文件中的以下代码
D:\ xampp\php\php.exe D:\ xampp\htdocs\Application\cron.php
我写的路径是根据我的xampp和cron.php文件,根据你的系统目录更新文件的路径
或者您可以直接进入控制面板>计划任务
右键单击文件夹New> Schedule Task
为任务指定适当的名称.在RUN文本字段中...在我的情况下键入CRON.BAT文件的完整路径
D:\xampp\htdocs\Application\CRON.BAT
Run Code Online (Sandbox Code Playgroud)
设置作业的计划,如果需要,可以使用高级按钮.
解决方案-5
我不喜欢它,因为一个脚本不能依赖别人的网站,但无论如何它都是一个解决方案.
使用外部在线cron作业服务.
https://www.google.ca/search?q=cron+job+online+service
选择一个更适合您的解决方案.希望这会对某人有所帮助.
UPDATE
解决方案-6(基于以下答案,也适用于CodeIgniter!)
创建cron.bat文件并编写以下命令并保存.
@ECHO OFF
c:
cd C:\Program Files\Internet Explorer
START iexplore.exe http://localhost/path/to/cron/job/1
Run Code Online (Sandbox Code Playgroud)
在"触发器"设置中创建任务给出运行时间.然后在"程序/脚本"命令文本框类型中的"操作"设置选项中
C:\xampp\path\htdocs\folder\includes\cron.bat
Run Code Online (Sandbox Code Playgroud)
结束更新
回答你的问题:
可以通过PHP代码或使用其他方式来实现这一点吗?因为我想在php/server上完成所有工作而不需要我的用户自己配置cron作业.这意味着我想要我的PHP代码可以在服务器中设置cron,服务器会查看cron吗?
还有其他方法可以做到这一点:
使用PHP管理Cron Jobs http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php-2--net-19428
不幸的是,所有使用PHP的解决方案都需要*nix服务器类型和/或cPanel,并且实现起来或多或少都很复杂.
好的,如果我理解正确的话,您希望在系统上创建一个 cron 作业,而无需用户创建该任务。
基本上,这可以在 .bat 文件中轻松完成(甚至可以从 php 调用)。schtasks 应用程序可以轻松自动创建计划任务。例如:
schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2
Run Code Online (Sandbox Code Playgroud)
有关这个漂亮应用程序的更多信息,请参阅官方 MS 支持页面。
对于用户来说更容易的另一个选择是使用安装程序。我自己并没有创建那么多 Windows 应用程序,但确实很高兴使用NSIS,并且该应用程序还具有创建计划任务的选项,以及许多其他功能,在此无法一一列举。如果您需要用户可安装的软件包,强烈推荐。
希望对您有帮助,祝编码愉快的朋友。