Ubuntu 18.04 LTS’ye LEMP Stack (Nginx, MariaDB, PHP7.2) Kurulumu

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_socketkullanı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.phpiç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.phpsever-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.phpbilgisayar 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..

Şevket Turgut YAZICI

Merhaba! Benim Adım Şevket Turgut YAZICI dahinet.com kurucusu ve sahibiyim. Web siteleri üzerinde SEO çalışması ve hızlandırma projeleri üzerine çalışıyorum. Bilgi sahibi olduğum konular hakkında makaleler hazırlıyorum. Fotoğraf - Web Tasarım - Bilgi işlem #seo #sem #photoshop #wordpress #php-fusion #html5 #css #MySQL #Php #cwp #vps #vds #dedicated #server managed #dahinet

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

%d blogcu bunu beğendi: