我需要一个PHP脚本在Windows中作为服务运行。
有一种简单的方法吗?
答案 0 :(得分:1)
您必须使用sc.exe。请访问http://support.microsoft.com/kb/251192了解详情。 然后使用php.exe yourscriptname作为服务执行的命令行
答案 1 :(得分:1)
如果你不介意用一点csharp弄脏你的手,这里有一个带有shell应用程序的URL,这是一个windows服务。它设置一个计时器,每隔很多秒执行一个批处理文件(即你的脚本)。仅在您的脚本执行任务然后退出时才有效。 (标记为社区维基,因为这不是我的代码。我在这里复制所有代码以防链接网站将来死亡。)
http://www.akchauhan.com/create-windows-service-to-schedule-php-script-execution/
以下是链接文章中提到的代码。
服务的C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;
namespace MyNewService
{
public partial class MyNewService : ServiceBase
{
private Timer syncTimer = null;
public MyNewService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
syncTimer = new Timer();
this.syncTimer.Interval = 180000;
this.syncTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.syncTimer_Tick);
syncTimer.Enabled = true;
}
protected override void OnStop()
{
syncTimer.Enabled = false;
}
private void syncTimer_Tick(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\xampp\htdocs\task.bat");
}
}
}
必需的批处理文件:
@echo off
cd\
set path=C:\xampp\php;
cd "C:\xampp\htdocs"
php import.php
exit
答案 2 :(得分:0)
这可能是https://superuser.com/或https://serverfault.com/
的问题这可能会为该服务提供一些帮助 http://support.microsoft.com/kb/251192
自从我使用Windows以来已经有一段时间了,但您可以设置批处理文件作为服务运行。