CentOS 8 / RHEL 8 üzerinde WordPress Web Server kurulumu

Merhabalar,

Bu makalemde, CentOS 8 ve RedHat 8 üzerinde WordPress web server kurulumunu anlatmak istiyorum.

Kendi web sitesinizi yapmayı düşünüyor olabilirsiniz ve nereden başlayacağınızı bilmiyorsanız wordpress tam size göre. Hem kurulumu, hem de yapılandırması oldukça basit olduğundan, çok kısa sürede öğrenip, yaratıcı web siteleri hazırlayabileceğiniz bir ortamı size sağlar. Web hosting firmaları uygun fiyatlarla bu altyapıyı sizlere sağlamaktalar. Ben tamamen kendi ortamınızda, bu altyapıyı size sağlayacak olan bir sunucunun nasıl kurulacağını paylaşacağım. Böylece, kendi ortamınızda kurduğunuz bir web sunucuyu, sabit IP’niz üzerinden dış dünyaya yayınlayabilir, ya da iç network’te bir intranet web server kurmak için de kullanabilirsiniz. Kendi yayınınızı yapmayı düşünüyorsanız, elbette ki bir firewall çözümünüz de olmalı. Yoksa çeşitli ataklara maruz kalıp zarar görebileceğinizi unutmayınız.

Daha önce CentOS 7 üzerinde de, bu makalede olmayan birtakım detayları anlattığım makaleme aşağıdaki linkten ulaşabilirsiniz.

Kullanacağım sistem:

1 CPU
1 GB RAM
20 GB harddisk
Hostname : centos8.isleyen.net

Şimdi kurulum adımlarına başlayalım.

Öncelikle sunucuyu aşağıdaki komutla güncelliyoruz. Ben template’lerimi sürekli güncel tuttuğum için benim sunucumda güncelleme alınmayacak.

dnf update -y

Aşağıdaki komutla, gerekli olan paketleri yüklüyoruz. Mysql ve php yüklemelerini yapmış oluyoruz bu adımda.

dnf install -y php-mysqlnd php-fpm mysql-server httpd tar curl php-json

Buraya dikkat!!! Ben genelde makalelerimde SELinux’u devre dışı bırakıyordum. Fakat bu konu için devre dışı bırakmamıştım. Dolayısıyla firewall üzerinde de gerekli izinleri vermemiz gerekiyor. SELinux yönetimiyle ilgili detaylı bilgileri aktarmaya başlamıştım. Bloğum üzerinde arama yaparak da ilgili makalelerime ulaşabilirsiniz. Özetle, http ve https izinli hale getiriyoruz ve konfigürasyonu yeniden yüklüyoruz firewall üzerinde…

firewall-cmd –permanent –zone=public –add-service=http
firewall-cmd –permanent –zone=public –add-service=https
firewall-cmd –reload

mysqld ve httpd servislerini başlatıyoruz ve her restart sonrası bu servislerin otomatik başlaması için enable duruma getiriyoruz.

systemctl start mysqld
systemctl start httpd
systemctl enable mysqld
systemctl enable httpd

Bu işlemden sonra web browser’da, sunucu IP adresini yazdığımızda, apache http server test sayfasını görebiliyor olmamız gerekiyor.

MySQL güvenlik uyarlamaları

Database kurulumu yaptık, fakat kurulumu bu default ayarlarla bırakmamamız gerekiyor. Bunun için aşağıdaki komutla, bazı güvenlik kurallarını uyarlayalım.

Burada yapılan işlemler kısaca:

  • MySQL’e erişim için boş password kullanılamayacak.
  • Password karmaşıklığı ve zorluk derecesini 1=MEDIUM olarak belirleyeceğiz.
  • Anonymous kullanıcısını sileceğiz.
  • Remote root login özelliğini devre dışı bırakacağız.
  • Default’ta gelen test database’ini sileceğiz
  • Son olarak konfigürasyonu yeniden yükleyeceğiz.

Aşağıdaki adımlarda sırasıyla görebilirsiniz.

mysql_secure_installation

Güvenlik kurallarını yapılandırdıktan sonra, artık database sunucumuza yukarıda verdiğimiz root password ile bağlanıp, web sitemiz için yeni database ve kullanıcı oluşturma işlemlerine geçebiliriz.

Sunucu root hesabı ile database root hesabı, aynı hesap değildir ve birbirlerinden farklıdır. Yukarıda verdiğimiz password, database root hesabının password’ü olmaktadır.

Aşağıdaki komutla, database bağlantısını yapıyoruz.

mysql -u root -p

Bu komuttan sonra, güvenlik adımında belirlediğiniz root password ile database’e bağlanacağız.

Ardından sırasıyla:

