2013-04-26 2 views
0

привет У меня есть вопрос и вы хотите узнать, можно ли запустить правило в apache с помощью php-скрипта. Я приведу пример , скажем, я хочу удалить изображения, которые имеют более 1 года, зарегистрированных в базе данных. , тогда я делаю сценарий правильно? дает ли он, что он работает в apache этой проверке с интервалом в 5 минут?php script running at apache

+3

В Ques трудно понять. Можете ли вы показать код, который вы пробовали до сих пор? – hek2mgl

+0

Apache не выполняет планирование. Вам нужно что-то вроде cron – Phil

+1

Linux, windows или mac? –

ответ

1

Не знаете, чего именно вы пытаетесь достичь, но, скорее всего, вы хотите запустить этот скрипт в Cron, а не в Apache.

http://en.wikipedia.org/wiki/Cron

Есть несколько причин не для использования Apache:

  • С Apache, скрипт будет выполнен по желанию клиента. Вы никогда не знаете, когда произойдет следующий запрос - возможно, через 5 минут, может быть, через два года.
  • После запуска сценария ваш клиент должен будет дождаться завершения скрипта; это неизбежно увеличит время загрузки страницы.
1

Чтобы запустить скрипт сам по себе, вы используете

php file.php 

в командной строке. Для того, чтобы запустить его каждые х часто вы используете Cron, доступ к которым осуществляется с помощью командной строки, большую часть времени с помощью команды

crontab -e 

Но все это предполагает, что вы имеете доступ к командной строке на сервере. Если вы этого не сделаете, лучше всего использовать Require once, чтобы включить скрипт в начало каждой страницы, чтобы он запускался каждый раз, когда кто-то загружает ваш сайт.

+0

Не во всех случаях. Для запуска из Cronjob вам нужно будет указать расположение PHP '/ usr/local/php', например. –

1

Apache сам не обрабатывает автоматизацию/планирование, есть еще одна технология Linux для вас, чтобы выполнить такую ​​задачу.


Причина Использование Cron над апачом

  • не поддерживают автоматизацию/приуроченных запросы

  • Событие будет сделано по запросу пользователя (при переходе на РНР
    сценария)

  • Как только пользователь naviga тес от текущей страницы, текущий
    выполнение сценария остановится

Зачем использовать Cronjobs? - Cron Поддержка Событий - не требует каких-либо запросов пользователей (работает автоматизированный) - Проводит сценарий, пока он не закончит выполнение - выходной контроль, Вы можете управлять выводом толкать в текстовом файл для каротаж или перейти на/dev/null, чтобы уничтожить весь выход

Вниз Стороны в Крон?

Там, как правило, нет минусов cronjobs, скорее досада в том, что в сервере вредоносного, хроны будет пытаться электронной почте любого выхода (эхо, печать, print_r, var_dump или любой HTML) к root псевдониму


Это называется cron job обычно именуемую cron, что это делает, в основном нравится Windows Task Scheduler где проходит задание в параметрах, которые вы хотите, например .. время.

Этот текст является основной записью для cronjob и как получить доступ к этому.

Если у вас есть доступ через cpanel, то в нижней части списка задач должна быть опция. Как создать один с помощью cpanel, объясняется внутри самой страницы.


Редактирование из командной строки:

Используйте ваш любимый текстовый редактор в этом случае я буду использовать нано .. Я бегу как корень

nano /etc/crontab 

Вы будете тогда представлены базовый ввод (если не изменен)

# /etc/crontab: system-wide crontab 
# Unlike any other crontab you don't have to run the `crontab' 
# command to install the new version when you edit this file 
# and files in /etc/cron.d. These files also have username fields, 
# that none of the other crontabs do. 

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

# m h dom mon dow user command 
17 * * * * root cd/&& run-parts --report /etc/cron.hourly 
25 6 * * * root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.daily) 
47 6 * * 7 root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.weekly) 
52 6 1 * * root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.monthly) 

Добавить следующую строку (изменить в соответствии с вашими требованиями), она будет запускаться каждую минуту.

* * * * * root /usr/bin/php /var/www/cron.php # This will run every minute as the root user 

Layout

* * * * * - представляет время, в этом случае ..Каждая минута, каждый час, каждый день, в каждом месяце каждой неделе

root - Это пользователь хрон будет работать как

/usr/bin/php - По причинам, поддерживающей совместимости, вы должны указать путь к где РНР установлен слишком

/var/www/cron.php - Местоположение PHP скрипт для выполнения на основе времени, указанного


установки для cronjob:

* * * * * command to be executed 
- - - - - 
| | | | | 
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7) 
| | | ------- Month (1 - 12) 
| | --------- Day of month (1 - 31) 
| ----------- Hour (0 - 23) 
------------- Minute (0 - 59) 

Используя то, что я показал/объяснено с диаграммой выше этой части текста, изменить ваш кронтаб, чтобы удовлетворить ваши требования


При использовании установки Mac, а затем следовать этот пост:

Getting started with cronjobs on a Mac

Good Luck