Ubuntu 22.04’te Nginx PHP-FPM ile nasıl kurulur ve yapılandırılır

Nginx, hız ve ölçeklenebilirlik göz önünde bulundurularak geliştirilmiş ücretsiz, açık kaynaklı ve güçlü bir web sunucusudur.  Yüzbinlerce müşteriye aynı anda hizmet verme kapasitesine sahiptir.  Nginx, PHP komut dosyalarını ve uygulamalarını çalıştırmak için PHP Hızlı İşlem Yöneticisini (PHP-FPM) kullanır.  PHP-FPM, geleneksel CGI tabanlı çok kullanıcılı PHP ortamlarından çok daha hızlıdır ve aynı zamanda farklı PHP sürümleriyle birden fazla uygulamanın barındırılmasına olanak tanır.

Bu yazımızda Ubuntu 22.04 sunucusuna Nginx’in PHP-FPM ile nasıl kurulacağını göstereceğiz.

 

Nginx web sunucusunu yükleme

Nginx web sunucusu paketi standart Ubuntu deposuna dahildir.  Bu nedenle aşağıdaki komutla kolayca yükleyebilirsiniz:

apt install nginx -y

Nginx web sunucusu paketini kurduktan sonra Nginx hizmetini aşağıdaki komutla başlatın:

systemctl start nginx

Nginx’in durumunu aşağıdaki komutla kontrol edebilirsiniz:

systemctl status nginx

Aşağıdaki çıktıyı görmelisiniz:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-04 13:58:34 UTC; 16s ago
       Docs: man:nginx(8)
   Main PID: 46938 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 8.2M
        CPU: 63ms
     CGroup: /system.slice/nginx.service
             ??46938 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??46940 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??46941 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Nov 04 13:58:34 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 04 13:58:34 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Nginx sürümünü kontrol etmek için aşağıdaki komutu çalıştırın:

nginx -V

Aşağıdaki çıktıda Nginx sürümünü görmelisiniz:

nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 3.0.2 15 Mar 2022

Artık Nginx kuruldu ve çalışıyor.  Şimdi web tarayıcınızı açın ve http://sunucunuzun-ip URL’sini içeren Nginx test sayfasını kontrol edin.  Aşağıdaki ekranda Nginx test sayfasını görmelisiniz:

image 6272

PHP-FPM’yi yükleyin

Daha sonra, PHP kodunu internet üzerinden çalıştırmak için PHP ve PHP-FPM’yi yüklemeniz gerekir.  Her iki paketi de aşağıdaki komutla kurabilirsiniz:

apt install php php-fpm -y

Kurulum tamamlandıktan sonra aşağıdaki komutla PHP sürümünü kontrol edin:

php --version

Aşağıdaki çıktıyı görmelisiniz:

PHP 8.1.2-1ubuntu2.6 (cli) (built: Sep 15 2022 11:30:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.6, Copyright (c), by Zend Technologies

Daha sonra PHP-FPM hizmetini aşağıdaki komutla başlatın.

systemctl start php8.1-fpm

PHP-FPM’nin durumunu aşağıdaki komutla kontrol edebilirsiniz:

systemctl status php8.1-fpm

Aşağıdaki çıktıyı görmelisiniz:

? php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-04 14:00:10 UTC; 38s ago
       Docs: man:php-fpm8.1(8)
    Process: 56127 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81 (code=e>
   Main PID: 56123 (php-fpm8.1)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4579)
     Memory: 7.2M
        CPU: 73ms
     CGroup: /system.slice/php8.1-fpm.service
             ??56123 "php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf)" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ??56125 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ??56126 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Nov 04 14:00:10 ubuntu2204 systemd[1]: Starting The PHP 8.1 FastCGI Process Manager...
Nov 04 14:00:10 ubuntu2204 systemd[1]: Started The PHP 8.1 FastCGI Process Manager.

PHP-FPM için Nginx’i yapılandırma

Daha sonra, bir Nginx sanal ana bilgisayarının bir PHP web sitesini barındırması için bir yapılandırma dosyası oluşturun.

nano /etc/nginx/conf.d/test.conf

Aşağıdaki yapılandırmaları ekleyin:

server {
         listen       80;
         server_name  test.example.com;
         root         /var/www/html/;

         access_log /var/log/nginx/example.com-access.log;
         error_log  /var/log/nginx/example.com-error.log error;
         index info.php index.htm index.php;

         location / {
                      try_files $uri $uri/ /index.php$is_args$args;
         }

         location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
    }
}

Dosyayı kaydedip kapatın, ardından aşağıdaki komutla basit bir PHP sitesi oluşturun:

nano /var/www/html/info.php

Aşağıdaki kodu ekleyin:

<?php echo phpinfo();?>

Dosyayı kaydedip kapatın ve aşağıdaki komutla Nginx yapılandırmasını kontrol edin:

nginx -t

Aşağıdaki çıktıyı almalısınız:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ardından değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın:

systemctl restart nginx

PHP sayfasını kontrol edin

Artık Nginx, PHP kodunu yürütmek için PHP-FPM ile yapılandırılmıştır.  Artık bunu http://sunucunuzun-ip URL’si ile test edebilirsiniz.  Aşağıdaki ekranda PHP test sayfasını görmelisiniz:

image 6272 p1

 

 

Yazının orijinalini buradan okuyabilirsiniz.

Hüseyin GÜÇ

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım. Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum. Son 6 yıldır  sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum. Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.