Centos7 Üzerine WordPress Kurulumu

Merhabalar,
Bugün yazımda, Centos 7 üzerine WordPress kurulumunu anlatacağım.

WordPress Nedir?

Öncelikle WordPress nedir sorusunun cevabını verelim. WordPress özgür ve açık kaynak kodlu bir CMS (Content Management System) dir. Bunun türkçesi “İçerik Yönetim Sistemi” olarak yapılabilir. İçerik yönetim sistemleri en kaba tabirle bir Web sitesine içerik girişi yapabileceğiniz, düzenleyebileceğiniz kısaca yönetebileceğiniz alt yapılara verilen isimdir. Bu sistemler sayesinde yazılım bilmezseniz dahi bir Web sitesi veya Blogu dakikalar içerisinde kolayca ayağa kaldırabilir, ziyaretçilere içeriğinizi sunabilirsiniz.

Wikipedia
WordPress

WordPress İçin Ön Gereksinimler:

  • PHP 7.4 veya üzeri
  • MySQL 5.6 veya üzeri ya da MariaDB 10.1 veya üzeri
  • Apache veya Nginx web server

Her şeyi en başından anlatmaya başlayacağım. Apache Web Server kurulumu ile başlayalım.

APACHE WEB SERVER Kurulumu:

Apache dünya üzerinde en çok kullanılan web servislerinden birisidir. Web server seçimini sizin tercihinize bırakıyorum. Biz kurulumda Apache kullanacağız. Şimdi kuruluma geçelim.

Centos 7 tarafında Apache web server için kullandığımız paketin adı “httpd”.

  • yum install httpd
  • systemctl start httpd: Apache serveri başlatır.
  • systemctl enable httpd: Apache serveri açılış (reboot) sırasında otomatik olarak ayağa kaldırır.
  • systemctl status httpd: Apache serverin durumunu gösterir.
[root@localhost ~]# yum install httpd
[......]
Installed:
  httpd.x86_64 0:2.4.6-97.el7.centos
  
Dependency Installed:
  apr.x86_64 0:1.4.8-7.el7                     apr-util.x86_64 0:1.5.2-6.el7                     httpd-tools.x86_64 0:2.4.6-97.el7.centos                     mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-01-07 01:49:01 +03; 21s ago
[......]     
[root@localhost ~]#

Kurulum tamamlandıktan sonra sunucumuza erişmek istediğimizde, bizi Apache’nin standart ekranı karşılayacaktır. Eğer bu sayfaya erişim sağlayamıyorsanız, firewall sizi engelliyor olabilir. Firewall’i durdurarak tekrar deneyin.

 [root@localhost ~]# systemctl stop firewalld 
Apache Test Sayfası

/etc/httpd/conf/httpd.conf dosyası içerisinden virtualhost ayarlamasını yapabilirsiniz.

Varsayılan olarak /var/www/html dizini site dosyalarınızı ekleyebilmeniz için ayarlı durumdadır. Site dosyalarınızı bu dizin içerisine yükleyebilirsiniz.
Apache Web Sayfası: Apache

MariaDB Kurulumu:

MariaDB ya da MariaDB Server, dünyanın neredeyse her yerinde kullanılan açık kaynak kodlu veri tabanı sunucusudur. MySQL projesinin fork’u olan MariaDB, MySQL’in satın alınmasından sonra ortaya çıkmış bir projedir. Şu an kullanmış olduğumuz Centos 7 repolarında bulunan MariaDB’nin sürümü güncel olmadığı ve aynı zaman da WordPress’in bizden istediği sürüme yeterli olmadığı için bu sürümü edinmemiz gerekmekte. Gereken sürümü edinmek için “https://mariadb.com/downloads/” MariaDB resmi web adresine gidebileceğiniz gibi, başka yöntemler de kullanabilirsiniz.

[root@localhost ~]# curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash

