+90 (542) 730 18 10 umutpamuk59@gmail.com

CentOS LEMP Kurulumu

CentOS LEMP Kurulumu


Centos 7’ye Linux, Nginx, MySQL, PHP kurulum rehberi.

Lemp Nedir ?

Web sitemizi barındıracak bir sunucu almaya karar verdiysek içerisine ilk olarak LEMP veya LAMP yüklememiz gerekmektedir. LAMP Kurulumu yazımı bir önceki kurulum yazımda anlatmıştım. Lemp Web siteleri Web uygulamaları geliştirirken kullana bileceğimiz açık kaynak kodlu ve tamamen ücretsiz bir yazılım grubudur. Lemp ile Lamp arasındaki fark ise kullanılan web sunucusudur.
Lemp => Linux, Nginx, MySQL, PHP yazılım gruplarından oluşur.
Lamp => Linux, Apache, MySQL, PHP yazılım gruplarından oluşur.

Kurulum

1. Adım Nginx Kurulumu.
2. Adım MySQL(MariaDB) Kurulumu.
3. Adım PHP7.2-FPM Kurulumu.
4. Adım Nginx Konfigürasyonu.

Nelere İhtiyacımız Olacak ?

  • Sunucuya bağlanmadan önce Ssh root erişimimiz olması gerekmektedir.
  • Eğer Windows işletim sistemi kullanıyorsanız Putty ile Ssh bağlantısı yapabilirsiniz.
  • Eğer macOS işletim sistemi kullanıyorsanız terminal üzerinden
    ssh root@ıpadresi olarak sunucuya bağlana bilirsiniz.

1. Adım Nginx Kurulumu

İlk olarak sistemimizi güncelliyoruz

# yum update

Centos EPEL kütüphanesinde varsayılan olarak Nginx bulunmamaktadır ve aşağıdaki komut ile ekliyoruz.

# yum install epel-release

Şimdi Nginx kurulumuna başlıyoruz.

# yum -y install nginx

Kurulum tamamlandıktan sonra nginx web sunucumuzu başlatıyoruz ve her zaman çalışması için enable hale getiriyoruz.

# systemctl start nginx
# systemctl enable nginx

Kurulumun tamamlandığını ve bir sorunun olup olmadığını gösterir.

# systemctl status nginx

Aynı zamanda ngix -t komutu ilede herhangi bir sorun var ise görebiliriz.

# nginx -t

2. Adım MySQL(MarianDB) Kurulumu

MariaDB,  MySQL hizmetinin topluluk tarafından geliştirilmiş bir uzantısıdır ve aynı zamanda ücretsizdir. Kurulum için root yetkisiyle beraber teminal ekranına aşağıdaki kodu yapıştırın.

# yum install mariadb-server mariadb -y

MariaDB kurulumunu tamamladıktan sonra ise aşağıdaki kodlar ile birlikte hizmeti başlatalım ve her açılışta veritabanımızı etkin hale getirelim.

# systemctl start mariadb
# systemctl enable mariadb

MariaDB ‘yi başlattıkta sonra bazı riskli varsayılanları kaldırmak için aşağıdaki komutu çalıştırın.

# mysql_secure_installation

Öncelikle, MariaDB root parolası soracaktır, ancak bu başlangıç kurulumu olduğundan henüz buna sahip değiliz. Bu nedenle, sadece ENTER tuşuna basalım. Bir sonraki komut isteminde root parolası belirlemek isteyip istemediğimiz soracaktır, Y tuşlayıp Enter ederim ve root parolamızı oluşturalım. Ardından gelen tüm sorulara Y tuşlayıp Enter ile geçelim. Ve kurulum ve ayarlarımızı tamamlamış bulunmaktayız. Diğer adıma geçelim.

3. Adım PHP7.2-FPM Kurulumu

Apache den farklı olarak Nginx web sunucusu kurulumunda fpm kurmamız gerekmektedir. İlk olarak centOS repository de php72-php-fpm varsayılan olarak bulunmadığı için dışarıdan repository’e ekliyoruz.

# yum --enablerepo=remi-safe -y install php72-php-fpm

Kurulum tamamlandıktan sonra başlatıyor ve açılışta etkin olması için enable olarak güncelliyoruz.

# systemctl start php72-php-fpm
# systemctl enable php72-php-fpm

Php-fpm ‘in çalışıp çalışmadığını kontrol ediyoruz.

# systemctl status php72-php-fpm

Sıra geldi konfigürasyon ayarlamalarımızı yapmaya. Php7.2 konfigürasyon dosyalarımız “/etc/opt/remi/php72” uzantısında yer almaktadır.

# nano /etc/opt/remi/php72/php-fpm.d/www.conf

===========================================================
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user’s group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; ‘ip.add.re.ss:port’ – to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; ‘[ip:6:addr:ess]:port’ – to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; ‘port’ – to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; ‘/path/to/unix/socket’ – to listen on a unix socket.
; Note: This value is mandatory.
listen = /run/php/php7.2-fpm.sock veya listen = 127.0.0.1:9000

Php72-php-fpm yapılandırma işlemimiz tamamlanmıştır yapılan işlemleri aktif etmesi için yeniden başlatıyoruz.

# systemctl restart php72-php-fpm

Nginx Konfigürasyonu

Son olarak Nginx içerisinde web proje dosyalarımızın olacağı klasörü ve yetkilerimizi ayarlamamız gerekmektedir. İlk olarak oluşturduğumuz web sitesi adında bir klasör oluşturuyoruz. İçerisinde web proje dosyalarımız bulunacaktır.

# mkdir -p /var/www/ummutpamuk.com

Ardından Nginx server bloğu ve Php72-php-fpm ayarlarımızı giriyoruz.

# nano /etc/nginx/conf.d/umutpamuk.com.conf
server {
        listen 80;
        
        root /var/www/umutpamuk.com;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name www.umutpamuk.com umutpamuk.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass the PHP scripts to FastCGI server using the /run/php/php7.1-fpm.sock socket
        #
        location ~ \.php$ {
                include fastcgi.conf;
                fastcgi_pass 127.0.0.1:9000;
                #fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }
}

Php72-php-fpm yapılandırma ayarlarında listen kısmına .sock veya 127.0.0.1:9000 hangisini kullanmayı tercih ettiyseniz fastcgi_pass kısmınada aynısını girmelisiniz.

Basit bir şekilde tüm ayarlarımızı yapmış bulunmaktayız. Şimdi ise nginx web sunucumuzu test etmek için yukarıda da göstermiş olduğum nginx -t komutunu ile web sunucumuzu denetliyoruz.
# nginx -t

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

Büyük ihtimalle hata alacaksınız. Bunun düzeltmek için “/var/www/umutpamuk.com”  klasörünün yetkilerini düzenleyin :

# chown -R nginx:nginx /var/www/umutpamuk.com
# systemctl restart nginx

Ve işlemlerimiz son bulmuştur. Başarılı bir şekilde LEMP kurulumunuzu tamamlanmış bulunuyorsunuz. Test etmek için ise root klasörü altında info.php klasörünü şeklinde kayıt ederek php info çıktınızı görebilirsiniz.

# echo "<?php phpinfo(); ?>" > /var/www/umutpamuk.com/info.php

Bir cevap yazın

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