CentOS 7 Üzerine LEMP Kurulumu
Linux sistem üzerinde bir web uygulaması yayınlayacaksanız kesinlikle tavsiyem Nginx’tir. Nginx oldukça hızlı kolay ve stabil bir web sunucusudur. Çok fazla esnek konfigürasyon girişlerine izin veriyor. Performas ayarlarından güvenlik yapılandırmalarına kadar birçok ayarı yapabiliyorsunuz. Ayrıca SPDY ve HTTP2 desteğide mevcut.
Bu kurulumu CentOS 7 üzerine kuracagız base server kurulumu yapıp internete bağlı olduğunuzu varsayıyorum.
1. İlk öce sistem güncellemesi
İlk önce sunucunuzu “Vmware olsun yada cloud VPS olsun” güncelliyoruz :
# yum update
2. Veritabanı Kurulumu MariaDB(MySQL)
CentOS 7 (RHEL) Mysql kurulumu yapıyoruz.
# yum -y install mariadb mariadb-server
Kurulumdan hemen sonra konfigurasyon için “/etc/my.cnf.d/server.cnf” dosyasında “bind-address” kısmını aşağıdaki gibi düzenliyoruz yada kontrol ediyoruz :
# nano /etc/my.cnf.d/server.cnf [mysqld] bind-address = 127.0.0.1
Şimdi Mysql i başlatıp otomatik açılması için enable ediyoruz :
# systemctl start mariadb
# systemctl enable mariadb
Güvenlik ayarları için scriptimizi çalıştırıyoruz mysql_secure_installation :
# mysql_secure_installation
Enter current password for root (enter for none): ENTER
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
3. Nginx Kurulumu
Centos EPEL kütüphanesinde default olarak Nginx bulunmaz bu nedenle eklemeniz gerekiyor :
# yum install epel-release
Sonrasında Nginx kurulunumu başlatıyoruz :
# yum -y install nginx
Kurulum tamamlandıktan sonra Nginx i start edip otomatik açılması için enable ediyoruz :
# systemctl start nginx
# systemctl enable nginx
Nginx kurulumumuzun çalışıp çalışmadığını kontrol ediyoruz:
# systemctl status nginx
The output of the command above should be similar to this:
● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) Main PID: 10092 (nginx) CGroup: /system.slice/nginx.service ├─10092 nginx: master process /usr/sbin/nginx ├─10093 nginx: worker process └─10094 nginx: worker process
Nginx’in çalışıp çalışmadığını web broowser’ınızın adres satırına http://ip_adresiniz i yazarak ta kontrol edebilirsiniz.
4. PHP7.1-FPM Kurulumu
Sıra geldi PHP7.1-FPM kurulumuna. Öncelikle yine CentOS repository’sine bir ilave daha yapıyoruz çünkü default olarak PHP-7.1 CentOS repository’sinde yok.
# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm && rpm -Uvh remi-release-7.rpm
PHP7.1-FPM Kurulumu için aşağıdaki komutu girip kurulumu başlatıyoruz :
# yum --enablerepo=remi-safe -y install php71-php-fpm
PHP7.1-FPM kuruldu, açılışta başlaması içi enable edip start ediyoruz :
# systemctl start php71-php-fpm
# systemctl enable php71-php-fpm
PHP7.1-FPM çalışıp çalışmadığını kontrol ediyoruz :
# systemctl status php71-php-fpm
The output of the command above should be similar to this:
● php71-php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php71-php-fpm.service; enabled; vendor preset: disabled) Active: active (running) Main PID: 10792 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" CGroup: /system.slice/php71-php-fpm.service ├─10792 php-fpm: master process (/etc/opt/remi/php71/php-fpm.conf) ├─10793 php-fpm: pool www ├─10794 php-fpm: pool www ├─10795 php-fpm: pool www ├─10796 php-fpm: pool www └─10797 php-fpm: pool www
Not : PHP-7.1 konfigürasyon dosyaları bu klasördedir. “/etc/opt/remi/php71”
PHP7.1-FPM ayarlarını kontrol ediyoruz :
# nano /etc/opt/remi/php71/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.1-fpm.sock
===========================================================
Dosyayı kaydedip PHP7.1-FPM servisini yeniden başlatıyoruz :
# systemctl restart php71-php-fpm
5. Nginx Konfigürasyonu
Son olarak nginx ayarlarımızı web sitemizin adına göre düzenliyoruz.
Dosyalarımızın bulunacağı klasörü oluturuyoruz :
# mkdir -p /var/www/teknolojik-blog.com
Nginx Server bloğu ve PHP-7.1 için ayarlarımızı giriyoruz :
# nano /etc/nginx/conf.d/teknolojik-blog.com.conf
server {
listen 80;
root /var/www/teknolojik-blog.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 teknolojik-blog.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 unix:/run/php/php7.1-fpm.sock;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Basitçe ayarlarımız bitti dosyamızı kaydedip test ediyoruz :
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Eğer hata alırsanız “/var/www/teknolojik-blog.com” klasörünün yetkilerini düzenleyin :
# chown -R nginx:nginx /var/www/teknolojik-blog.com # systemctl restart nginx
Sever bloğunuz PHP 7 ile çalışmaya başladı.
Test etmek için root klasörünüze phpinfo.php adında bir dosya oluturup içine :
<?php phpinfo(); ?>
satırını ekleyip kaydedin ve browser’a :
http://ip-addres/phpinfo.php
yazın sunucunuzun PHP bilgileri ekrana gelecektir.
Tabi güvenli bir sunucu yapısı için birçok ayar yapmak gerekiyor burada basit bir kurulum yapılmıştır.
Aziz Ozdemiroglu
Teknolojik-Blog.Com