[root@localhost ~]# cat /etc/yum.repos.d/mariadb.repo 

Yukarıda kullanmış olduğumuz iki komut bulunmakta:

curl: Çoğu Unix bazlı sistemde mevcut olan bir komuttur ve “Client URL” nin kısaltılmışıdır. Curl komutları URL’lerin bağlanabilirliğini kontrol etmek ve veri transferi için harika bir araç olarak kullanılmak için üretilmiştir.
curl komutundan sonra girilen URL bir bashscript’i işaret etmekte. Bu script’i pipe ile bash’e gönderiyoruz. Bu sayede script çalıştırılıyor. Sonuç olarak MariaDB repoları bilgisayarınıza ekleniyor.

cat: Dosya içeriğinin terminal ekranından okunulmasını sağlar.

MariaDB kurulumu

MariaDB’nin daha verimli çalışması açısından 3 paketinde kurulması öneriliyor. Bu paketler: MariaDB-server, MariaDB-client, MariaDB-backup

[root@localhost ~]# yum install MariaDB-server MariaDB-client MariaDB-backup

Buna benzer bir çıktı aldıysak her şey yolunda demektir 🙂

Çıktıyı inceleyecek olursak paketlerin kurulmuş olduğunu görmekteyiz. Gerekli bağımlılıklar sisteme eklenmiş ve “mariadb-libs” paketi güncellenmiş. Süreci daha detaylı incelemek isterseniz MariaDB’nin kendi dokümantasyonuna bakmanızı öneririm.
MariaDB Web Sayfası: MariaDB

MariaDB Servisinin Başlatılması:

MariaDB kurulumunu tamamladık. MariaDB servisini kullanabilmemiz için servisi çalıştırmamız gerekli. Kurulum sonrasında MariaDB servisinin bilgisayar yeniden başladığında veya açılışında kendiliğinden açılmasını istiyorsanız, servisi “enable” etmeniz gerekiyor. Eğer servisimiz “inactive” durumda olursa veritabanımızı kullanamayız. Şimdi MariaDB servisi için kullanabileceğimiz bazı komutlara bakalım.

  • mysql: Veritabanı sunucumuza bağlanmak için kullandığımız komut. Root olduğumuz için veritabanımıza doğrudan geçiş yapabiliyoruz.
  • systemctl status mariadb: MariaDB sunucusunun durumunu gösterir.
  • systemctl enable mariadb: MariaDB sunucusunu açılış(reboot) sırasında otomatik olarak ayağa kaldırır.
  • systemctl start mariadb: MariaDB sunucusunu başlatır.

Bonus:

  • systemctl restart mariadb: MariaDB sunucusunu yeniden başlatır.
  • systemctl disable mariadb: MariaDB sunucusunu açılış(reboot) sırasında otomatik olarak kapatır.
