Linux Unix

Debian 10, LAMP ve WordPress kurulumu

Uzun zamandır Debian Linux ile bir şeyler yazmak istiyordum. Bundan önce yazmış olduğum tüm makalelerde CentOS kullanmıştım. Fakat CentOS ile ilgili son durumdan sonra artık Debian’a yönelmeye karar verdim. LAMP ve WordPress kurulumu için oldukça uzun bir makale ortaya çıktı. Bu makaleyi yazarken, bu şekilde tüm kurulum adımlarının bulunduğu başka bir makale bulamadığım için yazmak zorunluluğu hissettim. Bir wordpress site için neler gerekli, nasıl yapılmalı ve ne gerekiyor, tüm detayları bulabilirsiniz. Anlatılanların tamamını uyguladıktan sonra kusursuz bir wordpress altyapınız olacak. Başlıklar halinde yapılması gerekenleri paylaşmak gerekiyor. Çünkü WordPress için bir çok bileşeni Debian üzerine kurmamız gerekecek.

  1. Debian 10 (Buster) Linux kurulumu ve tüm ince ayarları
  2. Apache web server
  3. MariaDB ve gerekli bileşenleri
  4. PHP ve gerekli bileşenleri
  5. WordPress bileşenleri ve ince ayarları

WordPress için gerekli tüm paket ve altprogramları Debian repo’sundan kuracağız. Benim tarzım asla özel sitelere gidip oradan kurulum dosyaları indirerek kurmak olmuyor. Bunun sebebi ise hedefim herhangi bir güncellemede yapının tamamen Debian’a ait repo’lardan yükseltilmesi. Çünkü repo’dan kurmadığımız her uygulama özel güncelleme gerektirir. Bu bize ilave iş yükü olacaktır. Bunun dışında Debian repo’sunda bulunan güncellemeler de ayrıca daha güvenli olmaktadır.

Yukarıda bahsi geçen 5 adım kendi içinde detaylıca ayarlar içerecek ve eksiksiz olarak tamamlanacaktır. Hemen ilk adım olan Debian Linux’u kurmaya başlayalım,

  1. Debian Linux kurulumu ve ince ayarları

Download etmek için https://www.debian.org/ adresinden faydalanacağız. Ben en son sürüm olan 10.8 versiyonunu indirip kuracağım. Kurulumların görüntülerini alarak sizlerle paylaştım. Bazıları için görüntü altında açıklamalar yaptım bazıları için açıklama yapmaya gerek duymadım. Bu kadar basit görüntüler için eminim sizlerde açıklamaya ihtiyaç duymayacaksınız.

İlk ekran, başlangıç ekranında text install için ikinci seçeneği seçiyorum ve devam ediyorum,

Dil seçeneği English olsun,

Lokasyonu da United States olarak seçiyorum,

Ama klavyeyi kesinlikle Turkish (Q layout) seçiyorum. Her ne kadar Türkçe karakter kullanılmayacak ise de klavyedeki düzen alışkanlığı için Türkçe seçmek benim için avantaj.

Sunucumuz için hostname veriyoruz,

Bağlı bulunduğumuz domaini yazıyoruz,

Şimdi root şifremizi yazıyoruz, bunu iki kere yazmanızı isteyecek. Ben bir ekran görüntüsü ile geçiyorum,

Mutlaka bir kullanıcı oluşturmamızı istiyor. Kendi adımı kullanarak oluşturabilirim,

Kullanıcı için login name isteğini verelim,

Ve tabi bpoyraz için şifre veriyoruz. Unutmayın iki kere isteyecek ben bir ekran görüntüsü paylaşıyorum.

Burada ne seçerseniz seçin sorun değil, kurulumdan sonra düzenleyeceğiz. Zaten çok seçenek vermiyor. Ben Central dedim geçtim,

İşte disk düzenleme, ben ekranlardaki seçeneklere “enter” ile cevap verdim sizde öyle yapabilirsiniz,

Disk düzenlemeleri yukarıdaki ekran ile bitiyor.

Eğer elinizde bulunan disklerin tamamını repo liste eklemesini isterseniz DVD-Rom’a takarak listeye ekleyebilirsiniz. Ama güncel paketleri Debian repository’lerinden yükleyeceğimiz için “no” diyip geçebilirsiniz.

DVD-Rom ilavesinden sonra network üzerinde bir locak repository kullanacaksanız buradaki düzenlemeler ile kullanabilirsiniz. Yani çok fazla sistemimiz var her seferinde bunlar internetten değilde lokalde bir repo kullansınlar diyerek kurdu iseniz o repo’nun kullanılmasını sağlayabilirsiniz. Bende yok devammm,

