Я очень новичок в Symfony, и я пытаюсь автоматизировать процесс развертывания с помощью rsync, сохраняя при этом как локальную, так и удаленную установку Symfony.Symfony 2.2.1 rsync deploy - не работает на удаленном сервере
Что я сделал до сих пор:
- установлен Cygwin на моей локальной машине (Windows 7 + apache2.2 + PHP 5.3 + MySQL 5.1)
- сделал основной Symfony установить на моей локальной машине от оболочки с помощью команды
php composer.phar create-project symfony/framework-standard-edition [path]/ 2.2.1
- установить удаленную ЛАМПЫ Ubuntu сервер с PHP-FPM (FastCGI)
- созданы две различные файлы конфигурации для локального и удаленного в
app/config/
, реж parameters.yml и parameters.yml. дистанционный пульт - создал
app/config/rsync_exclude.txt
файл, содержащий список файлов не к Rsync к удаленному серверу (как это было предложено в this page) - создал сценарий развертывания оболочки, который я бегу от Cygwin (см ниже)
сценарий развертывания выдает команды:
rsync -avz /cygdrive/c/[path]/ [email protected]:[remote-path]/ --exclude-from=/cygdrive/c/[path]/app/config/rsync_exclude.txt
ssh [email protected] 'cd [remote-path]/ && php app/console --env=prod cache:clear && php app/console cache:clear'
ssh [email protected] 'mv [remote-path]/app/config/parameters.yml.remote ~/[remote-path]/app/config/parameters.yml'
rsync
, ssh
и mv
, но развернутый сайт всегда показывает ошибку HTTP 500 (как app.php, так и app_dev.php). Глядя на ошибки сервера лог ошибки:
Fatal error: Class 'Composer\\Autoload\\ClassLoader' not found in /[remote-path]/vendor/composer/autoload_real.php on line 23
Любой ключ будет более чем приветствуется.
Редактировать - вот мой vendor/composer/autoload_real.php
файл (извините за что делает этот вопрос больше!):
<?php
// autoload_real.php generated by Composer
class ComposerAutoloaderInit9d50f07556e53717271b583e52c7de25
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit9d50f07556e53717271b583e52c7de25', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
// ^^^^^^ this is line 23 and gives the error ^^^^^^^^^^^
spl_autoload_unregister(array('ComposerAutoloaderInit9d50f07556e53717271b583e52c7de25', 'loadClassLoader'));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->add($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
$loader->register(true);
require $vendorDir . '/kriswallsmith/assetic/src/functions.php';
require $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php';
return $loader;
}
}
, имеющий взглянуть на ваш autoload_real.php может быть полезно :) – nifr
@nifr здесь вы идете :) –
попробовать «обновление композитора - o "перед загрузкой rsync, пожалуйста. оптимизированный автозагрузчик (classmap) - это путь для производственных систем :) – nifr