Bu eğitici makalede, Ubuntu 18.04’e Nginx, MariaDB ve PHP7.2’nin (LEMP) nasıl kurulacağını göstereceğim . Bir yazılım yığını, birlikte paketlenmiş bir dizi yazılım aracıdır. LEMP, hepsi açık kaynak kodlu ve kullanımı ücretsiz olan Linux, Nginx (Motor-X), MariaDB / MySQL ve PHP’yi temsil eder. Dinamik web sitelerine ve web uygulamalarına güç veren en yaygın yazılım yığınıdır. Linux işletim sistemidir; Nginx web sunucusudur; MariaDB / MySQL veritabanı sunucusudur ve PHP dinamik web sayfaları oluşturmaktan sorumlu sunucu tarafı kodlama dilidir.
Adım 1: Yazılım Paketlerini Güncelleyin
LEMP yığınını yüklemeden önce, Ubuntu 18.04 işletim sisteminizde aşağıdaki komutları çalıştırarak depo ve yazılım paketlerini güncellemek iyi bir uygulamadır.
sudo apt update
sudo apt upgrade
Adım 2: Nginx Web Sunucusunu Yükleyin
Nginx yüksek performanslı bir web sunucusudur ve bu günlerde çok popülerdir. Ayrıca ters proxy ve önbellek sunucusu olarak da kullanılabilir. Nginx Web sunucusunu kurmak için bu komutu girin.
sudo apt install nginx
Kurulduktan sonra, aşağıdaki komutu çalıştırarak Ubuntu önyüklendiğinde Nginx’in otomatik olarak başlamasını sağlayabiliriz.
sudo systemctl enable nginx
Sonra Nginx’i şu komutla başlatın:
sudo systemctl start nginx
Şimdi durumunu kontrol edin.
systemctl status nginx
Çıktı aşağıdaki gibi olacaktır.
● 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 Thu 2018-05-17 02:20:05 UTC; 2min 56s ago
Docs: man:nginx(8)
Main PID: 19851 (nginx)
Tasks: 2 (limit: 2059)
CGroup: /system.slice/nginx.service
├─19851 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─19853 nginx: worker process
“ Etkin ”, önyükleme zamanında otomatik başlatmanın etkin olduğunu gösterir ve Nginx’in çalıştığını görebiliriz. Yukarıdaki komutun çalıştırıldıktan hemen sonra çıkmayacağına dikkat edin. Çıkmak için “ q ” ya basmanız gerekir .
Nginx sürümünü kontrol edin.
nginx -v
Çıktı aşağıdaki gibi oalcaktır.
nginx version: nginx/1.14.0 (Ubuntu)
Şimdi tarayıcı adres çubuğuna Ubuntu 18.04 sunucunuzun genel IP adresini yazın. Nginx Web sunucusunun düzgün çalıştığı anlamına gelen “Nginx’e Hoş Geldiniz” Web sayfasını görmelisiniz. Yerel Ubuntu 18.04 bilgisayarınıza LEMP yüklüyorsanız , tarayıcı adres çubuğuna 127.0.0.1
veya yazın localhost
.
Bazı bulut sunucusu sağlayıcılarının varsayılan olarak tüm gelen trafiği engelleyebileceğini unutmayın; bu nedenle tarayıcınız Nginx web sunucusuna bağlanamıyorsa, kontrol panelinizde güvenlik duvarı kurallarını ayarlamanız gerekebilir.

Son olarak, www-data
(Nginx kullanıcısı) web dizini sahibi yapmalıyız . Varsayılan olarak kök kullanıcıya aittir.
sudo chown www-data:www-data /usr/share/nginx/html -R
Adım 3: MariaDB Veritabanı Sunucusunu Yükleyin
MariaDB, MySQL’in yerine geçen bir uygulamadır. Oracle’ın MySQL’i kapalı kaynaklı bir ürüne çevirebileceğinden endişe duyan eski MySQL ekibinin üyeleri tarafından geliştirildi. MariaDB’yi Ubuntu 18.04’e kurmak için aşağıdaki komutu girin.
sudo apt install mariadb-server mariadb-client
Kurulduktan sonra MariaDB sunucusu otomatik olarak bakılmalıdır. Durumunu kontrol etmek için systemctl kullanın .
systemctl status mariadb
Çıktısı aşağıdaki gibi olacaktır.
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:39:57 UTC; 49s ago
Main PID: 21595 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2059)
CGroup: /system.slice/mariadb.service
└─21595 /usr/sbin/mysqld
Çalışmıyorsa, şu komutla başlatın:
sudo systemctl start mariadb
MariaDB’nin önyükleme zamanında otomatik olarak başlamasını sağlamak için;
sudo systemctl enable mariadb
Şimdi yükleme sonrası güvenlik komut dosyasını çalıştırın.
sudo mysql_secure_installation
MariaDB kök parolasını girmenizi istediğinde, kök parola henüz ayarlanmadığından Enter tuşuna basın. Ardından MariaDB sunucusunun kök şifresini ayarlamak için y girin .

