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:

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:

 

 

Yazının orijinalini buradan okuyabilirsiniz.