AmsterdamPHP / amsterdamphp.nl

The website fo the AmsterdamPHP User Group
18 stars 8 forks source link

Weird memory issues in VM #89

Closed rdohms closed 8 years ago

rdohms commented 8 years ago

As it seems for some weird reason php is being limited to 128M on the command line. My attempts to remove this have so far failed, its a phantom memory limit in some weird ini file.

Any ideas are welcome.

dennisdegreef commented 8 years ago

It seems to be a permission problem at /etc/php5/cli/php.ini.

Found this by grepping for memory_limit in /etc/php5:

vagrant@amsphp-vagrant:/vagrant$ grep -Rin 'memory_limit' /etc/php5/
grep: /etc/php5/cli/php.ini: Permission denied
/etc/php5/apache2/php.ini:393:memory_limit = 128M

Confirmed PHP was also unable to load the configuration file

vagrant@amsphp-vagrant:~$ strace php --ini
[...]
open("/etc/php5/cli/php.ini", O_RDONLY) = -1 EACCES (Permission denied)
[...]

The effect in runtime:

vagrant@amsphp-vagrant:~$ php
<?php var_dump(ini_get('memory_limit')); ?>
string(4) "128M"
vagrant@amsphp-vagrant:~$ sudo php
<?php var_dump(ini_get('memory_limit')); ?>
string(4) "256M"

The effect processing configuration

vagrant@amsphp-vagrant:~$ php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         (none)
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-apcu.ini,
/etc/php5/cli/conf.d/20-curl.ini,
/etc/php5/cli/conf.d/20-gd.ini,
/etc/php5/cli/conf.d/20-intl.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-memcached.ini,
/etc/php5/cli/conf.d/20-mysql.ini,
/etc/php5/cli/conf.d/20-mysqli.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
/etc/php5/cli/conf.d/20-readline.ini,
/etc/php5/cli/conf.d/20-timezone.ini,
/etc/php5/cli/conf.d/20-xdebug.ini,
/etc/php5/cli/conf.d/20-xmlrpc.ini

vagrant@amsphp-vagrant:~$ sudo php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-apcu.ini,
/etc/php5/cli/conf.d/20-curl.ini,
/etc/php5/cli/conf.d/20-gd.ini,
/etc/php5/cli/conf.d/20-intl.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-memcached.ini,
/etc/php5/cli/conf.d/20-mysql.ini,
/etc/php5/cli/conf.d/20-mysqli.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
/etc/php5/cli/conf.d/20-readline.ini,
/etc/php5/cli/conf.d/20-timezone.ini,
/etc/php5/cli/conf.d/20-xdebug.ini,
/etc/php5/cli/conf.d/20-xmlrpc.ini

Permissions on file:

vagrant@amsphp-vagrant:~$ ls -lA /etc/php5/cli/php.ini
-rw------- 1 root root 69312 Feb 20 18:02 /etc/php5/cli/php.ini

Fixed in pull request #91

Fix confirmed after running vagrant provision.

vagrant@amsphp-vagrant:~$ php
<?php var_dump(ini_get('memory_limit')); ?>
string(4) "256M"

It seems the permissions in the ansible configuration are like this since the first appearance of development.yml (https://github.com/AmsterdamPHP/amsterdamphp.nl/blob/cdf679025fa3b5465f0395392b366dfc87e59d18/ansible/tasks/development.yml#L55)

rdohms commented 8 years ago

nice dude, good work. I had noticed the permission issue but did not investigate it... very confusing.

dennisdegreef commented 8 years ago

Can be closed, since the pull request is merged