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
Artık kurulumu tamamladık. İyi çalışmalar…