Периодическая ошибка «Файл не существует: / var / www / html / var» во всех областях приложения Zend MVC, в результате чего страницы иногда не загружаются, хотя обычно они загружаются без ошибок.
Наша установка
Приложение MVC в стеке LAMP на AWS с:
www.mysite.com/dev/
в /dev/configs/application.ini мы определяем следующее:
setting.basedir = dev
setting.baseurl = http://www.mysite.com/dev
setting.securebaseurl = http://www.mysite.com/dev
есть наш DNS с godaddy, и мы используем A host = IP-адрес (т.е. IP.IP.IP.IP), а не cname
Настройки httpd.conf в основном по умолчанию (дайте мне знать, если есть важные, которых нет в списке)
ServerName www.mysite.com
UseCanonicalName Off
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride ALL
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Эта проблема
В / etc / httpd / logs / error_log мы получаем следующую периодическую ошибку:
Файл не существует: / var / www / html / var, referer: http://www.mysite.com/dev/various
Когда возникает эта ошибка, отображается половина страницы той части сайта, к которой мы пытались получить доступ, с сообщением:
«Не удалось сохранить метаданные в кэш метаданных»
Ошибка является прерывистой, потому что мы не можем повторить ее с какой-либо последовательностью действий или временем:
У нас нет этой проблемы на локальных машинах - у нас есть около 3 разных локальных машин на стеках ламп Mac и машины с Windows с нашими разработчиками.
У нас не было проблем с исходной конфигурацией AWS, которая представляла собой приложение + база данных на одном микро-экземпляре ami linux, доступ к которому осуществлялся через адрес ec2 и config / application.ini baseurl, установленный на адрес ec2 (т.е. мы не использовали настройки хоста DNS A на этот этап)
Теории и вещи, которые мы пробовали:
Когда мы обновляем настройки application.ini для использования IP, а не DN, мы, кажется, не получаем ошибку (которая указывает на какой-то цикл root / dns сервера)
setting.basedir = dev
setting.baseurl = http://www.IP.IP.IP.IP.com/dev
setting.securebaseurl = http://www.IP.IP.IP.IP.com/dev
Первоначально мы думали, что это могло быть так, что в httpd.conf ServerName было закомментировано, но когда мы установили это на www.mysite.com, mysite.com или «www.mysite.com», это не имеет значения.
Ничто из того, что мы делаем, похоже, не указывает на источник ошибки.