X
    Categories: Centos

Centos 7 LAMP Kurulumu

Bir web sitesi sahibi olmak istediğinizde, bunun en kolay yöntemi hosting satın alıp, domain kayıt işlemi yapmaktır. Hosting hizmetleri sunan firmalar, aslında paylaşımlı bir hosting hizmeti sunar ve çeşitli limitleri bulunur. Web siteniz fazla ziyaretçi alıp, paylaşımlı hosting hizmetinin sınırlarını aşıyorsa (cpu ve ram limiti gibi) artık sanal sunucu veya fiziksel bir sunucu kiralama zamanınız gelmiş demektir.

Sunucu işlemlerinde de en kolay yöntem bir web hosting kontrol paneli kurup, hosting hizmetlerinizi kontrol paneli üzerinden yönetmek olacaktır. İnternet piyasasında, Cpanel, Plesk, Directadmin gibi ücretli veya VestaCP, CentosWebPanel, Sentora gibi ücretsiz paneller bulunur. Bu bağlamda ücretli veya ücretsiz panelleri kurup, kolayca web hosting hizmetlerinizi yönetebilirsiniz.

Fakat bir web hosting kontrol paneline gerçekten ihtiyacınız var mı? Örneğin sadece bir web sitesi kullanıp, mail kullanmayacaksanız web hosting kontrol paneli kurulduğunda sizin için gereksiz mail uygulamaları kurup cpu ve ram tüketimi yapacaktır. Bunun yerine işletim sisteminize sadece ihtiyacınızı karşılayacak uygulamaları kurmanız ve web hosting kontrol paneli tercih etmememiz daha sağlıklı olacaktır. İşte burada devreye LAMP giriyor.

Lamp Nedir?

Lamp, Linux, Apache, Mysql ve PHP uygulamalarının baş harflerinin kısaltmasıdır. Sadece bir kaç web sitesi barındıracak ve bunların üzerinde çok da işlem yapmayacaksanız, bir kere kurup bıraktıktan sonra, uzun bir süre herhangi bir problem yaşamadan web hosting hizmetini barındırabilirsiniz.

Bu incelememizde Centos üzerine detaylı bir şekilde Apache, Mysql ve PHP kurulumu gerçekleştireceğiz.

Centos 7 kurulumunu yapmadıysanız Centos 7 kurulumu yazımızdan kurulumu gerçekleştirebilirsiniz.

Centos 7 Güncelleme ve Ön hazırlık

Centos 7’yi kurduktan sonra ilk yapmamız işlemlerden birisi, güncelleme işlemi ve işlemleri yapacağımız birkaç küçük uygulama kurmaktır.

yum -y update

komutu ile sistemimizi güncelleyelim.

Güncelleme işlemi bittikten sonra, dilerseniz “reboot” komutu ile sistemi yeniden başlatabilirsiniz. Daha sonra işimize yarayacak bir iki uygulama kuralım;

yum -y install wget

ve

yum -y install nano

Wget sunucumuza dosya indirmemiz için, nano ise metinleri düzenlememiz için bir editör.

Artık kurulum işlemlerine geçebiliriz.

Centos Apache Kurulumu

İlk kurulum işleminde Apache ile http servisini kuruyoruz.

yum -y install httpd

Kurulum bittikten sonra http servisini başlatalım;

systemctl start httpd.service

Artık ip adresinizi, tarayıcıya yazdığınızda Apache’nin varsayılan sayfası karşınıza gelecektir.

Not : Eğer ulaşamazsanız firewall (güvenlik duvarı) açık demektir. Firewall’ı durdurup daha sonra pasif (disable) edip, tekrar deneyebilirsiniz.

systemctl stop firewalld
systemctl disable firewalld

Apache servisinin sistem açılışında başlaması için aşağıdaki komutu yazalım ve diğer servisimizin kurulumuna geçelim;

systemctl enable httpd.service

Centos 7 MariaDB Kurulumu

Her ne kadar Mysql kurulumu başlığını atsak da, Centos üzerinde varsayılan repolarda Mysql bulunmuyor, bunun yerine MariaDB kurulumu gerçekleştireceğiz. Öncelikle MariaDB kurulumunu gerçekleştirelim, eğer Mysql kurmak istiyorsanız MariaDB kurulumunu pas geçebilirsiniz.

yum install mariadb-server mariadb

MariaDB servisini başlatalım;

systemctl start mariadb

Güvenli Mysql kurulum aracını çalıştıralım;

mysql_secure_installation

Aracı çalıştırdığınızda size bir dizi sorular soracaktır. Bunlara aşağıdaki şekilde cevap verebilirsiniz;

Set root password? [y/n] Y
New password: Kullanmak istediğiniz şifreyi yazın
Re-enter new password: Şifreyi tekrar yazın
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

Kurulum tamamlandığında, aşağıdaki çıktıyı alırsınız.

Mariadb servisinin başlangıçta çalışması için alttaki komutu yazalım;

systemctl enable mariadb.service

Centos 7 mysql kurulum işlemleri için linkteki yazımızı takip edebilirsiniz.

