APC warnings: M/G suffixes
Jun 24th, 2013Here is how to fix APC warnings complaining about M/G suffixes.
The problem
The following line gets printed everytime PHP starts (either in your log, in the command line, etc.):
PHP Warning:  PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files in Unknown on line 0
It means that in your php.ini file, the value of the key apc.shm_size doesn’t have a unit suffix: M for megabyte or G for gigabyte.
The fix
Locate your php.ini file. You may have two of them: one for the web server, the other for the command line (CLI).
First, for the web server. If you don’t know where it is, you can make a phpinfo page
echo "<?php phpinfo();" > /var/www/phpinfo.php
Then visit it at http://localhost/phpinfo.php and look for the string php.ini in the page.
Then, for the command line php.ini, the equivalent of phpinfo() is php -i:
$ php -i | grep ini
Loaded Configuration File => /etc/php5/cli/php.ini
Scan this dir for additional .ini files => /etc/php5/cli/conf.d
...
Look for apc keys in both php.ini. If you can’t find it, PHP scans a directory (you can find which with phpinfo() or php -i) for addtional .ini files.
$ grep apc /etc/php5/cli/conf.d/*
/etc/php5/cli/conf.d/apc.ini:extension=apc.so
/etc/php5/cli/conf.d/apc.ini:apc.enabled=1
/etc/php5/cli/conf.d/apc.ini:apc.shm_size=30
Then edit the key apc.shm_size to add the M size suffix:
apc.shm_size=30M