Centos 7 Üzerinde Nginx/PHP-FPM 7.4 Kurulumu

Öncelik Nginx kurulumu gerçekleştirelim.

# yum install epel-release -y
# yum install nginx -y

Yükleme yapacağımız repoları tanıtalım ve PHP kurulumunu yapalım.

# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
# yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
# yum-config-manager --enable remi-php74
# yum install php php-fpm php-mysqlnd php-mysqli php-common php-xml php-xmlrpc php-curl php-gd php-imagick php-cli php-imap php-mbstring php-opcache php-soap php-zip php-intl -y
# php --version

PHP-FPM için gerekli ayarlamaları yapalım. İlgili satırları aşağıdaki şekilde güncelleyelim.

# nano /etc/php-fpm.d/www.conf
user = nginx
group = nginx

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

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Nginx ve PHP-FPM servislerini başlatalım ve başlangıçta açılması için ayarlayalım.

# systemctl restart nginx
# systemctl enable nginx
# systemctl restart php-fpm
# systemctl enable php-fpm

Barındırılacak alan adı için dizin ve nginx ayarlamalarını yapalım. Öncelikle dizin ayarlamalarını yapalım.

# mkdir -p /var/www/html/my-domain/public_html
# mkdir -p /var/www/html/my-domain/logs
# touch /var/www/html/my-domain/logs/ozcelik.log
# chown $USER:$USER /var/www/html/my-domain/
# chown -R $USER:$USER /var/www/html/my-domain/
# find /var/www/html/my-domain -type f -exec chmod 664 {} \;
# find /var/www/html/my-domain -type d -exec chmod 775 {} \;

Ardından alan adımız için Nginx .conf dosyasını oluşturalım ve içeriği aşağıdakine benzer bir yapıda düzenleyelim.

# nano /etc/nginx/conf.d/my-domain.com.conf
server {
        listen 80;
        listen [::]:80;

        server_name my-domain.com;

        root /var/www/html/my-domain/public_html;

        index index.php index.html index.htm;

        error_log /var/www/html/my-domain/logs/my-domain.log;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                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;
        }
        location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|svg|woff|woff2|ttf)$ {
                expires 1M;
                access_log off;
                add_header Cache-Control "public";
        }
        location ~* \.(?:css|js)$ {
                expires 2d;
                access_log off;
                add_header Cache-Control "public, must-revalidate";
        }
        location ~ /\. {
                deny  all;
        }
}

Son olarak Nginx ayarlarının sorunsuz olup olmadığını kontrol edelim.

# nginx -t
Back To Top