Wskazówki dotyczące konfiguracji Nginx + FastCGI
27 marca 2022
UWAGA! Podczas pracy w chmurze ta konfiguracja jest ustawiana i nie są wymagane żadne dalsze działania. W razie jakichkolwiek problemów prosimy o kontakt z naszym działem pomocy technicznej.
Aby framework działał w środowisku Nginx + FastCGI bez użycia Apache, w pliku konfiguracyjnym Nginx należy uwzględnić kilka specjalnych ustawień.
Poniżej przedstawiono przykładową konfigurację dla następujących warunków:
- Katalog na serwerze, w którym jest zainstalowany framework, to /var/www/fw/.
- PHP FastCGI obsługuje port TCP 9000 (jest to ustawienie domyślne).
server {
listen 80;
server_name fw;
root /var/www/fw;
index index.php;
try_files $uri $uri/ /index.php?$query_string;
location /index.php {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
# for install only
location /install.php {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
location /api.php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
location ~ /(oauth.php|link.php|payments.php) {
try_files $uri $uri/ /index.php?$query_string;
}
location ^~ /wa-data/protected/ {
internal;
}
location ~ /wa-content {
allow all;
}
location ^~ /(wa-apps|wa-plugins|wa-system|wa-widgets)/.*/(lib|locale|templates)/ {
deny all;
}
location ~* ^/wa-(cache|config|installer|log|system)/ {
return 403;
}
location ~* ^/wa-data/public/contacts/photos/[0-9]+/ {
root /var/www/fw/;
access_log off;
expires 30d;
error_page 404 = @contacts_thumb;
}
location @contacts_thumb {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME /wa-data/public/contacts/photos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/contacts/photos/thumb.php;
}
# photos app
location ~* ^/wa-data/public/photos/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @photos_thumb;
}
location @photos_thumb {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME /wa-data/public/photos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/photos/thumb.php;
}
# end photos app
# shop app
location ~* ^/wa-data/public/shop/products/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @shop_thumb;
}
location @shop_thumb {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME /wa-data/public/shop/products/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/shop/products/thumb.php;
}
location ~* ^/wa-data/public/shop/promos/[0-9]+ {
access_log off;
expires 30d;
error_page 404 = @shop_promo;
}
location @shop_promo {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME /wa-data/public/shop/promos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/shop/promos/thumb.php;
}
# end shop app
# mailer app
location ~* ^/wa-data/public/mailer/files/[0-9]+/ {
access_log off;
error_page 404 = @mailer_file;
}
location @mailer_file {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME /wa-data/public/mailer/files/file.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/mailer/files/file.php;
}
# end mailer app
location ~* ^.+\.(jpg|jpeg|gif|png|webp|js|css)$ {
access_log off;
expires 30d;
}
}
Sprawdź także, czy plik konfiguracyjny /etc/nginx/fastcgi_params zawiera te wartości:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
Błąd w tekście? Zaznacz ją myszką i kliknij Ctrl + F1 lub kliknij na ten blok!
0 komentarzy