WordPress, çok amaçlı bir site oluşturma altyapısıdır. WordPress ile bloglardan tutun video paylaşım sitelerine kadar pek çok farklı site oluşturabilirsiniz. Belki size şaşırtıcı gelecek ama dünyadaki internet sitelerinin %60’ı WordPress kullanmaktadır.

Bu yazımda Pardus 21 Server üzerinde WordPress sunucusu oluşturmayı anlatacağım. WordPress’i Pardus kullanan bulut sunucunuza kurmak için geliştiricilerinin Debian için önerdiği temel “5 dakikalık kurulum” kılavuzunu takip edeceğiz. WordPress’i kendi özel bulut sunucumuza kurulacağımız için, birkaç ek sunucu tarafı yazılım uygulaması yüklemeniz gerekecektir. Temelde, şu adımları takip edeceğiz:

  • Veritabanı sunucusunun kurulması
  • PHP dili ve sunucu çatısının kurulması
  • WordPress’in kurulması
  • Veritabanı yapılandırması

Apache kurulumu

Temelde Apache ile kuruluma başlamakta yarar vardır çünkü WordPress siteleri genelde Apache sunucu kullanılarak yayınlanır. Bu konuda dilerseniz, şöyle bir daha ayrıntılı Apache kurulum belgemiz de mevcut.

Öncelikle sistemimizin güncel olup olmadığını kontrol edelim:

sudo apt update
sudo apt upgrade

Ardından apache2 paketini kurarak Apache sunucunu kuralım:

sudo apt install apache2

Şimdi sunucuyu kontrol edelim:

sudo systemctl status apache2

Çıktı şuna benzemelidir:

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-28 20:19:05 +03; 24s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 16263 (apache2)
      Tasks: 55 (limit: 9499)
     Memory: 20.9M
        CPU: 44ms
     CGroup: /system.slice/apache2.service
             ├─16263 /usr/sbin/apache2 -k start
             ├─16264 /usr/sbin/apache2 -k start
             └─16265 /usr/sbin/apache2 -k start

Kas 28 20:19:05 pardus systemd[1]: Starting The Apache HTTP Server...
Kas 28 20:19:05 pardus apachectl[16262]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Kas 28 20:19:05 pardus systemd[1]: Started The Apache HTTP Server.

Mariadb kurulumu

MariaDB’yi WordPress tarafından veritabanı depolama yazılımı olarak kullanılmaktadır. Kurulum için başta paketlerini kuracağız:

sudo apt install mariadb-server

Şimdi de mariadb sunucusunun parola yöneticisini açarak ayarlamalarda bulunalım:

sudo mysql_secure_installation

Bu aşamada program bizden database için yapacağımız kurulumda parola oluşturmamızı isteyecektir.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No

Eğer yeni bir parola oluşturacaksanız buna evet manasında Y’ye tıklayın.

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 

Bu aşamada orta uzunlukta bir parola oluşturalım, bu yüzden 1’e tıklayalım.

Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : 

buna da n diyelim. Böylece kurulum tamamlanmış oldu.

Şimdi MySQL kullanıcılarını listeleyelim:

sudo mysql

Bu bizim için bir SQL kabuk ortamı oluşturacaktır. Şimdi şunları yazalım:

MariaDB [(none)]> SELECT user,authentication_string,plugin,host FROM mysql.user;

Çıktısı şu şekilde görünecektir:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *FA769377A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Burada göründüğü üzere auth_socket parolası verelim. Burada ‘password’ bizim belirleyeceğimiz parola olacak. Öntanımlı olarak ben password olarak belirledim.

MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Bu değişikliğin okunması için tablomuzu güncelleyelim:

MariaDB [(none)]> FLUSH PRIVILEGES;

Ve yeniden tablomuzu kontrol edelim.

MariaDB [(none)]> SELECT user,authentication_string,plugin,host FROM mysql.user;

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *FA769377A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Ctrl-D‘ye basarak mariadb sql konsolundan çıkabilirsiniz

Kurulumunuzu güvenceye almak için yukarıdaki komutları izleyin.

Not: Veritabanlarınızın güvenliğini sağlamak ve herhangi bir harici erişime izin vermemek büyük önem taşımaktadır.

MariaDB sunucusunun çalıştığından emin olmak ve kontrol etmek için şu komutu kullanabilirsiniz:

sudo systemctl status mariadb

PHP kurulumu

Şimdi PHP betik dilini kurmanın zamanı geldi. Bu dil, WordPress’in yazıldığı dildir. Bu sebeple hâlâ komut satırındayken, devam edelim, PHP’yi ve gerekli modülleri kuralım:

sudo apt install php libapache2-mod-php php-mysql

Kurulumun tamamlanması ile beraber PHP’ye ve WordPress için gerekli modüllere sahip olmalısınız. PHP kurulum sürümünüzü kontrol etmek için isteğe bağlı olarak şu komutu çalıştırabilirsiniz:

