Ich habe einen 64-Bit-Server, aber nur 256 MB RAM. Also bin ich mit Fast-CGI auf den Nginx-Server umgezogen, um eine Verbindung zu PHP herzustellen. Ich habe PHP 5.3.6 ausgeführt.
Das Problem ist, dass ich alle zwei oder drei Tage, wenn ich versuche, auf eine PHP-Seite zuzugreifen, einen serverinternen Fehler erhalte. Die einzige Möglichkeit besteht darin, php-fpm manuell neu zu starten. Dies bedeutet, dass ich einige falsche Parameter hätte einstellen sollen, die dazu führen, dass es erstickt. Unten habe ich die relevanten Konfigurationen aufgelistet.
/etc/php-fpm.conf: -
include=/etc/php-fpm.d/*.conf
log_level = error
;emergency_restart_threshold = 0
;emergency_restart_interval = 0
;process_control_timeout = 0
/etc/php-fpm.d/www.conf: -
[www]
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500
/etc/nginx/php.conf: -
location ~ \.php {
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 SCRIPT_FILENAME $document_root$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;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass unix:---some-location---;
}
Update 1
Und ich habe vier Nginx-Prozesse ausgeführt. Im Durchschnitt benötigt jeder PHP-Fpm-Prozess 35 MB RAM (Größe des virtuellen Speichers jeweils 320 MB). Ich habe auch einen MySQL-Prozess ausgeführt.
Update 2
Ich habe vergessen, die Protokolle einzufügen.
PHP-Fpm-Fehlerprotokoll: -
WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 8 children, there are 1 idle, and 7 total children
WARNING: [pool www] server reached max_children setting (10), consider raising it
NOTICE: Terminating ...
php-fpm www.error log: -
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in /home/webadmin/blog.applegrew.com/html/wordpress/wp-content/plugins/jetpack/class.jetpack-signature.php on line 137
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in /home/webadmin/blog.applegrew.com/html/wordpress/wp-content/plugins/jetpack/class.jetpack-signature.php on line 137
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in /home/webadmin/blog.applegrew.com/html/wordpress/wp-content/plugins/jetpack/class.jetpack-signature.php on line 137
free
und fange an. Ich teile diesen freien Speicher durch 35, um den zu erhaltenmax_children value
. Ich habe den Zweck des letzten Absatzes nicht verstanden.