July 23, 2014

Centos 7 Üzerine (LEMP) Kurulumu

LEMP Paketi genellikle dinamik web siteleri ve uygulamalarını barındırmak amacıyla arka plan da çalışmasıyla ünlenmiş bir yazılım topluluğu olarak adlandırabiliriz ve tamamen açık kaynak kodlu bir yazılım topluluğudur. ve ismini kurduğu açık kaynak kodlu programlardan almaktadır.

  • L inux Operation System
  • E Nginx
  • M ysql
  • P HP

Mysql olarak da MariaDB kullanmaktadır.Dinamik içerik için ise de PHP kullanılmaktadır kullanacağımız sistemimizde Öncelikli olarak sisteminizi Centos 7 olarak sıfırdan format atarak işe başlayın sonrasında SSH bağlanmanız gerekiyor bağlanırken root olarak bağlanın ki işlemlerimizi düzgün bir şekilde yapabilelim.

Nginx kurabilmemiz için öncelikle aşağıdaki komut ile sisteme ekleme yapıyoruz.

nano /etc/yum.repos.d/nginx.repo

dosya içerisine aşağıdaki satırları ekliyoruz ve kayıt ediyoruz.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Sonrasında temel kurulum komutumuzu veriyoruz.

yum install nginx

Sisteminizde nginx başarıyla kurulmuş oldu güvenlik duvarımızı ayarlamamız gerekiyor şimdi

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

domaininize yada ip adresinize giriş yapın karışınıza şöyle birşeyler gelmesi lazım

nginx_defaultgorsel1

İP adresimi bilmiyorum peki nasıl giriş yapacağım diyorsanız ufak bir kodumuz olacak bu kod ile ip adresinizi bulabilirsiniz.

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

yada aşağıdaki siteyide curl aracılığı ile kullanabilirsiniz.

curl http://icanhazip.com

MYSQL Kurulumu(MariaDB)

Mysqlin satıldığını biliyorsunuzdur.Ekip sonradan MariaDB olarak adlandırılan gene açık kaynak olarak ilerleyen SQL i yarattı ve mysql ile tamamen uyumlu ve sorunsuz çalışmasını sağladılar ancak tek bir şey farklıydı kurulumları bunun dışında SQL komutları ve diğer ayarlamalar aynıdır.

yum -y install mariadb mariadb-server net-tools

Kurulum tamamlandı sistemde başlatmamız gerekiyor haliyle

systemctl start mariadb

Şimdi Sunucumuzda SQL aktif bir biçimde çalışmaya başladı Ancak ayarlamalar yapmazsak başımızı çok ağrıtan güvenlik açıkları çıkar ortaya buda pek hoş bir durum olmaz

sudo mysql_secure_installation

Komutunu vererek kurulum işlemine geçiyoruz yani kurulum dediysemde db oluşturma ve genel ayarlamalar için kullanıcı vs belirleyeceğiz.Kabul etmemizi gerektirecek birşeyler gelecek karşımıza Y diyoruz ve devam ediyoruz gerekenleri giriyoruz.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

New password: Şifreniz
Re-enter new password: Şifreniz
Password updated successfully!
Reloading privilege tables..
... Success!

Sonrasında birşeyler sorarsa he deyip geçin yani ENTER Benden size tavsiye işlemlerinizi bitirdikten sonra root olarak SQL bağlantı kurulmasını kapatmanızı öneririm yoksa başınızı ağrıtacaktır.

systemctl enable mariadb.service

Böylelikle MYSQL(MariaDB) Kurulumumuzu tamamen bitirdik.

PHP Kurulumu

Ne demiştik dinamik içeriklerimiz için php kullanacağız demiştik bunun için haliyle önce php kurulumunu tam ve eksiksiz yapmamız gerekiyor.Aşağıdaki komutu vererek işlemlere başlıyoruz.

yum install php php-mysql php-fpm

Haliyle kurduğumuz PHP yi ayarlamamız gerekiyor bunun için ise

nano /etc/php.ini

php.ini mizi açıyoruz ve aşağıdaki değişiklikleri uyguluyoruz.

İlk olarak cgi.fix_pathinfo başında ; varsa onu kaldırıyorsunuz varsayılan değer 1 olarak geliyor bunu da 0 olarak ayarlıyorsunuz son olarak aşağıdaki gibi oluyor.

cgi.fix_pathinfo=0

Kaydedip kapatıyoruz.sıradaki ayarımız php-fpm yani www.conf ayarına nginx kullandığımız için birazcık ayarlamamız lazım haliyle

nano /etc/php-fpm.d/www.conf

listen kısmını aşağıdaki gibi yapıp kayıt edip çıkıyoruz.

listen = /var/run/php-fpm/php-fpm.sock

php-fpm yi başlatıyoruz.

systemctl start php-fpm

Nginxin php ile çalışmasını sağlamamız gerekiyor bunun içinde nginx in config dosyasına birkaç satır eklemez ve bazı yerleri değiştirmemiz gerekiyor ki nginx php ile randımanlı olarak çalışabilsin.

nano /etc/nginx/conf.d/default.conf

Açtığımızda karşımıza şu şekilde bi config kısmı açılacak

server {
    listen 80;
    server_name localhost;

      location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

Görmüş olduğunuz bu kısmı aşağıdaki gibi düzenliyorsunuz. ```console server { listen 80; server_name ip adresiniz; root /usr/share/nginx/html; index index.php index.html index.htm;

location / {
  try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

location = /50x.html {
  root /usr/share/nginx/html;
  }

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;
} } ```

değişiklikleri yaptıktan sonra kaydedip çıkıyoruz ve nginx restart atıyoruz böylelikle nginximiz benim değişimle engin ebimiz php ile uyumlu oluyor.

systemctl restart nginx

Test Aşaması

Nginx in phpsi olduysa bu aşamada yapacağımız ekranı görebilmeniz gerekiyor göremiyorsanız bir yerde yanlışlık yapmışsınızdır geri dönüp bunu düzelttikten sonra işleminize devam edeceksiniz.

cd /usr/share/nginx/html/

içerisine nano komutuyla 1 adet php dosyası açıp düzenleyelim.

nano info.php

içerisine

<?php phpinfo(); ?>

kayıt edip çıkıyoruz.Sonra sitenize yada ip adresinize giriş yapıyorsunuz.Aşağıdaki gibi bir ekran görüyorsanız php olmuş demektir.

phpinfogorsel1