LEMP Stack Nedir ?
LEMP açılımı çalışması için kullanılan servislerin baş harflerinden almaktadır. Linux + Nginx + MySQL/MariaDB + PHP şeklinde açılımı bulunan LEMP basit web server kurmamıza yardımcı olmaktadır.
Günümüzde bir çok web sitesinin arkasında hosting kontrol panelleri olmanda kullanılmaktadır. Hosting kontrol panelleri bireysel kullanımda daha fazla tercih edilsede, profesyonel kullanımlarda hosting kontrol panellerine ait zaafiyetlere yakalanmamak için saf bir şekilde LEMP Stack kurmayı tercih ederler.
Adım 1: CentOS 7 üzerine Nginx Web Sunucusunu kurun
Nginx, Apache’ye kıyasla hızlı bir web sunucusudur ve bu günlerde daha popüler hale gelmektedir. Nginx’i CentOS 7 üzerine kurmak için aşağıdaki komutu kullanarak EPEL deposunu eklememiz gerekiyor. EPEL, Enterprise Linux için Ekstra Paketler anlamına gelir.
sudo yum install epel-release -yDepo eklendiğine göre, Nginx’i artık kurabiliriz.
sudo yum install nginx -yNginx kurulduktan sonra onu başlatmamız gerekiyor.
sudo systemctl start nginxSistem önyükleme sırasında başlamak için Nginx’i etkinleştirin.
sudo systemctl nginx enableÇalışıp çalışmadığını kontrol edin:
service nginx status
Servisin herkese açık bir şekilde çalışıp çalışmadığını kontrol etmek için sunucunuzun dış ipsini tarayıcınıza http://SUNUCUIP şeklinde yazabilirsiniz.

NOT: Eğer tarayıcınıza ip adresinizi yazdıktan sonra ulaşamazsanız, bunun nedeni firewall sisteminizde ilgili servisin kullandığı portların güvenlik nedeniyle açık olmamasından kaynaklı olacaktır.
sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo service iptables save
Yukarıdaki işlem ile sunucunuzdan dışarı çıkan port kısıtlamasını kaldırabilirsiniz.
Adım 2: MariaDB Veritabanı Sunucusunu CentOS 7’ye yükleyin
MariaDB, MySQL için açılan bir alternatiftir. Bazı versiyonlara göre MariaDB’nin MySQL’e göre daha hızlı olduğu global web analistleri tarafından belirlenmiştir. Aşağıdaki komutu kullanarak kurun:
sudo yum install mariadb-server mariadb -yKurulduktan sonra başlatmamız gerekiyor.
sudo systemctl start mariadbSistem önyükleme sırasında başlamak için MariaDB’yi etkinleştirin.
sudo systemctl enable mariadbServisin durumunu kontrol edin.
systemctl status mariadb
mysql_secure_installationYukarıdaki komutu çalıştırarak MariaDB’nin güvenlik ayarlarını gerçekleştireceğiz.
Change the password for root ? : y
New password: (yeni root şifreniz)
Re-enter new password: (yeni root şifrenizi tekrar yazınız)
Remove anonymous users?: y
Disallow root login remotely?: y
Remove test database and access to it?: y
Reload privilege tables now?: y

Bu işlemler MariaDB‘nin güvenlik ayarlarını göstermektedir burada tüm seçeneklere y (yes) şeklinde yanıt vererek tamamlayınız.
SQL servisini doğru bir şekilde yapılandırdığımızdan emin olmak için aşağıdaki gibi komutları uygulayarak test edebilirsiniz.
mysql -u root -p
SHOW DATABASES;
exit
Yukarıdaki görüntüde mevcut sistem için gerekli databases gözükmektedir. Bu ekranı görüntülediğimizde sorunsuz bir şekilde kurulduğunu görebilmekteyiz.
Adım 3: CentOS 7’ye PHP-FPM’yi kurun
PHP kurulumu için 7.4 versiyon sürümünü kullanacağımız için epel ve remi depolarını kurmamız gerekmektedir.
yum -y install epel-release yum-utils
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
İlgili repoyu sistemimize tanımladığımız için artık versiyon paketini tanımlayıp kuruluma geçeceğiz. Bu işlem için yukarıda belirttiğimiz gibi PHP 7.4 versiyonunu kullanacağız.
yum-config-manager --enable remi-php74
Yukarıdaki işlemle php repomuzdan ilgili versiyonumuzu seçtik eğer farklı bir versiyon seçmek istersek aşağıdaki gibi seçebiliriz.
yum-config-manager --enable remi-php56
yum-config-manager --enable remi-php70
yum-config-manager --enable remi-php71
yum-config-manager --enable remi-php72
yum-config-manager --enable remi-php73NOT: Yukarıdaki komutlar php sürümlerini ayırmak amacıyla örnek olarak gösterilmiştir, tavsiye edilen php sürümü 7.4 en son sürümdür.
Sıra geldi php ve eklentilerini yüklemeye, bu aşamada en sık kullanılan php uzantılarını(eklentilerini) kurulumu gerçekleştireceğiz.
yum -y install php php-cli php-common php-devel php-enchant php-gd php-imap php-intl php-json php-mbstring php-odbc php-pdo php-pgsql php-soap php-ldap php-tidy php-xml php-xmlrpc php-opcache php-pecl-mcrypt
PHP eklentilerinin yüklenmesi tamamlandıktan sonra Apache ile entegre bir şekilde çalışabilmesi amacıyla Apache servisini yeniden başlatacağız.
sudo systemctl restart nginxŞimdi php-fpm yapılandırma dosyasını düzenleyin:
sudo nano /etc/php-fpm.d/www.confAşağıdaki satırı bulun:
listen = 127.0.0.1:9000şuna değiştirin:
listen = /var/run/php-fpm/php-fpm.socksonra aşağıdaki iki satırı bulun:
;listen.owner = nobody
;listen.group = nobodyönceki noktalı virgülleri kaldırın. Son olarak, kullanıcı ve grup değerini “apache” den “nginx” e değiştirin:
user = nginx
group = nginxDosyayı kaydedip kapattıktan sonra, PHP İşlemcisini başlatın:
sudo systemctl restart php-fpmArdından, php-fpm’yi sistem önyüklemesinde başlatmak için etkinleştirin.
sudo systemctl enable php-fpmPHP-FPM taraflı ayarlamalar yapıldıktan sonra bu işlemi Nginx web server’a php uzantılı dosyaları nasıl yorumlaması gerektiğinin ayarlamasını yapacağız.
nano /etc/nginx/nginx.confserver {
# ... burada bir takım ayarlar mevcut
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}sudo systemctl restart nginx
sudo systemctl restart php-fpmŞeklinde düzenleme sağladığınızda artık sorunsuz olarak php uzantılı dosyaların yorumlamasını PHP-FPM’e paslıyor oluyorsunuz.
Adım 4: PHP’yi test edin
Web kök dizininde bir phpinfo dosyası oluşturun.
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.phpYeni oluşturduğunuz dosyayı kontrol etmek için sunucunuzun dış ipsini tarayıcınıza http://SUNUCUIP/info.php şeklinde yazabilirsiniz.

Yukarıdaki ekranı gördüğünüz zaman artık sorunsuz bir şekilde web sunucunuzu ve php servisini kurduğunuzu görebilirsiniz.
Bu işlemler dünya çapında en çok kullanılan konfigürasyon lardan yararlanarak hazırlanmıştır. Makalemizde buraya kadar sorunsuz bir şekilde LEMP kurulumunu tamamlanmış bulunmaktasınız.