Ardından, anonim kullanıcıyı kaldıracak, uzak kök girişini devre dışı bırakacak ve test veritabanını kaldıracak kalan tüm soruları cevaplamak için Enter tuşuna basabilirsiniz. Bu adım, MariaDB veritabanı güvenliği için temel bir gereksinimdir. (Y’nin büyük harfle yazıldığına dikkat edin, bu varsayılan yanıttır).

Varsayılan olarak, Ubuntu’daki MaraiDB paketi unix_socket
kullanıcı girişini doğrulamak için kullanır , bu da temel olarak MariaDB konsolunda oturum açmak için işletim sisteminin kullanıcı adını ve şifresini kullanabileceğiniz anlamına gelir. Böylece MariaDB kök parolası girmeden oturum açmak için aşağıdaki komutu çalıştırabilirsiniz.
sudo mariadb -u root
Çıkmak için çalıştırın;
exit;
MariaDB sunucusu sürüm bilgilerini kontrol edin.
mariadb --version
Gördüğünüz gibi MariaDB 10.1.29’u kurduk.
mariadb Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Adım 4: PHP7.2’yi yükleyin
PHP7.2, Ubuntu 18.04 deposuna dahil edilmiştir ve PHP7.1 üzerinde küçük bir performans iyileştirmesine sahiptir. Php7.2 ve bazı yaygın uzantıları yüklemek için aşağıdaki komutu girin.
sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
WordPress gibi içerik yönetim sistemleri (CMS) için PHP uzantılarına ihtiyaç vardır . Örneğin, yüklemeniz eksikse php7.2-xml
, WordPress site sayfalarınızdan bazıları boş olabilir ve Nginx hata günlüğünde aşağıdaki gibi bir hata bulabilirsiniz:
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
Bu PHP uzantılarını yüklemek, CMS’nizin sorunsuz çalışmasını sağlar. Şimdi php7.2-fpm’yi başlatın.
sudo systemctl start php7.2-fpm
Önyükleme zamanında otomatik başlatmayı etkinleştir.
sudo systemctl enable php7.2-fpm
Durumu kontrol et:
systemctl status php7.2-fpm
Örnek çıktı:
● php7.2-fpm.service – The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese Active: active (running) since Thu 2018-05-17 03:04:46 UTC; 2min 43s ago Docs: man:php-fpm7.2(8) Main PID: 31922 (php-fpm7.2) Status: “Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se Tasks: 3 (limit: 2059) CGroup: /system.slice/php7.2-fpm.service ├─31922 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─31939 php-fpm: pool www └─31940 php-fpm: pool www
Adım 5: Nginx Sunucu Bloğu Oluşturma
Nginx sunucu bloğu, Apache’deki sanal bir ana bilgisayar gibidir. Varsayılan sunucu bloğunu kullanmayacağız çünkü PHP kodunu çalıştırmak yetersizdir ve değiştirirsek, karışıklık haline gelir. Bu nedenle , aşağıdaki komutu çalıştırarak dizindeki default
symlink’i kaldırın sites-enabled
. (Hala kullanılabilir /etc/nginx/sites-available/default
.)
sudo rm /etc/nginx/sites-enabled/default
Ardından /etc/nginx/conf.d/ dizini altında yepyeni bir sunucu blok dosyası oluşturun .
sudo nano /etc/nginx/conf.d/default.conf
Aşağıdaki metni dosyaya yapıştırın. Aşağıdaki snippet, Nginx’in IPv4 bağlantı noktası 80 ve IPv6 bağlantı noktası 80’de tümünü yakalama sunucusu adıyla dinlemesini sağlayacaktır.
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
Dosyayı kaydedip kapatın. Ardından Nginx yapılandırmalarını test edin.
sudo nginx -t
Test başarısız olursa, Nginx’i yeniden yükleyin.
sudo systemctl reload nginx
6. Adım: PHP’yi test edin
PHP-FPM’yi Nginx Web sunucusuyla test etmek info.php
için belge kök dizininde bir dosya oluşturmamız gerekir .
sudo nano /usr/share/nginx/html/info.php
Aşağıdaki PHP kodunu dosyaya yapıştırın.
php phpinfo (); ?>
Dosyayı kaydedip kapatın. Şimdi tarayıcı adres çubuğuna girin server-ip-address/info.php
. sever-ip-address
Gerçek IP’nizle değiştirin . Bu öğreticiyi yerel bilgisayarınızda izlerseniz, 127.0.0.1/info.php
veya yazın localhost/info.php
.
Sunucunuzun PHP bilgilerini görmelisiniz. Bu, PHP komut dosyalarının Nginx web sunucusuyla düzgün çalışabileceği anlamına gelir.

Tebrikler! Ubuntu 18.04’e Nginx, MariaDB ve PHP7.2’yi başarıyla yüklediniz. Sunucunuzun güvenliği için, info.php
bilgisayar korsanının görmesini önlemek için dosyayı şimdi silmelisiniz .
udo rm /usr/share/nginx/html/info.php
Sonraki adım
Ayrıca MySQL / MariaDB veritabanı sunucusu için web tabanlı bir yönetici paneli olan phpMyAdmin’i de kurmak isteyebilirsiniz. Bu konuyu başka bir makalede detaylı olarak paylaşacağım, bizi takipte kalın..