[root@localhost ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@localhost ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.5.8 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Thu 2021-01-07 02:00:49 +03; 39min ago
[......]     
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl restart maridb
[root@localhost ~]#

MariaDB Kurulumunun Güvenliğini Arttırma:

Kurulum sırasında çalıştırdığımız script ile kurulumumuz güvenli oldu diyemeyeceğimize göre yapmamız gereken birkaç işlem var.

Kurulumla birlikte gelen default ayarlardan, veritabanlarından kurtulmamızı sağlayan şu shell script’i çalıştırmamız gerekiyor:

[root@localhost ~]# file $(which mariadb-secure-installation )
/usr/bin/mariadb-secure-installation: POSIX shell script, ASCII text executable
[root@localhost ~]# mariadb-secure-installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
[root@localhost ~]#

Bu shell script’le birlikte root@localhost hesabımızın güvenliğini sorguluyoruz, anonim kullanıcıları kaldırıyoruz, hazırda gelen veritabanlarını siliyoruz, root@localhost’un uzaktan erişimini engelliyoruz.

WordPress İçin Veritabanının Oluşturulması:

MariaDB sunucumuz için bütün hazırlıkları tamamladığımıza göre artık bir veritabanı oluşturmaya hazırız. Veritabanını yönetmek için bir kullanıcı oluşturup, bu kullanıcının yetkilerini ve gerekli ayarlarını yapmaya başlayalım.

MariaDB Kullanıcı Oluşturma:

Veritabanı için oluşturacağım kullanıcının adı “mdb_wp_user” ve parolası “mdbpassword”. Bu aşamada bir test ortamında olduğumuz için güvenlik detaylarına çok takılmadan ilerleyeceğiz.

Öncelikle parolamızı daha güvenli hale getiren hash metodunu kullanarak bir parola hash’i oluşturup devamında bu hash’i kullanarak bir kullanıcı oluşturuyoruz ve sonrasında tüm kullanıcıları listeliyoruz.

  • mysql: MariaDB CLI’ını açar.
  • SELECT PASSWORD(‘mdbpassword’);: mdbpassword kelimesinden bir hash oluşturur.
  • CREATE USER mdb_wp_user@localhost IDENTIFIED BY PASSWORD ‘*C6FC8B8B81356C4DF6C01EE898C84CA355F04648’;: localhost sunucusunda mdb_wp_user isimli ve parola hash’i önceden belirlenmiş bir kullanıcı oluştur.
  • SELECT host, user FROM mysql.user;: Sunucu üzerindeki kullanıcıları ve oturum açabilecekleri host’ları gösterir.
[root@localhost ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.5.8-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SELECT PASSWORD('mdbpassword');
+-------------------------------------------+
| PASSWORD('mdbpassword')                   |
+-------------------------------------------+
| *C6FC8B8B81356C4DF6C01EE898C84CA355F04648 |
+-------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> CREATE USER mdb_wp_user@localhost IDENTIFIED BY PASSWORD '*C6FC8B8B81356C4DF6C01EE898C84CA355F04648';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SELECT host, user FROM mysql.user;
+-----------+-------------+
| Host      | User        |
+-----------+-------------+
| localhost | mariadb.sys |
| localhost | mdb_wp_user |
| localhost | mysql       |
| localhost | root        |
+-----------+-------------+
4 rows in set (0.002 sec)

MariaDB [(none)]>
MariaDB Kullanıcı Oluşturma
MariaDB Kullanıcı Oluşturma

MariaDB Veritabanı Oluşturma:

MariaDB’de database oluşturmak için basit bir SQL komutumuz var.

  • CREATE DATABASE blog_wp_db;: “blog_wp_db” adında bir veritabanı oluşturur.
  • SHOW DATABASES;: Sunucu üzerindeki veritabanlarını gösterir.
MariaDB [(none)]> CREATE DATABASE blog_wp_db;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| blog_wp_db         |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)

MariaDB [(none)]>
MariaDB Veritabanı Oluşturma

Veritabanı Üzerinde Kullanıcı Yetkilendirme:

Bu aşamada, oluşturduğumuz kullanıcıyı tablo üzerinde yapılacak her işlem için yetkilendireceğiz.

  • SHOW GRANTS FOR mdb_wp_user@localhost;: “mdb_wp_user” kullanıcısının yetkilerini göster.
  • SELECT PASSWORD(‘mdbpassword’);: “mdbpassword” kelimesi için hash üret.
  • GRANT ALL PRIVILEGES ON blog_wp_db.* TO mdb_wp_user@localhost IDENTIFIED BY PASSWORD ‘*C6FC8B8B81356C4DF6C01EE898C84CA355F04648’;: “blog_wp_db” veritabanındaki tüm tablolar üzerinde (*), parola korumalı “mdb_wp_user” kullanıcısına tüm yetkileri (ALL PRIVILEGES) ver.
  • FLUSH PRIVILEGES;: MariaDB’nin izinlerle ilgili tuttuğu ön belleği temizle.
  • SHOW GRANTS FOR mdb_wp_user@localhost;: “mdb_wp_user” kullanıcısının yetkilerini göster.
MariaDB [(none)]> SHOW GRANTS FOR mdb_wp_user@localhost;
+--------------------------------------------------------------------------------------------------------------------+
| Grants for mdb_wp_user@localhost                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `mdb_wp_user`@`localhost` IDENTIFIED BY PASSWORD '*C6FC8B8B81356C4DF6C01EE898C84CA355F04648' |
+--------------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> SELECT PASSWORD('mdbpassword');
+-------------------------------------------+
| PASSWORD('mdbpassword')                   |
+-------------------------------------------+
| *C6FC8B8B81356C4DF6C01EE898C84CA355F04648 |
+-------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON blog_wp_db.* TO mdb_wp_user@localhost IDENTIFIED BY PASSWORD '*C6FC8B8B81356C4DF6C01EE898C84CA355F04648';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SHOW GRANTS FOR mdb_wp_user@localhost;
+--------------------------------------------------------------------------------------------------------------------+
| Grants for mdb_wp_user@localhost                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `mdb_wp_user`@`localhost` IDENTIFIED BY PASSWORD '*C6FC8B8B81356C4DF6C01EE898C84CA355F04648' |
| GRANT ALL PRIVILEGES ON `blog_wp_db`.* TO `mdb_wp_user`@`localhost`                                                |
+--------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

MariaDB [(none)]>
MariaDB Kullanıcı Yetkilendirme

Bu adımları tamamladıktan sonra “blog_wp_db” isimli veritabanımız üzerinde her işlemi gerçekleştirebilecek “mdb_wp_user” isimli kullanıcımızı oluşturmuş oluyoruz. “quit” komutuyla MariaDB shell’inizi kapatabilirsiniz.

PHP KURULUMU:

Web geliştiriciliği konusunda önemli bir yere sahip olan PHP, aslında günümüzdeki web sitelerinin içeriklerinin yönetilebildiği yönetim panelini dinamik şekilde kullanabilmenizi sağlıyor. PHP, günlük hayatta sık sık ziyaret ettiğiniz web sitelerinin ardındaki kahraman araçlardan bir tanesi oluyor.PHP, web tabanlı ve nesne yönelimli bir programlama dilidir. Önceleri PHP açılımı Personal Home Page yani “kişisel anasayfa” olarak geçerken artık Hypertext Preprocessor şeklinde kullanılıyor. PHP sayesinde kendi kendine yönetilebilen dinamik internet siteleri oluşturulabiliyor. Ufak bir bilgilendirmeden sonra kuruluma geçelim.

Aşağıda verilen komut ile PHP imizi kuralım.

[root@localhost]# yum install php
[......]
Installed:
  php.x86_64 0:5.4.16-48.el7

Dependency Installed:
  libzip.x86_64 0:0.10.1-8.el7                                      php-cli.x86_64 0:5.4.16-48.el7                                      php-common.x86_64 0:5.4.16-48.el7

Complete!

Kurulum tamamlandıktan sonra fark ediyoruz ki ön gereksinimler kısmında bizden istenen PHP versiyonu ile kurmuş olduğumuz PHP versiyonu arasında fark var.

PHP Versiyon

Centos 7 repoları, uygulamarın sürümlerini biraz geriden takip eder. WordPress bizden en az PHP 5.6.20 istediğini belirtiyor. Dökümantasyon ise en az 7.4 istemişti. Biz dökümantasyonu takip ederek ilerleyeceğiz. Şunu da belirtmek istiyorum evet PHP 5.6.20 versiyonu ile de WordPress çalışır fakat bazı tutarsızlıklar olabilir. Biz bu tutarsız durumları yaşamamak adına PHP 7.4 ile kurulumumuza devam edeceğiz.

EPEL Repo’larının Aktif Edilmesi:

EPEL (Extra Packages for Enterprise Linux) açık kaynak kodlu ve topluluk tarafından geliştirilen, Fedora takımının desteklediği, 100% ücretsiz olan program deposudur.

[root@localhost html]# yum install epel-release
[......]
Installed:
  epel-release.noarch 0:7-11

Complete!

EPEL reposunu kullanarak gerekli PHP sürümünü kuracağız.

  • yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm: Remi repo paketini kur.
  • yum update: Repo’ların güncellenmesi için çalıştırdım. Repo’lar güncellendikten sonra update işlemini sorduğunda ise “n” diyerek güncellemeyi reddettim.
  • yum search php: PHP paketlerini ara. İhtiyacımız olan paket php74.
  • yum install php74: PHP 7.4 sürümünü kur.
[root@localhost ~]# yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[......]
Installed:
  remi-release.noarch 0:7.9-1.el7.remi

Complete!
[root@localhost ~]# yum update
[......]
Total download size: 252 M
Is this ok [y/d/N]: n
Exiting on user command
Your transaction was saved, rerun it with:
 yum load-transaction /tmp/yum_save_tx.2021-01-08.12-12.OA5dl0.yumtx
[root@localhost ~]# yum search php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
[......]
[root@localhost ~]# yum install php74
[......]
Installed:
  php74.x86_64 0:1.0-3.el7.remi

Dependency Installed:
  audit-libs-python.x86_64 0:2.8.5-4.el7          checkpolicy.x86_64 0:2.5-8.el7                      environment-modules.x86_64 0:3.2.10-10.el7           libX11.x86_64 0:1.6.7-3.el7_9
  libX11-common.noarch 0:1.6.7-3.el7_9            libXau.x86_64 0:1.0.8-2.1.el7                       libcgroup.x86_64 0:0.41-21.el7                       libsemanage-python.x86_64 0:2.5-14.el7
  libxcb.x86_64 0:1.13-1.el7                      php74-php-cli.x86_64 0:7.4.14-1.el7.remi            php74-php-common.x86_64 0:7.4.14-1.el7.remi          php74-php-json.x86_64 0:7.4.14-1.el7.remi
  php74-runtime.x86_64 0:1.0-3.el7.remi           policycoreutils-python.x86_64 0:2.5-34.el7          python-IPy.noarch 0:0.75-6.el7                       scl-utils.x86_64 0:20130529-19.el7
  setools-libs.x86_64 0:3.3.8-4.el7               tcl.x86_64 1:8.5.13-8.el7

Complete!
[root@localhost ~]#

İşlemleri sırasıyla yaptıktan sonra sistemimizde PHP denilince akla 5.4.16 versiyonu geldiğini görmekteyiz. Güncel sürümü çağırmak için “php74” komutunu kullanıyoruz.

  • yum install yum-utils: yum-config-manager’ı kullanmak için yum-utils paketini kur.
  • yum-config-manager –enable remi-php74: Remi PHP 7.4 reposunu enable et.
  • yum repolist: Repo listesini güncelle. Bu sefer yum update yerine bunu kullandım.
  • yum install php: Hiçbir sürüm numarası belirtmeden PHP’yi kur.
  • php -v: PHP versiyonunu göster.
[root@localhost ~]# yum install yum-utils
[......]
Installed:
   yum-utils.noarch 0:1.1.31-54.el7_8
 
 
 
 Dependency Installed:
   libxml2-python.x86_64 0:2.9.1-6.el7.5                                 python-chardet.noarch 0:2.2.1-3.el7                                 python-kitchen.noarch 0:1.1.1-5.el7
 
 
 
 Dependency Updated:
   libxml2.x86_64 0:2.9.1-6.el7.5
 
 
 
 Complete!
 
 
 
 [root@localhost ~]# yum-config-manager --enable remi-php74
 Loaded plugins: fastestmirror
 ============================================================================================== repo: remi-php74 ===============================================================================================
 [remi-php74]
 async = True
 bandwidth = 0
 base_persistdir = /var/lib/yum/repos/x86_64/7
 baseurl =
 cache = 0
 cachedir = /var/cache/yum/x86_64/7/remi-php74
 check_config_file_age = True
 compare_providers_priority = 80
 cost = 1000
 deltarpm_metadata_percentage = 100
 deltarpm_percentage =
 enabled = 1
 enablegroups = True
 exclude =
 failovermethod = priority
 ftp_disable_epsv = False
 gpgcadir = /var/lib/yum/repos/x86_64/7/remi-php74/gpgcadir
 gpgcakey =
 gpgcheck = True
 gpgdir = /var/lib/yum/repos/x86_64/7/remi-php74/gpgdir
 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
 hdrdir = /var/cache/yum/x86_64/7/remi-php74/headers
 http_caching = all
 includepkgs =
 ip_resolve =
 keepalive = True
 keepcache = False
 mddownloadpolicy = sqlite
 mdpolicy = group:small
 mediaid =
 metadata_expire = 21600
 metadata_expire_filter = read-only:present
 metalink =
 minrate = 0
 mirrorlist = http://cdn.remirepo.net/enterprise/7/php74/mirror
 mirrorlist_expire = 86400
 name = Remi's PHP 7.4 RPM repository for Enterprise Linux 7 - x86_64
 old_base_cache_dir =
 password =
 persistdir = /var/lib/yum/repos/x86_64/7/remi-php74
 pkgdir = /var/cache/yum/x86_64/7/remi-php74/packages
 proxy = False
 proxy_dict =
 proxy_password =
 proxy_username =
 repo_gpgcheck = False
 retries = 10
 skip_if_unavailable = False
 ssl_check_cert_permissions = True
 sslcacert =
 sslclientcert =
 sslclientkey =
 sslverify = True
 throttle = 0
 timeout = 30.0
 ui_id = remi-php74
 ui_repoid_vars = releasever,
    basearch
 username =
 
 
 
 [root@localhost ~]# yum repolist
 Loaded plugins: fastestmirror
 [......]
 [root@localhost ~]# yum install php
 [......]
 Dependency Installed:
   libsodium.x86_64 0:1.0.18-1.el7                                  php-json.x86_64 0:7.4.14-1.el7.remi                                  php-sodium.x86_64 0:7.4.14-1.el7.remi
 
 
 
 Updated:
   php.x86_64 0:7.4.14-1.el7.remi
 
 
 
 Dependency Updated:
   php-cli.x86_64 0:7.4.14-1.el7.remi                                                                   php-common.x86_64 0:7.4.14-1.el7.remi
 
 
 
 Complete!
 [root@localhost ~]# php -v
 PHP 7.4.14 (cli) (built: Jan  5 2021 10:45:06) ( NTS )
 Copyright (c) The PHP Group
 Zend Engine v3.4.0, Copyright (c) Zend Technologies
 [root@localhost ~] 

 

PHP Versiyon

PHP Web Sayfası: PHP

PHP MySQL Eklentisi:

PHP 7.4’ü kurduk. İşimiz neredeyse bitti diyebiliriz. PHP için MySQL eklentimiz eksik gibi duruyor o zaman kuralım 🙂

  • [root@localhost ~]# yum install php-mysql

Kurulumdan sonra web server’ımızı yeniden başlatalım.

  • [root@localhost ~]# systemctl restart httpd
[root@localhost ~]# yum install php-mysql
[......]
Installed:
  php-mysqlnd.x86_64 0:7.4.14-1.el7.remi

Dependency Installed:
  php-pdo.x86_64 0:7.4.14-1.el7.remi

Complete!
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]#

