Merhabalar bu yazımda ubuntu kurulu sistemlere LEMP kurulumundan bahsedeceğim.

Nginx KURULUMU

İşe Nginx kurulumuyla başlayalım.Öncelikle sistemimizi güncelleyip ardından nginx kurulumu için ilgili komutunu verelim.

     sudo apt update && sudo apt install nginx

kurulum tamamlandıktan sonra sunucunun durumunu kontrol edelim.

     sudo service nginx status

çalışmıyorsa “start” komutuyla server ‘ ı ayağa kaldıralım.

     sudo service nginx start

running” ibaresini görüyorsak, nginx başarıyla çalışıyor demektir.
tarayıcımızı açıp adres satırına “localhost” yazarak enter tuşuna basalım. Karşımıza aşağıdaki gibi bir ekran çıkmalı.

localhost

Not:
ssh ayarlarını yapmak için gerekli kuralları ve nginx firewall ayarlarını bilerek es geçiyorum. Arzu edenler buraya göz atabilir.
Ayrıca localhost url ‘ i yerine virtual host tanımlamak isteyenler burayıinceleyebilir.

MySQL KURULUMU

Sıra geldi MySQL kurulumuna, öncelikle yeniden sistemimizi güncelleyelim ve gerekli kurulumu başlatalım.

     sudo apt update && sudo apt install mysql-server

kurulum tamamlandıktan sonra mysql root parolamızı oluşturmak için aşağıdaki komutu verelim.

     sudo mysql_secure_installation

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

bu hatayı almamak için mysql server ‘ ı ayağa kaldırıyoruz.

     sudo service mysql start

Starting MySQL database server mysqld No directory, logging in with HOME=/

karşınıza böyle bir mesaj gelebilir. Bu veritabanı sunucunuzun dizin yolu yapılandırılmadığından dolayı oluyor. Buradan çıkmak için ctrl + z tuş kombinasyonunu kullanabiliriz.(farklı işletim sistemleri ve terminaller için tuşlar değişebilir)

Son olarak da bu komutu vererek belirlemiş olduğumuz parolayla mysql’ e terminalden ulaşabiliriz.

     sudo mysql -u root -p

PHP KURULUMU

php için yüklememiz gereken paketler varsa bu komutla listesini görebiliriz. Bize gerekenleri kuralım.

     ~$ sudo apt-cache search php7.2     ~$ sudo apt install php7.2 php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-mysql php7.2-mbstring php7.2-mcrypt php7.2-zip php7.2-fpm

php.ini dosyasını düzenlemek gerek. cgi.fix_pathinfo=1 bulup cgi.fix_pathinfo=0 şeklinde düzenleyerek kaydedin.

     sudo nano /etc/php/7.2/cli/php.ini

php-fpm servisini ayağa kaldıralım

     sudo service php7.2-fpm restart

nginx ayarlaını yapalım. default dosyasını aşağıdaki gibi düzenleyelim.

     sudo nano /etc/nginx/sites-available/default
     # Add index.php to the list if you are using PHP
     index index.php index.html index.htm index.nginx-debian.html;
     location ~ .php$ {
     include snippets/fastcgiphp.conf;
     # With php-fpm (or other unixsockets):
     fastcgi_pass unix:/var/run/php/php7.2fpm.sock;
     # With php-cgi (or other tcp sockets):
     # fastcgi_pass127.0.0.1:9000;
     }

Kalın yazıyla gösterilen “index.php” yi gösterildiği gibi default dosyamıza ekleyelim. Bunun dışında yine kalın yazıyla gösterilenleri yorum satırından çıkarararak aktif hale getirelim. Son olarak da “fastcgi_pass unix:/var/run/php/php7.2fpm.sock;” satırında php versiyonumuza göre “php7.2fpm.sock” kısmını düzenleyelim.(bu yazıda php 7.2.* versiyonu kullanılmıştır.)

kaydedip, syntax hatası olup olmadığını kontrol edelim.

     sudo nginx -t

çıktımız bu şekildeyse sorun yok demektir.

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

nginx sunucumuzu yeniden başlatalım

     sudo service nginx restart

sunucu ana dizinine gidelim

     cd /var/www/html

html klasörü içindeki dosyaları silip phpinfo metodunu göstereceğimiz dosyayı oluşturalım

     sudo touch index.php && sudo nano index.php

index.php dosyasının içine de

     <?php        phpinfo();      ?>

yazıp kaydedelim. Tarayıcımızdan localhost a girdiğimizde ekran, aşağıdaki gibi görünüyorsa işlem başarıyla tamamlanmış demektir.

localhost