CREATE DATABASE isleyentest;       (wordpressdb adında yeni bir DB oluşturdum)

CREATE USER isleyentest@localhost IDENTIFIED BY ‘Qwer1234*!?’;    (yeni bir kullanıcı ve password tanımladım)

GRANT ALL PRIVILEGES ON isleyentest.* to isleyentest@localhost;  (kullanıcı için DB’ye full yetki verdim)

FLUSH PRIVILEGES; (yetkileri kaydettim)

exit  (ayarlardan çıkış yaptık)

WordPress kurulumu ve konfigürasyonu

Artık son aşamada, wordpress kurulumumuzu yapabiliriz.

Minimal mod’da kurulum yapmışsanız, muhtemelen wget komutu yoktur. Öncelikle bu komutu kullanmak için wget paketini yükleyelim.

dnf install wget -y

cd /tmp && wget https://wordpress.org/latest.tar.gz

Bu tar.gz dosyasını /var/www/html altına unzip yapıyoruz.

tar -xvzf latest.tar.gz -C /var/www/html

/var/www/html dizininde, wordpress klasörünü görüyoruz. Bu dosyanın sahipliğini ve grubunu apache olacak şekilde değiştiriyoruz. Yine bu klasör erişimi için ikinci satırda SELinux için gerekli olan komutu kullandık.

chown -R apache:apache /var/www/html/wordpress
chcon -t httpd_sys_rw_content_t /var/www/html/wordpress -R

WordPress için Apache sanal host oluşturulması:

Buraya kadar herşey yolunda. Fakat şunu gözden kaçırmamanız gerekiyor : ben en başta sunucuma centos8.isleyen.net ismini vermiştim. Fakat barındırmak istediğim web sitesi bu değil ki!!! Bu benim sunucumun internal hostname’i. Dolayısıyla siz wordpress’i bu şekilde yapılandırırsanız, centos8.isleyen.net sayfası hazırlıyormuşsunuz gibi olacak. Eğer bu şekilde bir ayar yapmak istiyorsanız, şimdi yapacağımız adımları geçin. Eğer bu sunucu üzerinde, başka bir web sitesi yapılandıracaksak, yapacağımız işlem, bu sunucuya gelen isteklerin, ilgili dizine ve isme yönlendirilmesini sağlamak olmalı.

Aşağıdaki konfigürasyonu yapmamız gerekiyor.

Kuracağım örnek web sitesi : www.isleyentest.net

/etc/httpd/conf/httpd.conf dosyasını metin düzenleyici ile açarak, kendi sitenize uygun olarak aşağıdaki kodu değiştirip, sayfanın en altına yapıştırarak kaydedin.

nano /etc/httpd/conf/httpd.conf

<VirtualHost *:80> 

ServerAdmin admin@isleyentest.net

DocumentRoot /var/www/html/wordpress

ServerName isleyentest.net

ServerAlias www.isleyentest.net

ErrorLog /var/log/httpd/isleyentest-error-log

CustomLog /var/log/httpd/isleyentest-acces-log common

</VirtualHost>

Yukarıdaki işlemden sonra, artık sunucu IP adresi yerine, kendi web sitenizin ismi ile de bağlanabilirsiniz.

Ben burada IP adresi ile devam edeceğim.

http://sunucu_IP/wordpress/wp-admin

Mysql Database üzerinde açtığımız database ve kullanıcı bilgilerini aşağıdaki alanlara tanımlıyoruz ve Submit ile devam ediyoruz.

Run the installation ile devam ediyoruz.

Buradaki adımlarda ise, wordpress admin panelimize bağlanacak olan administrator yetkilerine sahip bir kullanıcı açarak Install WordPress seçeneği ile devam ediyoruz.

Kurulum başarıyla bitti. Login seçeneği ile panelimize bağlanalım.

Panelimize başarılı şekilde bağlandık. Artık sitenizi yapılandırmaya başlayabilirsiniz.

Web hosting satan firmalardan aldığınız en ucuz web hosting hizmeti, paylaşımlı sunucular üzerinde web hosting hizmetidir. Onların da yaptığı işlem aynen budur temel olarak. 🙂 Bir sunucu üzerinde, yukarıda /etc/httpd/conf/httpd.conf dosyasının düzenlenmesi adımlarında anlattığım gibi, sanal hostlar oluşturarak birçok web sitesini barındırmaktalar.  Dedike sunucular olmadığı sürece, bu sistem tam anlamıyla size ait olmayacaktır. 🙂 Aslında dedike bile olsa, sonuçta yine tam olarak sizin değil, çünkü o altyapıda bulunuyor sunucu 🙂

Yararlı olması dileğiyle.

Yusuf İşleyen