WordPress’in İndirilmesi:

WordPress’i resmi web sitesi üzerinden indireceğiz. Bu şekilde en güncel sürümüne ulaşmış olacağız. WordPress’in indirme sayfasına “https://wordpress.org/download/” baktığımızda “*tar.gz” uzantılı bir tarball linki görüyoruz. İndirme yapmak için “wget” programını kullanacağız. Eğer “wget” kurulu değilse “yum install wget” ile kurulum yapabilirsiniz.

  • [root@localhost ~]# wget https://wordpress.org/latest.tar.gz

İndirme işlemi tamamlandıktan sonra tarball’ı açıyoruz:

  • [root@localhost ~]# tar -xzf latest.tar.gz
[root@localhost ~]#  wget https://wordpress.org/latest.tar.gz
[......]
2021-01-08 13:09:26 (656 KB/s) - ‘latest.tar.gz’ saved [15422346/15422346]
[root@localhost ~]# tar -xzf latest.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg  latest.tar.gz  wordpress
[root@localhost ~]#

Bizi WordPress arşivi ve açılmış hali karşılıyor.

WordPress Dosyalarının İndirilmesi

Gerekli kurulumlarımız tamamlandığına göre artık sona doğru yaklaşıyoruz.

WordPress Kurulumu:

Bu aşamaya kadar anlatmak istediklerim umarım açık bir şekilde anlaşılmıştır. Kurulum yapmak için WordPress’in kendi sitesinden indirmiş olduğumuz dosyaları ilgili dizine kopyalayıp kurulumu başlatabiliriz.

  • pwd: Bulunduğum dizini göster. Ben “wordpress” arşivini root’un ev dizinine (/root) çıkarmıştım.
  • ls: Bulunduğum dizinin içeriğini listele. “wordpress” dizininin burada olduğunu doğruladık.
  • cp -R wordpress/* /var/www/html/wordpress: Bulunduğumuz dizindeki “wordpress” dizini içerisindeki tüm dosya ve dizinleri “/var/www/html/wordpress” altına kopyala.
  • cd /var/www/html/wordpress: “/var/www/html/wordpress” dizinine geç.
WordPress Dizininin Oluşturulması

Bu işlemin sonunda web sitemize girdiğimizde bizi WordPress kurulum sayfası ekranı karşılıyor:

WordPress Kurulum Sayfası

Let’s go! Nerdeyse bitti 🙂 Oluşturduğumuz veritabanı bilgileri ile gerekli yerleri dolduralım.

WordPress Kurulum Bilgileri

Bir sonraki adımda, WordPress yazılımının “wp-config.php” dosyasına yazamadığını görüyoruz. Bize önerildiği gibi tüm içeriği alıp “wp-config.php” dosyasına yazalım.

wp-config.php hatası

Herhangi bir editör kullanarak “wp-config.php” dosyasını hazırlayabilirsiniz. Ben “vi” editörünü kullanacağım. Öncelikle wordpress dizinimize gidelim.

  • [root@localhost ~]# cd /var/www/html/wordpress
  • [root@localhost wordpress]# vi: Vi editörünü başlat. ( Kopyaladığımız içeriği editöre yapıştırıyoruz. “!wq wp-config.php” yazarak editörden çıkıyoruz.)
  • [root@localhost wordpress]# ls: Bulunduğum dizinin içeriğini listele. “wp-config.php” dosyasının burada olduğunu doğruladık.
  • [root@localhost wordpress]# ls | grep wp-config.php: “/var/www/html/wordpress/” dizini altında “wp-config.php” isimli dosya var mı sorgular.
vi ile wp-config.php dosyası oluşturma

“wp-config.php” dosyamızı oluşturduk, ekrandaki bilgileri doldurduktan sonra WordPress’iniz kullanıma hazır olacak.

WordPress Gerekli Ayarlar
Kurulumu Sonlandırma
WordPress Dashboard
WordPress Anasayfa

Kaynaklar


WordPress Kaynakları



PHP Kaynakları



MySQL Kaynakları



MariaDB Kaynakları



Apache Kaynakları