php -v

PHP kurulduktan sonra Apache2 PHP modüllerinin yüklenmesi için, Apache2 servisinin durdurulup yeniden başlatılması gerekebilir. Bunun için:

sudo systemctl restart apache2

NOT: Eğer ilerleyen adımlarda PHP modülü yüklenmediği için WordPress sunucunuz çalışmazsa PHP modülünü elle etkinleştirmeyi denemeniz önerilir. Bunun için aşağıdaki komutu çalıştırın:

sudo a2enmod php7.4

Veritabanı yapılandırması

Apache, MariaDB ve PHP kurulumunun ardından WordPress için bir veritabanı (database) oluşturmamız gerekecek. Öncelikle mariadb içerisine girelim.

mysql -u root -p

Bizden parola isteyecek ki, hatırlarsanız bu parolayı yukarıda tanımlamıştık. Onu girelim. Şimdi ise mariadb veritabanı açmak için SQL konsolunda şu işlemi yapalım:

MariaDB [(none)]> CREATE DATABASE wordpress_database;

Benim özelimde WordPress tarafından kullanılan veritabanı ismi “wordpress_database” olacak. Şimdi bu veritabanını yönetecek kullanıcıyı oluşturalım. Benim özelimde bu kullanıcının adı “slmn”, parolası ise “password” olacak:

MariaDB [(none)]> CREATE USER 'slmn'@'localhost' IDENTIFIED BY 'password';

Şimdi bu kullanıcıya veritabanına erişim izni verelim:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON `wordpress_database`.* TO 'slmn'@'localhost';

Ve tüm yetkileri sunucuda uygulayalım

MariaDB [(none)]> FLUSH PRIVILEGES;

Sunucuları yeniden başlatmak

Şimdi mariadb ve apache sunucularını yeniden başlatalım:

sudo systemctl restart apache2
sudo systemctl restart mariadb

WordPress kurulumu

Yükleme işleminin bu son aşamasında, WordPress kaynak dosyalarının yeni bir kopyasını indirecek, bunları veritabanınıza bağlayacak ve yepyeni bir web sitesi oluşturmaya başlayacağız.

Her web sitesinin bir “belge kökü” olduğunu, temel olarak, genel web sitesi dosyalarının bulunduğu Apache web sunucusuna işaret eden bir dosya yolunun olduğunu unutmayın. Bu adımda Apache ile birlikte gelen varsayılan dizini kullanacağız: /var/www/html/.

cd /var/www/html

Şimdi super kullanıcı (root) yetkisi alalım:

sudo su

Ve WordPress kaynak kodunu çekelim:

wget http://wordpress.org/latest.tar.gz

Ve içeriği çıkartalım:

tar xfz latest.tar.gz

Bu işlem sonucunda, arşiv dosyasının içindeki tüm kaynak dosyaları “wordpress/” dizini altında çıkarılır. Ancak Apache’ye ekstra bir ayar yapmadığımız için bu dosyaları /var/www/html/ dizinde istiyoruz. Bu yüzden şu komutu kullanıyoruz:


mv wordpress/* .

Ve boş WordPress dizinini silelim:

rmdir wordpress/

Ayrıca öntanımlı Apache index dosyasını da silelim:

rm index.html

Eğer bundan sonra gerek duymayacağınıza inanıyorsanız kaynak kodunu da silelim:

rm latest.tar.gz

WordPress yapılandırması

Şimdi, wp-config.php veritabanı bağlantı bilgilerini içeren çekirdek dosyasını düzenlememiz gerekecek.

WordPress, veritabanına bağlanmak ve değişiklik yapmak için uygun kimlik bilgilerine ihtiyaç duyar. Bu aşamada yukarıda oluşturduğumuz kullanıcı adı ve parolaları kullanacağız ancak öncelikle bu dosyanın örnek dosyasını alalım ve wp-config.php adıyla kopyalayalım:

cp wp-config-sample.php wp-config.php

Ardından wp-config’i açıp düzenleyelim:

nano wp-config.php

Dosyada aşağıdaki kısımları bulalım:

define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD','password_here' );

Ve kendi kullanıcı bilgilerimizle değiştirelim

define( 'DB_NAME', 'wordpress_database' );
/** MySQL database username */
define( 'DB_USER', 'slmn' );
/** MySQL database password */
define( 'DB_PASSWORD','password' );

WordPress site kurulumu

Kurulum komut dosyasını başlatmak için bir web tarayıcısı kullanacağız. WordPress kurulumunu yapmak için şu adresi ziyaret etmelisiniz: http://SUNUCU_IP_ADRESI/wp-admin/install.php

install-step5_v47
Kurulum sonrası ilk açılış

Artık kurulumu tamamladık. İyi çalışmalar…