I have a problem with the Symfony cache. When I test the same project (in dev env) with Apache and Nginx PHP-FPM. Apache is 10 times faster. (4900ms vs 500ms)
I have made some "strace" on several processus, and I have seen that with Apache Symfony care about the cache. But with Nginx/FPM, Symfony seems execute all the code. (without use application cache)
What are the differences that could say to symfony to use the correctly cache with Apache and not with Nginx?
Or, are there some special configuration to do with Nginx/FPM in DEV environment ?
Thanks
= NGINX Configuration =
location / {
index app.php;
if (-f $request_filename) {
break;
}
rewrite ^(.*)$ /app.php last;
}
location ~ (app|app_dev).php {
include /etc/nginx/nginx-fpm.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param HTTPS off;
}
= /etc/nginx/nginx-fpm.conf ==
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT 80;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
== PHP-FPM ==
[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
include=/etc/php5/fpm/pool.d/*.conf
= /etc/php5/fpm/pool.d/www.conf =
[www]
user = www-data
group = www-data
listen = /tmp/php-fpm.sock
pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.status_path = /status
access.log = /var/log/fpm/www.access.log
access.format = %R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%
chdir = /
== APC ==
extension=apc.so
apc.shm_segments=1
apc.shm_size=512M
apc.enable_cli=1
apc.include_once_override=1
apc.canonicalize=1
apc.stat="0" ; OR 1 it's the same result
== Others extensions ==
apc.ini
curl.ini
gd.ini
imagick.ini
intl.ini
memcached.ini
memcache.ini
mysqli.ini
mysql.ini
pdo.ini
pdo_mysql.ini
pdo_sqlite.ini
sqlite3.ini
sqlite.ini