5

I am trying to install Symfony 2.1.3 (latest). I am running composer and installs everything okay. The only error that I get is:

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 
handling the  post-install-cmd event terminated with an exception

[RuntimeException]                                                         
An error occurred when executing the "'cache:clear --no-warmup'" command. 

It's being installed under www folder. I am running nginx and followed the composer approach. I read on internet that apache should be run manually not as a service, however I am using nginx instead. Does apache still have any bearing on it? I'm using debian squeeze.

Edit: As per AdrienBrault's suggestion the error was because the timezone was not set in the php.ini. Only with --verbose I could see the warning. Thanks guys.

Marin
  • 12,531
  • 17
  • 56
  • 80
  • What happens if you do "php app/console cache:clear --verbose" ? – AdrienBrault Nov 12 '12 at 07:30
  • [ErrorException] Warning: date_default_timezone_get(): It is not safe to rely on the system' s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those me thods and you are still getting this warning, you most likely misspelled th e timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead in /var/www/Symfony/vendor/monolog/monolog/src/Monolog/Logger.php line 112 – Marin Nov 13 '12 at 00:35
  • Funny thing is I have no control over that file since it's during the installation that the vendor gets created is it not? Thanks – Marin Nov 13 '12 at 00:35
  • the error is given by PHP because you didn't set the default timezone in php.ini (read http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone ) – Roberto Nov 13 '12 at 08:13
  • 1
    I was getting this error because was trying to downgrade symfony to the LTS version. This fixed it: http://stackoverflow.com/questions/21013602/downgrading-symfony2-from-2-4-1-to-2-3-9 – timhc22 Feb 17 '14 at 13:11

4 Answers4

8

Apache is not related - PHP is called via command line.

Most likely is the permission in the cache folder: did you check if the user that runs the composer update can actually write the cache folder?

Try to manually run rm -Rf app/cache/dev (for production environment replace dev with prod) and see if you get any permission error.

Also you will get this error if the default.timezone setting is not configured in php when running in CLI. To verify just run

php --info | grep timezone

and check that the setting date.timezone is correctly configured.

On the security side, setting 777 to the folder is not the optimal solution - if you have ACL enabled you could use that to correctly set up the permission for the cache and logs folder. Read more at the Symfony2 official installation page

Roberto
  • 2,206
  • 4
  • 24
  • 31
  • 2
    can you try to run the composer installation `curl -s https://getcomposer.org/installer | php` ? check if it will return you an error about date.timezone - if yes, it's very likely that is the cause of your error – Roberto Nov 13 '12 at 08:35
  • Good to help Marin - I've added that information to the answer above. If that is ok, please mark the answer as accepted – Roberto Nov 15 '12 at 13:39
1

I had this same issue for a while and after hours of face to brick wall pounding I realized... I have a .gitmodule in my project, and on initial checkout these submodules are NOT initialized and as such are not there for your composer to update, which results in the above error.

Make sure you run the following

git submodule update --init src/Acme/Sadness/Bundle

of course replace src/Acme/Sadness/Bundle with YOUR project namespace.

Hope this helps someone not go through the same pain I just did.

Zjoia
  • 176
  • 3
  • 16
0

If you have vendor folder already I would remove it and install symfony 2.1.3 again via "composer.phar install". Problem might be coming from outdated version of composer

TroodoN-Mike
  • 15,687
  • 15
  • 55
  • 78
  • 3
    This is not the problem. The error you get is from `Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache` which is a script that runs after composer installs everything, it is an error in the `app/cache` directory. And if you use an outdated version of composer you should use `php composer.phar self-update` to get the latest version. – Wouter J Nov 12 '12 at 10:06
0

I had the same problem and I resolve in this way.

execute this on the console and you should see something like this

$ locate php.ini
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini

the first line is probably your php.ini that appear when you do a phpinfo();

the problem is that when you execute composer update this no check the same php.ini

in my case the second line

all my sites work fine but always I had problems not now after edit the second file and put the same time zone that you set in the first one

run

$ sudo service apache2 reload

and now

$ composer update

I hope that this work for you like work for me

regards Emiliano

Emiliano
  • 698
  • 9
  • 30