Diem, man!

Пора немножко развиваться и изучать более интересные CMS нежели joomla или drupal. Вот пришла очеред Symphony и основанной на ее базе Diem.

Симфония установилась без вопросов, разве что кроме отсутствия php5-xsl (помогли команды apt-get update и apt-get install php5-xsl).

Но симфония это мало, вот diem уже интереснее. Качнул пакет и залил его по ftp на сервак, зашел консолькой и начал устанавливать:

  1. подготовил мускульную базу
  2. запустил установщик php /var/www/diem/install
  3. проверил все ли работает зайдя в админку

Если при входе в админку у вас появились следующие ошибки:

Warning: Invalid argument supplied for foreach() in /var/www/diem/dmAdminPlugin/config/dmAdminPluginConfiguration.class.php on line 39

Warning: session_start() [function.session-start]: Cannot send session cache limiter — headers already sent (output started at /var/www/diem/dmAdminPlugin/config/dmAdminPluginConfiguration.class.php:39) in/var/www/diem/symfony/lib/storage/sfSessionStorage.class.php on line 93

Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www:.) in /var/www/diem/symfony/lib/vendor/swiftmailer/preferences.php on line 15

Warning: Cannot modify header information — headers already sent by (output started at /var/www/diem/dmAdminPlugin/config/dmAdminPluginConfiguration.class.php:39) in/var/www/diem/symfony/lib/response/sfWebResponse.class.php on line 336

Warning: Cannot modify header information — headers already sent by (output started at /var/www/diem/dmAdminPlugin/config/dmAdminPluginConfiguration.class.php:39) in/var/www/diem/symfony/lib/response/sfWebResponse.class.php on line 357

не пугайтесь! надо ручками поправить немного код 🙂

в файле /dmAdminPlugin/config/dmAdminPluginConfiguration.class.php находим 39ую строку

[sourcecode language=’php’]

foreach(glob(dmOs::join(sfConfig::get(‘sf_plugins_dir’), ‘*/modules/*’), GLOB_ONLYDIR) as $dir)

[/sourcecode]

и заменяем ее например на:

[sourcecode language=’php’]

foreach(is_array($perem=glob(dmOs::join(sfConfig::get(‘sf_plugins_dir’), ‘*/modules/*’), GLOB_ONLYDIR))?$perem:array() as $dir)

[/sourcecode]

Ecли у вас ошибка, связанная с open_basedir, то возможно надо подправить конфиг апачи, как у меня (хостинг от FastVPS) либо сменить режим работы php с «модуль apache» на «php как cgi».