Kullandığınız Debian Linux paketlerinin popülerlik anketine katılmak ister ve bilgi paylaşmayı düşünürseniz yes diyebilirsiniz. Devammm,

WordPress için otomatik olarak kurulmasını istediğim paketler yukarıdaki gibi. Ben grafik arayüzü kullanmayı düşünmediğim için sadece ilgili paketleri kurup geçiyorum. Extra paket gerekmeyecek nasılsa.

Diskinizde başka bir işletim sistemi var ve ikisini aynı anda kullanmak isterseniz bir uyarı veriyor. Boot record’u değiştireceğim ve Debian Linux’u açılır hale getireceğim diyor. Bizde zaten ikinci bir işletim sistemi yok, “yes” diyip devam edebiliriz,

Bu makinanın /dev/sda diskini boot disk olarak değiştirebilirsin diyoruz ve enter ile devam ediyoruz,

Sonunda kurulum bitti. Şimdi hep birlikte ince işçilik kısmına geçelim. Ne yapalım, önce remote erişim için ssh erişimini açalım,

  • SSH Erişimi

SSH erişimini açıp uzaktan bağlanarak birçok işimizi daha rahat yapabiliriz. Bunun için ana ekranda şu komutu yazabiliriz,

# nano /etc/ssh/sshd_config

Bu dosya içinde “#PermitRootLogin” kısmını bulup başındaki #’i kaldırıp sonundaki “prohibit-password” yerine “yes” yazarak değiştireceğiz. “PermitRootLogin yes” sonra hemen “ctrl-x” tuşlarına basıp “y” ile kayıt edeceğiz ve şöyle olacak,

Akabinde hemen SSH servisini restart edeceğiz ve aktif hale getireceğiz, şu komut ile,

# systemctl restart sshd

Artık uzaktan putty ve benzeri programlarla bağlanarak daha rahat çalışabiliriz. SSH’ı isterseniz config dosyarını eski haline getirerek kapatabilirsiniz.

Putty’ile bağlanalım ve hemen birkaç ince ayar daha yapalım.

  • Güncelleme için Repository ilavesi

Normalde Debian Linux’u kurduğumuzda, kurduğumuz DVD’yi repository olarak kabul eder ve son derece güvenli olan üzerinde gelen repositoy’leri kullanır. Orada da çok fazla paket bulamayabiliriz ve update aşamasında verimli olmaz. Onun yerine kısaca yapılacak işlemi söyle anlatabilirim,

Bu işi repo konfigurasyon dosyalarını değiştirerek yapacağız. İlk önce orjinal dosyayının ismini sources.list.org şeklinde şu komut ile değiştirelim,

# mv /etc/apt/sources.list /etc/apt/sources.list.org

Sonra yenisini oluşturalım ve içini kendi istediğimiz şekilde yazalım, bunun için nano isimli editörü kullanacağız. Şu komut ile editörü açalım,

# nano /etc/apt/sources.list

İçine hemen aşağıda yazılanları yapıştırabilirsiniz,

deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free
deb-src http://deb.debian.org/debian buster-updates main contrib non-free
deb http://deb.debian.org/debian buster-backports main contrib non-free
deb-src http://deb.debian.org/debian buster-backports main contrib non-free
deb http://security.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security/ buster/updates main contrib non-free

bunları yapıştırıp “ctrl+x” tuş kombinasyonuna basıp sonra “y” cevabı ile yenisini oluşturup kapatalım. Bu işlem sonrası şu komutu uygulayıp ilk hazırlığı tamamlayalım,

# apt -y update && apt -y upgrade

Sistemimiz şimdi güncellemeler ve istediğimiz paketleri yüklemek üzere hazır.

  • Timezone değişikliği

Time zone defaultta Istanbul olmayacaktır. Bunun için şu komutu verebiliriz

# timedatectl set-timezone Europe/Istanbul

Doğru olmuşmu diye konrtol için şu komutu verelim,

# timedatectl

Sonuç görüntüsü işte şu şekilde olacak,

  • VMtools install

Eğer Debian Linux’u VMware ortamında kullanıyorsanız ve işletim sistemi ile VMware ortamının haberleşmesini istiyorsanız VMtools’u kurabilirsiniz. Şu komut ile kolayca halledebiliriz.

# apt -y install open-vm-tools --install-recommends

Sanal ortamın tüm nimetlerinden tam olarak faydalanmak için VMtools’uda kurmuş olduk.

  • DHCP’den Statik ip’ye Dönüştürme

