基本上 – 我有一些PHP脚本需要作为cron作业运行。
可以说,需要运行的脚本是: http : //admin.somedomain.com/cron_jobs/get_stats
如果我从本地机器运行脚本,它会给我一个404 Not Found错误。
所以我在/ etc / hosts中input了以下内容
XX.XX.XX.45 admin.somedomain.com
现在wget从本地机器正常工作到该域。 但是,当我重新启动Apache该域名不再起作用。 这是/ etc / apache2 / sites-available中该站点的configuration
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>
它只是去显示“It Works”的默认网站configuration。
如果我在/ etc / hosts中取出该设置并重新启动apache,该域中的网站再次正常工作。
任何人都可以在这里指出正确的方向吗? 谢谢
尝试httpd -S应该给你列出所有configuration的虚拟主机,包括你的。 同时validation您的目录“/var/www/admin.somedomain.com/”是否存在,并查看日志,看看他们在说什么…
尝试wget --header="Host: admin.somedomain.com" http://localhost/cron_jobs/get_stats (这是一行。)
是否有某些原因需要通过Apache运行脚本,由HTTP客户端触发? 那么直接从cron运行它们呢?
0 4 * * * /usr/bin/php /path/to/script