I have installed localhost/server in my machine and I need to run a php script using w开发者_Python百科indows schedule task. how do I add path in "Actions" tab in schedule task / cofigure the script to run for particular period?
Locate the php.exe executable on your system and pass it the name of the script file using the -f
parameter.
Example:
C:\Xampp\php\php.exe -f C:\Xampp\htdocs\my_script.php
Reference:
- Introduction to using PHP on the command line
- PHP command line options
Here's how did it.
Windows scheduler -> create a new task -> action tab -> Edit
At least I tried out some suggestions but it doesn't work so I tried this.
Use a bat file and schedule to execute that bat file.
For example in the bat file executephp.bat, write this
c:\xampp\php\php.exe -f c:\xampp\htdocs\do_something.php
save that bat file that contains that line.
Go to windows scheduler and create a new task and in action tab, browse to point that executephp.bat and for start in -> direct to the directory u have that executephp.bat.
For example if u save the file under C:\xampp\htdocs put that C:\xampp\htdocs in the start in.
Remember to invoke the script even when the user is not logged on.
Everything is set and it will execute without problem.
You can use PHP Command Line to execute it rather then trying to load it through the browser.
Under the actions tab, create a new action and:
- Program/Script: Point to your PHP.exe file
- Add Arguments:
-f /path/to/php/file.php
Optionally you can make it start in the script's directory as well.
create Schedule task Scheduler->Actions->Edit Action
if you have php file
Program/script: powershell
Add arguments: curl http://localhost/demo/cron.php
if you have MVC/CMS URL
Program/script: powershell
Add arguments: curl http://localhost/demo/controller/method
I just wanted to leave what i had to do to get this working for server 2012. Which was what has previously been said but with added quotes and using the 'Add arguments' box. So in Task Scheduler->Actions->Edit Action.
Program/script: "C:\xampp\php\php.exe"
Add arguments: -f "<full path and filename>"
Start in: <Path to file>
(I had to use 'start in' as i referred to class's within the script)
Hope this helps.
Here's how I did it.
In the Run box: c:\location_of_my_php_installation\php.exe -f c:\location_of_my_php_file\php_file.php
In the Start in box: c:\location_of_my_php_installation\php.exe
you can directly call your local host url by using
explorer "http://localhost/yourFile.php"
If the answer given by Pekka does not work (C:\Xampp\php\php.exe -f C:\Xampp\htdocs\my_script.php
), make sure that you have the correct PHP extensions enabled as well as the correct php.ini
file being used for the PHP version you are using.
I ran into this issue recently and resolved it. I was using PHP v5.4 to run my script.php that was nested within the top level PHP folder (v5.3). When I ran the script.php
, from within the v5.4 folder, it was using the v5.3 php.ini
file with different extensions, which caused the script.php
to fail.
To fix this, here is what I did within the Task Scheduler : Actions tab
Program Script:
"C:\Program Files (x86)\PHP\v5.4\php.exe"
Add Arguements:
-c "C:\Program Files (x86)\PHP\v5.4\php.ini" -f "C:\Xampp\htdocs\script.php"
Using the -c
option, you can specify which php.ini
file should be used (stackflow answer).
I verified which php was in use by following this stackflow answer.
In command line, type php -m
to check which extensions are enabled.
Then, use php --ini
to check which .ini
file(s) is/are being read by PHP.
You may not be using the correct ini file for the PHP version you are using if you have multiple versions installed.
You dont need a .bat file just set the options in the task scheduler:
So here i've just pointed to the php.exe and then in the arguments the
-f fullpath2PHP file
The important bit is the Start in part - this should be the folder your php file (the one you want to run) sits in. so for example:
File location -f c:\inetpub\wwwroot\runthisplease\myFile.php
Start in c:\inetpub\wwwroot\runthisplease\
You can test this by creating a windows shortcut (but you cannot schedule a shortcut link)
In the properties for your task in the Task Scheduler, change the account for which your script is running under to the SYSTEM account.
Beaware! You should ONLY do this for scripts you fully trust - Doing this elevates the privileges to of the script to beyond administrator.
To create a scheduler in Windows, you need to:
- Create
.bat
file on your server or system; - Type the following command in your
.bat
file:
“F:\xampp\php\php.exe” -f “F:/xampp/htdocs/sitefolder/test.php”;
- Set the scheduler time and file in your task scheduler in Windows.
精彩评论