Debian ilk kurulumda otomatik ip ile kuruluyor. Mutlaka sunucuyu static ip’ye çevirmenizi öneririm. Bunun için ilk önce aktif interface’leri görelim,

# ip link show

Devamında interface dosyasının içini değiştirelim. Yine nano editor ile düzenleyeceğiz, içeriği hemen altındaki gibi olacaktır,

# nano /etc/network/interfaces

Bu dosyadaki en alt satırı siliyor ve aşağıdaki saturları ilave ediyoruz,

auto ens192
iface ens192 inet static
  address 10.0.1.62
  netmask 255.255.255.0
  gateway 10.0.1.250
  dns-nameservers 8.8.8.8 4.2.2.1 4.2.2.6 208.67.222.222

Tabi siz kendinize uygun şekilde ip’leri vereceksiniz. Sonuç şu şekilde olacaktır,

Yine “ctrl+x” tuş kombinasyonu ile çıkan soruya “y” diyerek kayıt edip çıkıyoruz. Yaptığımız değişikliğin aktif hale gelmesi için şu komutları verebilirsiniz, yada restart edebilirsiniz. Bu adımla dinamik ip olan adresimizi static ip’ye çevirmiş oluyoruz.

# systemctl restart networking

Ve Debian için gerekli ip düzenlemelerini tamamlamış olduk. Şimdi ikinci adıma geçebiliriz.

  • Apache Web Server Kurulumu

Bildiğiniz gibi Debian’I kurarken web server seçeneği ile kurmuştuk. Sunucumuzda Apache web serverin son sürümü zaten mevcut. Eğer kurulumda seçmezseniz şu komut ile kurabilirsiniz,

# apt install apache2

Kurulu ve çalışıyormu testini ise şu komut ile yapabilirsiniz,

# systemctl status apache2

Bu komutun ekran çıktısı şu şekilde görünmektedir,

  • MariaDB ve bileşenlerinin kurulumu

WordPress’in ihtiyaç duyduğu ana bileşenlerden biri olan database sunucuyu kuracağız. Bu iş için en uygun ve tavsiye edilen database MySql’in bir türü olan MariaDB. MariaDB içinde hem kullanıcı hemde database oluşturup hazır edeceğiz. İlk önce MariaDB’yi kuralım. Bunun için gerekli komut,

# apt install mariadb-server --install-recommends

Kurulum bittikten sonra aşağıdaki komut ile MariaDB’nin ilk düzenlemelerini yapacağız, şu komutu verelim,

# mysql_secure_installation

Sonra şu şekilde çıkan sorulara verilecek cevaplar şunlar,

İşlem tamam, şimdi MariaDB’ye login olup kullanıcı ve Database oluşturma işlemlerini tamamlayalım, login olmak için,

# mariadb -u root -p

Benim kullanıcım wpadmin, şifreside Passw0rd!1. Oluşturmak için,

CREATE USER ‘wpadmin’@’localhost’ IDENTIFIED BY ‘Passw0rd!1’;

Worddpress için oluşturacağım database ise wpdb. Bunu oluşturmak ve oluşturduğumuz wpadmin kullanıcısına bu database üzerinde hak vermek için,

CREATE DATABASE wpdb;
GRANT ALL ON wpdb.* TO ‘wpadmin’@’localhost’ IDENTIFIED BY ‘Passw0rd!1’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

MariaDB Database ve içindeki tüm işlemleri tamamladık. Bu adımda yaptıklarımız doğrumu değilmi görmek için şu komut ile bakabiliriz.

select Host, Db, User, Insert_priv, Update_priv, Delete_priv, Create_tmp_table_priv, Alter_priv from mysql.db limit 1;

işte sonuç,

Şimdi MariaDB’den cli’a çıkalım tekrar,

exit;

  • PHP ve gerekli bileşenlerin kurulumu

WordPress mutlaka PHP bileşenleri gerektirir. PHP olmadan wordpress’i kullanmak çok mümkün değildir. O yüzden bizde PHP ve gerekli tüm paketleri kuracağız. Bunun için aşağıdaki komut bize yardımcı olacak,

apt -y install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip   --install-recommends

Bu kurulumlar sonrası PHP’nin sistemimizde tam anlamıyla çalışıp çalışmadığını control edelim isterseniz. Bunun için bir info.php dosyası oluşturmamız gerekiyor. Şu komut ile kolayca oluşturabiliriz.

# echo “<?php phpinfo(); ?>” >> /var/www/html/info.php

Browser’a adresi yazalım ve çalışıp çalışmadığını control ederlim,

http://10.0.1.62/info.php

