Skip to content

nginx ve php-fpm ile moodle2 kurulumu

PHP programcıları her geçen gün sistem yöneticilerine saç baş yolduracak acayip işler yapmaya devam ediyorlar.  En son karşılaştığım acayiplik Moodle‘dan geldi. (sürüm pek yeni değil ama kurulumunu yapmak nasip olmamıştı) Programcı arkadaşlar hangi akla hizmet yaptılarsa resim dosyalarını sunmak için kullandıkları image.php dosyasının parametlerini query_string‘ten almak yerine farklı bir yol seçmişler ve ortaya şu acayip adres çıkmış.

/theme/image.php/standard/core/1349561551/moodlelogo

php ile biten istekleri php-fpm’ye gönder şeklinde yazılmış mantıklı kurallar bu adres karşısında yetersiz kalıyor.  Location tanımına göre istek bir şekilde fpm’ye yönlendirilse bile parametrler doğru şekilde alınamadığından PHP tarafından Image was not found, sorry. hatası dönüyor.

Adres satırının içindeki dosya adını ve parametreleri ayrıştırıp php-fpm’ye göndermek için şu location tanımını kullanmak gerekiyor.

location ~ ^.+\.php {
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;

fastcgi_param  PATH_INFO          $fastcgi_path_info;
fastcgi_param  PATH_TRANSLATED    $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  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;
}

Post a Comment

You must be logged in to post a comment.