В основном - у меня есть несколько скриптов PHP, которые нужно запускать как задания cron.
Допустим, необходимо запустить сценарий: http://admin.somedomain.com/cron_jobs/get_stats
Если я запускаю сценарий с локального компьютера, он выдает ошибку 404 Not Found.
Итак, я ввел следующее в / etc / hosts
XX.XX.XX.45 admin.somedomain.com
Теперь wget отлично работает с локального компьютера в этом домене. Однако, когда я перезапускаю Apache, этот домен больше не работает. Вот конфигурация этого сайта в / etc / apache2 / sites-available
NameVirtualHost XX.XX.XX.45:80
<VirtualHost XX.XX.XX.45:80>
ServerName admin.somedomain.com
DocumentRoot /var/www/admin.somedomain.com/
<Directory "/var/www/admin.somedomain.com">
allowoverride all
Options Indexes
order deny,allow
allow from all
</Directory>
ErrorLog /var/log/apache2/admin.somedomain.com-error_log
CustomLog /var/log/apache2/admin.somedomain.com-access_log combined
</VirtualHost>
Он просто переходит в конфигурацию сайта по умолчанию, показывающую «Это работает».
Если я уберу этот параметр в / etc / hosts и перезапущу apache, веб-сайт в этом домене снова будет работать нормально.
Может ли кто-нибудь указать мне здесь правильное направление? Спасибо
Пытаться wget --header="Host: admin.somedomain.com" http://localhost/cron_jobs/get_stats
(Это одна строка.)
Есть ли причина, по которой вам нужно запускать скрипты через Apache, запускаемые HTTP-клиентом? А как насчет того, чтобы просто запустить их прямо из cron?
0 4 * * * /usr/bin/php /path/to/script
пытаться httpd -S
это должно дать вам список всех настроенных виртуальных хостов, включая ваш. Также убедитесь, что ваш каталог "/var/www/admin.somedomain.com/" существует, а также просмотрите журналы и посмотрите, что они говорят ...