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.
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.