Centos 7 PHP Kurulumu

MariaDB kurulumnda olduğu gibi, Centos üzerinde varsayılanlar repolarda şu anda PHP 5.6 versiyonu bulunuyor. İlk etapta bu versiyonu kuralım, eğer farklı bir versiyon kuracaksanız bu kurulumu pas geçin, çünkü EPEL reposu üzerinden kurulum gerçekleştireceğiz.

yum -y install php php-mysql

Http servisini restart etmemiz gerekiyor;

systemctl restart httpd.service 

Centos 7 üzerinde varsayılan apache kök klasörümüz /var/www/html şeklinde. Buraya basit bir phpinfo yazmak için dosyamızı açalım;

nano /var/www/html/info.php

Ve aşağıdakileri kopyalayalım;

<?php

phpinfo ();

?>

Tarayıcınıza http://ipadresi/info.php yazdığınızda PHP’nin info sayfasının geldiğini görmelisiniz;

PHP 7.3 Kurulumu

Şu anda güncel PHP versiyonu PHP 7.4.1 şeklinde. Biz PHP 7.3 versiyonunu kuracağız. Bunun için yukarıda değindiğimiz gibi EPEL reposunu aktif etmemiz gerekiyor.

EPEL reposunu yükleyelim;

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

Yum-utils paketini yükleyelim;

yum install yum-utils

PHP 5.6 versiyonunu disable yapalım;

yum-config-manager --disable remi-php56

PHP 7.3 versiyonunu aktif edelim;

yum-config-manager --enable remi-php73

Ve PHP’yi kuralım;

yum install php

Bu şekilde kurulum gerçekleştirdiğimizde PHP 7.3 versiyonu kuralacaktır.

Centos 7 Virtual Host

Eğer tek bir web siteniz var ise, dosyalarınızı /var/www/html/ dizinine attığınız takdirde, web siteniz hazır duruma gelecektir. Fakat birden fazla web siteniz bulunuyorsa virtual host (vhost) ayarlarınızı yapmamız gerekiyor.

İki adet vhost (hosting) örneği oluşturalım.

Öncelikle hostingin klasörlerini oluşturalım;

mkdir -p /var/www/ornek1.com/httpdocs
mkdir -p /var/www/ornek2.com/httpdocs

Vhost için gerekli .conf dosyalarının tutalacağı dizini oluşturalım;

mkdir /etc/httpd/vhosts

httpd.conf dosyası üzerine bu dosyayı gösterelim;

nano /etc/httpd/conf/httpd.conf

ve ekleyip, dosyayı kaydedip çıkalım.

IncludeOptional vhosts/*.conf

Vhost dosyamızın konfigürasyon dosyasını açalım;

nano /etc/httpd/vhosts/ornek1.com.conf

Aşağıdaki satırları yazıp, dosyayı kaydedelim;

<VirtualHost *:80>
    ServerName www.ornek1.com
    ServerAlias ornek1.com
    DocumentRoot /var/www/ornek1.com/httpdocs
    ErrorLog /var/www/ornek1.com/error.log
    CustomLog /var/www/ornek1.com/requests.log combined
</VirtualHost>

Aynı işlemi ornek2.com domainimiz için de yapalım;

nano /etc/httpd/vhosts/ornek2.com.conf
<VirtualHost *:80>
    ServerName www.ornek2.com
    ServerAlias ornek2.com
    DocumentRoot /var/www/ornek2.com/httpdocs
    ErrorLog /var/www/ornek2.com/error.log
    CustomLog /var/www/ornek2.com/requests.log combined
</VirtualHost>

Ve http servisimizi restart edelim;

systemctl restart httpd.service 

Alan adlarının kök klasörleri yukarıda belirttiğimiz şekilde /var/www/ornek1.com/httpdocs ve /var/www/ornek2.com/httpdocs şeklindedir. Bu klasörlere dosyalarınızı attığınızda tarayıcı üzerinden erişebilir duruma gelecektir.

Centos 7 php extension kurulumu

PHP, Apache ve Mysql kurulum işlemlerinden sonra, web sitelerimizin ihtiyacı olan PHP bileşenlerini kurmamız gerekiyor. Tabi her web sitesinin ihtiyacına göre değişkenlik gösteren PHP bileşenlerinin en popülerlerini aşağıdaki şekilde kurabiliriz;

PHP bileşenleri direkt ismi ile kurabiliriz. Eğer varsayılan repo üzerinden kurulum yaptıysanız extensionları aşağıdaki şekilde kurabiliriz;

yum install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Fakat EPEL reposu üzerinden kurulum yaptıysanız, yine EPEL üzerinden de bileşenleri kurmamız gerekecek;

yum --enablerepo=remi,remi-php72 install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

İşlemlerimiz bu kadar. Görüldüğü üzere, direkt olarak sadece bir web sitesi için, Linux Hosting ihtiyaçlarımızı karşılayacak şekilde kurulum yaptık. Dolayısı ile bir kontrol panelinde gelecek olan, ftp, dns, mail gibi servislere ihtiyaç duymadık.

admin: