Я настраивал развертывание PHP с Capistrano на CentOS 6 и столкнулся с интересной проблемой. Как работает capistrano, он устанавливает такие папки:
- /var/www/myapp.com/
- current (символическая ссылка на последнюю версию в релизах)
- общие
- релизы
- 20130826172737
- 20130826172114
Когда я смотрю на "текущую" символическую ссылку, она указывает на самую последнюю версию. Сначала, открывая мое веб-приложение, все работало нормально. После развертывания новой версии папка current правильно указывает на новую версию, но веб-приложение пытается загрузить файлы из старой версии (которая была удалена в процессе очистки Capistrano). Кроме того, виртуальный хост настроен на /var/www/myapp.com/current/Public.
Символы привязаны каким-либо образом?
Конкретный PHP-код, который терпит неудачу (который инициализирует мою структуру), таков:
require_once dirname(dirname(__FILE__)) . '/App/App.php';
App\App::run();
Это находится в index.php, расположенном в настоящее время в /var/www/app.com/current/Public/index.php.
Мои журналы ошибок Apache показывают:
PHP Неустранимая ошибка: require_once(): не удалось выполнить открытие '/var/www/myapp.com/releases/20130826172237/App/App.php' (include_path = '.:/usr/share/pear:/usr/share/php ') в /var/www/myapp.com/releases/20130826172237/Public/index.php
И символическая ссылка current показывает:
current → /var/www/zverse/релизы/20130826172641
Очевидно, что 20130826172641!= 20130826172237, последний из которых был предыдущей версией.
Любые идеи или области, на которые я могу смотреть?