Salı, Aralık 24, 2024

CentOS 7’de PHP 7 Nasıl Kurulur?

yüksek çözünürlüklü centos işletim sistemi logosu

Centos 7‘nin depolarında uzunca bir süredir PHP 7’yi göremiyoruz genelde desteklenmeyen 5.4 gibi sürümler ile geliyor sistemimiz

Bizde sistemimizde PHP 7 serisini nasıl kurabileceğinizi anlatan bir yazı yazalım dedik. Başlamadan önce root kullanıcı izinlerinizi aldığınıza emin olun.

PHP’yi sunan pek çok farklı 3. parti depo bulunuyor. Biz en güncellerini sunan remi adlı repoyu her zaman ki gibi sistemimize dahil ederek işe başlıyoruz.

sudo yum install epel-release yum-utils sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 

yum genelde ilk paketleri eklerden GPG keyinide isteyebilir bu aşamada y tuşuna basarak GPG’yi sisteme dahil etmeyi unutmayın.

PHP 7.2 Sürümünün Yüklenmesi

Günümüzde pek çok popüler uygulama bu sürümde çalışmayı istemektedir. Örneğin: Wordpress, Drupal, Joomla vb

İlk olarak depoda bulunan PHP 7.2 sürümünü aktif ediyoruz.

sudo yum-config-manager --enable remi-php72

Depo etkinleştirildikten sonra PHP 7.2 ve en yaygın PHP modüllerini kurmaya başlayın

sudo yum install php php-common php-opcache php-redis php-mcrypt php-cli php-gd php-curl php-mysql

PHP sürümünü kontrol ederek kurulumu doğrulamayı unutmayın

php -v

Çıktımız ise

PHP 7.2.12 (cli) (built: Nov 12 2018 10:23:04) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.12, Copyright (c) 1999-2018, by Zend Technologies

PHP 7.1 Sürümünün Yüklenmesi

Sürüm olarak daha spesifik şeyler isteyen bir uygulama çalıştıracaksanız. Örneğin; prestashop, magento 2

İlk olarak depoda bulunan PHP 7.1 sürümünü aktif ediyoruz.

sudo yum-config-manager --enable remi-php71

Depo etkinleştirildikten sonra PHP 7.1 ve en yaygın PHP modüllerini kurmaya başlayın

sudo yum install php php-common php-opcache php-redis php-mcrypt php-cli php-gd php-curl php-mysql

Nginx ile çalışması için PHP 7.x’i yapılandıralım

Nginx PHP dosyalarını işlemek için destek sağlamamaktadır, bu yüzden PHP dosyalarını işleyebilecek olan PHP FPM gibi ayrı bir uygulama kurmamız gerekiyor.

sudo yum install php-fpm

Varsayılan olarak PHP FPM, 9000 numaralı bağlantı noktasında kullanıcı olarak apache ile çalışmaktadır. Kullanıcıyı nginx olarak değiştirecek ve TCP soketinden Unix soketine geçeceğiz. Bunu yapmazsak NGINX kardeşimizde php çalıştıramayacağız.

Bu yüzden /etc/php-fpm.d/www.conf içerisine aşağıdaki tanımlamaları yapıyoruz.

user = nginx
group = nginx
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx

Tabii hemen sonra /var/lib/php dizinine nginx yetkilerini veriyoruz.

chown -R root:nginx /var/lib/php

Değişiklikleri yaptıktan sonra, PHP FPM hizmetini etkinleştirin ve çalıştırın

sudo systemctl enable php-fpm
sudo systemctl start php-fpm

Ardından, Nginx vhost direktifini düzenleyin ve Nginx’in PHP dosyalarını işleyebilmesi için aşağıdaki satırları ekleyin eğer php 7.1 kullanıyorsanız fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; değeri fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; ile değiştirin.

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

Yeni yapılandırmanın etkili olması için Nginx hizmetini yeniden başlatın

sudo systemctl restart nginx

Herhangi bir servis çalışıyorsa kazasız belasız etkili olmasını istersenizde aşağıdaki komutu uygulayın

nginx -s reload