Sorunsuzca çalışıyor, gayet başarılı. Şimdi tüm hazırlıklar tamamlandığına göre artık wordpress’i kurabiliriz.

  • WordPress kurulumu

En son adıma geldik. Bu adımıda tamamlayalım ve işlemleri bitirelim. Hemen wordpress kurulumu için gerekli komutları girelim,

# apt -y install WordPress curl software-properties-common dirmngr --install-recommends

WordPress ile gerekli bazı paketlerin kurulumu çabucak bitecektir. Bu kurulum sonrasında wordpress içinde update hataları ve yetki problemleri yaşamamanız için şu komutları kullanabilirsiniz. Lütfen hepsini birden copy-paste etmeyin, teker teker yapın ve sonuçlarını görerek sürece hakim olun.

# rm -rf /var/lib/wordpress/wp-content/themes/twentynineteen
# rm -rf /var/lib/wordpress/wp-content/plugins/akismet
# mv /usr/share/wordpress/wp-content/themes/twentynineteen /var/lib/wordpress/wp-content/themes/twentynineteen
# mv /usr/share/wordpress/wp-content/plugins/akismet /var/lib/wordpress/wp-content/plugins/akismet
# chown -R www-data:www-data /var/lib/wordpress

Sunucumuza özel bazı değişiklikler yapacağız. Burada bir tek site için özelleştirilmiş bir WordPress kurulumu gerçekleştiriyoruz. Eğer birden fazla siteyi aynı sunucuda barındıracaksanız bundan sonraki adımlar değişiklik ister. Ama belirttiğim gibi ben sadece birtek site için düzenlemeleri yapacağım.

/etc/apache2/sites-available/000-default.conf

dosyasını açarak birkaç değişiklik yapacağız, bunun için yine nano isimli editor ile belirttiğimiz dosyayı açalım ve değişiklikleri yapalım,

# nano /etc/apache2/sites-available/000-default.conf

İlk değişiklik,

/usr/share/wordpress

Sonrasında ilave olarak,

</VirtualHost>
        <Directory /usr/share/wordpress/>
        AllowOverride All
</Directory>

Yine “ctrl+x” tuş bileşenleri ve “y” cevabı ile kayıt edip çıkıyoruz. Geldik en son adıma. Sunucumuza ait bir özel PHP dosyası oluşturacağız. Oluşturduğumuz bu dosya ile, wordpressle gelen orjinal dosyaya dokunmamış oluyoruz. İlerleyen zamanlarda işlemleri geri almak gerekirse yeni dosyayı silerek devam edebilirsiniz.

Dosyayı oluşturma komutumuz,

# nano /etc/wordpress/config-10.0.1.62.php

Içine yazacağımız kod’lar ise,

<?php
/***
 * WordPress’s Debianised default master config file
 * Please do NOT edit and learn how the configuration works in
 * /usr/share/doc/wordpress/README.Debian
 ***/
/* Look up a host-specific config file in
 * /etc/wordpress/config-<host>.php or /etc/wordpress/config-<domain>.php
 */
$debian_server = preg_replace(‘/:.*/’, “”, $_SERVER[‘HTTP_HOST’]);
$debian_server = preg_replace(“/[^a-zA-Z0-9.\-]/”, “”, $debian_server);
$debian_file = ‘/etc/wordpress/config-‘.strtolower($debian_server).’.php’;
/* Main site in case of multisite with subdomains */
$debian_main_server = preg_replace(“/^[^.]*\./”, “”, $debian_server);
$debian_main_file = ‘/etc/wordpress/config-‘.strtolower($debian_main_server).’.php’;
if (file_exists($debian_file)) {
    require_once($debian_file);
    define(‘DEBIAN_FILE’, $debian_file);
} elseif (file_exists($debian_main_file)) {
    require_once($debian_main_file);
    define(‘DEBIAN_FILE’, $debian_main_file);
} elseif (file_exists(“/etc/wordpress/config-default.php”)) {
    require_once(“/etc/wordpress/config-default.php”);
    define(‘DEBIAN_FILE’, “/etc/wordpress/config-default.php”);
} else {
    header(“HTTP/1.0 404 Not Found”);
    echo “Neither <b>$debian_file</b> nor <b>$debian_main_file</b> could be found. <br/> Ensure one of them exists, is readable by the webserver and contains the right password/username.”;
    exit(1);

}
/* Default value for some constants if they have not yet been set
   by the host-specific config files */
if (!defined(‘ABSPATH’))
    define(‘ABSPATH’, ‘/usr/share/wordpress/’);
