PHP-FPM und Nginx: 502 Bad Gateway
Aufbau
Ubuntu Server 11.10 64 BitAmazon AWS, Ec2, wird in der Cloud gehostett1.micro instanceBevor ich etwas anderes schreibe, möchte ich festhalten, dass ich beide geprüft habeNginx 502 schlechtes Gateway undNginx + PHP-FPM 502 Bad Gateway Threads, die mir diesbezüglich leider nicht weitergeholfen haben.
Das Problem scheint ziemlich häufig zu sein: Eine Fehlkonfiguration von nginx oder php-fpm kann zu a führen502 Bad Gateway
Fehler, den ich nicht loswerden konnte. Beachten Sie, dass dies angezeigt wirdauch wenn ich zu meiner Domain root geheohne Angabe eines bestimmten Verzeichnisses.
Ich verwende einen Amazon EC2-Webserver mit aktiviertem Port 9000, offenem Port 80 usw.
Die Frage ist insbesondere, wie ich diesen bösen Fehler beseitigen kann. Oder noch besser, wie kann ich bekommenphp5-fpm
zueigentlich arbeiten.
Was ich bisher versucht habe
Hauptsächlich konsistente Bearbeitung von Konfigurationsdateien, insbesonderephp-fpm.conf
undnginx.conf
.
ich. php-fpm.conf
Ich habe Folgendes hinzugefügt, was nicht viel geholfen hat:
<code>;;;;;;;;;;;;; ; Fpm Start ; ;;;;;;;;;;;;; ;pm.start_servers = 20 ;pm.min_spare_servers = 5 ;pm.max_spare_servers = 35 </code>
Anschließend habe ich versucht, meine Konfigurationsdateien einzuschließen:
include=/etc/php5/fpm/*.conf
Das hat mich nur noch weiter geschraubt.
Vollständige Konfiguration
<code>;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; ; All relative paths in this configuration file are relative to PHP's install ; prefix (/usr). This prefix can be dynamicaly changed by using the ; '-p' argument from the command line. ; Include one or more files. If glob(3) exists, it is used to include a bunch of ; files from a glob(3) pattern. This directive can be used everywhere in the ; file. ; Relative path can also be used. They will be prefixed by: ; - the global prefix if it's been set (-p arguement) ; - /usr otherwise ;include=/etc/php5/fpm/*.conf ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; [global] ; Pid file ; Note: the default prefix is /var ; Default Value: none pid = /var/run/php5-fpm.pid ; Error log file ; Note: the default prefix is /var ; Default Value: log/php-fpm.log error_log = /var/log/php5-fpm.log ; Log level ; Possible Values: alert, error, warning, notice, debug ; Default Value: notice log_level = notice ; If this number of child processes exit with SIGSEGV or SIGBUS within the time ; interval set by emergency_restart_interval then FPM will restart. A value ; of '0' means 'Off'. ; Default Value: 0 ;emergency_restart_threshold = 0 ; Interval of time used by emergency_restart_interval to determine when ; a graceful restart will be initiated. This can be useful to work around ; accidental corruptions in an accelerator's shared memory. ; Available Units: s(econds), m(inutes), h(ours), or d(ays) ; Default Unit: seconds ; Default Value: 0 emergency_restart_interval = 0 ; Time limit for child processes to wait for a reaction on signals from master. ; Available units: s(econds), m(inutes), h(ours), or d(ays) ; Default Unit: seconds ; Default Value: 0 ;process_control_timeout = 0 ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. ; Default Value: yes daemonize = no ;;;;;;;;;;;;; ; Fpm Start ; ;;;;;;;;;;;;; ;pm.start_servers = 20 ;pm.min_spare_servers = 5 ;pm.max_spare_servers = 35 ;;;;;;;;;;;;;;;;;;;; ; Pool Definitions ; ;;;;;;;;;;;;;;;;;;;; ; Multiple pools of child processes may be started with different listening ; ports and different management options. The name of the pool will be ; used in logs and stats. There is no limitation on the number of pools which ; FPM can handle. Your system will tell you anyway :) ; To configure the pools it is recommended to have one .conf file per ; pool in the following directory: include=/etc/php5/fpm/pool.d/*.conf </code>
ii. nginx.conf
Um ehrlich zu sein, ist diese Konfiguration ein kleiner Teil einiger Websites, die ich besucht habe, aber ich kann Ihnen sagen, dass der Server vor diesem 502 Bad Gateway-Geschäft einwandfrei lief (ohne dass PHP funktionierte. Periode.).
Das Problem liegt in erster Linie in der Tatsache, dass etwas schrecklich, schrecklich falsch ist. Und jetzt, wenn ich versuche, eineservice php5-fpm restart
Es hängt in einer Endlosschleife oder so etwas, was ich nicht einmal kannSTRG-C aus.
Vollständige Konfiguration
<code>user www-data; worker_processes 1; pid /var/run/nginx.pid; events { worker_connections 64; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush off; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; server { listen 80; server_name ec2-xx-xx-xx-xx.compute-x.amazonaws.com; location ~ ^(.+\.php)(.*)$ { root /home/wayvac/public; fastcgi_pass unix:/var/run/php5-fpm.pid; #fastcgi_pass 127.0.0.1:9000; #Un-comment this and comment "fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;" if you are not using php-fpm. fastcgi_index index.php; set $document_root2 $document_root; if ($document_root2 ~ "^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$") { set $document_root2 Ubuntu Server 11.10 64 Bit2; } if ($document_root2 ~ "^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$") { set $document_root2 Ubuntu Server 11.10 64 Bit2; } if ($document_root2 ~ "^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$") { set $document_root2 Ubuntu Server 11.10 64 Bit2; } if ($document_root2 ~ "^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$") { set $document_root2 Ubuntu Server 11.10 64 Bit2; } if ($document_root2 ~ "^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$") { set $document_root2 Ubuntu Server 11.10 64 Bit2; } fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root2$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root2$fastcgi_path_info; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $document_root2; } access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { root /home/wayvac/public; index index.html index.htm index.php; } location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { # Some basic cache-control for static files to be sent to the browser expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } #include drop.conf; #include php.conf; } } </code>