吸毒的虫子 发表于 2017-12-30 20:37:22

服务器上定时自动执行php

  两种方式:
  一、Linux 服务器
  Linux原生支持crontab,所以可以利用这一功能做定时任务
  步骤:
  1、编辑crontab文件:
  Linux:crontab -e
  2、输入代码:
  0 0 * * 6 /etc/init.d/httpd restart && /etc/init.d/mysqld restart
  代码解释:每周六0点自动重启apache和mysql,第一项(前面5位)是时间设置,具体格式百度之,不赘述,下同;
  第二项是apache所在目录,
  第三项上执行具体方法,
  后面的&&可以连写,也可以删除&&后,换行,即也可以这么写:
  0 0 * * 6 /etc/init.d/httpd restart
  0 0 * * 6 /etc/init.d/mysqld restart
  0 9 * * * /usr/bin/curl http://www.website.com/Index/test
  代码解释:每天上午9点自动执行一次http://www.website.com/Index/test方法
  第二项代表curl所在目录,
  第三项代表所要执行的url
  (若要执行PHP文件,与此格式类似,具体百度之。。)
  esc
  :wq 保存
  二、Windows服务器:
  Windows服务器可以利用系统的计划任务实现
  步骤:
  1、创建一个bat批处理文件,如:
  D:\xampp\php\php.exe -q D:\xampp\htdocs\test.php
  保存为test.bat,第一项为php.exe所在目录,第二项为需要执行的php文件路径
  2、test.php文件写入:
  <?php
  file_put_contents('test.txt',date('Y-m-d H:i:s')." success!\r\n",FILE_APPEND);
  ?>
  此仅为测试用,具体代码可自行编写(本例是只要执行test.bat,就调用test.php,往test.txt里面写入一段字符串)
  3、设置系统计划任务,定时执行test.bat
  4、不通过php文件所在路径,而是用网址呢,windows下新建test.bat,添加内容如下:
  

@echo off  
  rem 关闭回显
  
  start
"C:\Program Files\Internet Explorer\iexplore.exe" "http://www.abc.com/test.php"  
  rem 使用浏览器打开url地址,5秒后自动关闭ie
  
  ping
127.0.0.1 -n 5 >nul  
  taskkill
/im iexplore.exe /f  

  放在windows计划任务里执行
  用PhantomJS或者类似的东西替代浏览器,消耗应该会很小
页: [1]
查看完整版本: 服务器上定时自动执行php