if (!defined(‘WP_CORE_UPDATE’))
    define(‘WP_CORE_UPDATE’, false);
if (!defined(‘WP_ALLOW_MULTISITE’))
    define(‘WP_ALLOW_MULTISITE’, true);
if (!defined(‘DB_NAME’))
    define(‘DB_NAME’, ‘wpdb’);
if (!defined(‘DB_USER’))
    define(‘DB_USER’, ‘wpadmin’);
if (!defined(‘DB_PASSWORD’))
    define(‘DB_PASSWORD’, ‘Passw0rd!1’);
if (!defined(‘DB_HOST’))
    define(‘DB_HOST’, ‘localhost’);
if (!defined(‘FS_METHOD’))
    define(‘FS_METHOD’, ‘direct’);
if (!defined(‘DOMAIN_CURRENT_SITE’))
    define(‘DOMAIN_CURRENT_SITE’, ‘10.0.1.62’);
if (!defined(‘PATH_CURRENT_SITE’))
    define(‘PATH_CURRENT_SITE’, ‘/’);
if (!defined(‘SITE_ID_CURRENT_SITE’))
    define(‘SITE_ID_CURRENT_SITE’, 1);
if (!defined(‘BLOG_ID_CURRENT_SITE’))
    define(‘BLOG_ID_CURRENT_SITE’, 1);
if (!defined(‘WP_CONTENT_DIR’) && !defined(‘DONT_SET_WP_CONTENT_DIR’))
    define(‘WP_CONTENT_DIR’, ‘/var/lib/wordpress/wp-content’);
/* Default value for the table_prefix variable so that it doesn’t need to
   be put in every host-specific config file */
if (!isset($table_prefix)) {
    $table_prefix = ‘wp_’;
}
if (isset($_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] == ‘https’)
    $_SERVER[‘HTTPS’] = ‘on’;
require_once(ABSPATH . ‘wp-settings.php’);
?>

Dosyamıız “ctrl+x” ve “y” kombinasyonları ile kayıt edip çıkıyoruz. Son olarakta şu komutlarla servislerin yeniden başlatılmasını sağlıyor ve düzgün çalışıp çalışmadığını test ediyoruz,

# a2enmod rewrite
# systemctl restart apache2
# apache2ctl configtest
# wp-setup --sync-wp-content

Şimdi son bir sistem güncelleme kontrolü yapalım, bu komut şu ana kadar kurulan tüm paketlerin güncellemesine bakar. Bu komutu zaman zaman sunucunuzda çalıştırmakta fayda var.

# apt -y update && apt -y upgrade

Buraya kadar CLi komutları ile geldik ve Cli ile işimiz bitti. Artık grafik ekrana geçerek oradan devam edeceğiz. Browser’in adres kısmına şu adresi girip birazcık bekleyelim,

http://10.0.1.62/wp-admin/install.php

Gelen ekran,

Devam edelim,

Install WordPress tuşuna tıklayıp görelim,

Başarılı şekilde tamamlandı, şimdi Login olalım,

Ve sonuç,

İşlem tamamlandı yanlız ilgimi çeken bir şey oldu. Hakan hocanın bilgilerini girdikten sonra en üst köşede, solda kendisinin resmi otomatik olarak geldi, çok şaşırdım,

Bunun nasıl olduğunu anlamış değilim ama demekki wordpress camiasında Hakan hoca tanınan birisi. Gerçek e-mail adresini girdiğimden olsa gerek. Güzel bir anı olacak bu.

Evet hepbirlikte problemsiz ve kusursuz bir wordpress kurulumu tamamlamış olduk. Word dosyasında sayfa sayısı 42 kelime adedi ise 2056 olarak görünüyor. Umarım sizde bir wordpress sunucusu gerektiğinde bu makaleden faydalanır ve kurulumlarınızı yaparsınız. Her adımını tek tek deneyerek makaleyi yazarken gerçekleştirdiğim bu kurulumda eğer problemli bir adım ile karşılaşırsanız lütfen çekinmeden geri bildirimde bulunun, bizde problemli bölümü düzeltelim.

2 Yorum

  1. Hocam eline sağlık 1 ay önce gerçekten çok aramıştım bunun için kaynağı uzun uğraşlar sonucunda ubuntu üzerinde siteyi yayına aldım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

Reklam Engelleyici Algılandı

ÇözümPark Bilişim Portalı gönüllü bir organizasyon olup tek gelir kaynağı reklamlardır. Bu nedenle siteyi gezerken lütfen reklam engelleme eklentinizi kapatın veya Çözümpark web sitesi için izin tanımı yapın. Anlayışınız için teşekkürler.