Takip et

WordPress Yerel Geliştirme Ortamı Kurulumu: Vagrant ile Neden ve Nasıl?

WordPress Yerel Geliştirme Ortamı Kurulumu: Vagrant ile Neden ve Nasıl? Modern web geliştirme süreçlerinde, özellikle WordPress gibi dinamik v

WordPress Yerel Geliştirme Ortamı Kurulumu: Vagrant ile Neden ve Nasıl?

Modern web geliştirme süreçlerinde, özellikle WordPress gibi dinamik ve veritabanı tabanlı sistemlerde, sağlam ve tutarlı bir geliştirme ortamına sahip olmak hayati öneme sahiptir. “Makinede çalışıyor ama sunucuda çalışmıyor” sendromundan kaçınmak, farklı geliştiriciler arasında işbirliğini kolaylaştırmak ve üretim ortamına yakın bir deneyim sunmak için yerel geliştirme ortamları vazgeçilmezdir. Geleneksel olarak XAMPP, MAMP veya WAMP gibi paketler kullanılsa da, bu çözümler genellikle esneklik, izolasyon ve tekrarlanabilirlik konusunda yetersiz kalabilir. İşte bu noktada Vagrant devreye girerek, sanallaştırma teknolojisinin gücünü kullanarak geliştiricilere tutarlı, taşınabilir ve otomatize edilmiş yerel geliştirme ortamları kurma imkanı sunar.

Bu makalede, Vagrant’ın ne olduğunu, WordPress geliştirme süreçlerinizde neden bu kadar önemli olduğunu ve adım adım nasıl bir WordPress yerel geliştirme ortamı kuracağınızı ayrıntılı bir şekilde inceleyeceğiz. Ayrıca, en iyi uygulamalar, gelişmiş yapılandırmalar ve karşılaşabileceğiniz olası sorunlara yönelik çözümlere de değineceğiz.

Neden Vagrant ile Yerel Geliştirme Ortamı Kurmalısınız?

Vagrant, geliştirme ortamlarını sanal makineler (VM’ler) üzerinde otomatik olarak yapılandırmak ve yönetmek için tasarlanmış bir araçtır. VirtualBox, VMware veya Hyper-V gibi sanallaştırma yazılımlarıyla entegre çalışarak, her projeye özel izole edilmiş ve tutarlı bir ortam sağlar. WordPress geliştiricileri için Vagrant’ın sunduğu temel avantajlar şunlardır:

Tutarlılık (Consistency)

* Geliştirici ve Üretim Ortamı Arasında: Vagrant, yerel ortamınızı üretim sunucunuzun yapılandırmasına (işletim sistemi, PHP sürümü, veritabanı sürümü vb.) mümkün olduğunca yakın bir şekilde ayarlamanıza olanak tanır. Bu, “benim makinemde çalışıyordu” sorunlarını ortadan kaldırır ve dağıtım sırasında beklenmedik hataları en aza indirir.
* Ekip İçinde Tutarlılık: Bir ekipte birden fazla geliştirici çalıştığında, herkesin aynı geliştirme ortamına sahip olması kritik öneme sahiptir. Vagrantfile, projenin sürüm kontrol sistemine (Git gibi) eklendiğinde, yeni bir geliştirici veya mevcut bir geliştirici makine değiştirdiğinde, ortamı saniyeler içinde tamamen aynı şekilde kurabilir.

Taşınabilirlik (Portability)

* Vagrant ortamları taşınabilirdir. Bir projeyi bir bilgisayardan diğerine taşımak veya yeni bir projeye başlamak, sadece proje dizinini kopyalamak ve vagrant up komutunu çalıştırmak kadar kolaydır. Bu, kurulum ve yapılandırma süreçlerine harcanan zamanı önemli ölçüde azaltır.

İzolasyon (Isolation)

* Her Vagrant ortamı kendi sanal makinesinde çalıştığı için, projeler birbirinden tamamen izole edilmiştir. Bu, farklı WordPress projelerinin farklı PHP sürümleri, Apache/Nginx yapılandırmaları veya veritabanı sistemleri gerektirdiğinde büyük bir avantajdır. Ana işletim sisteminizdeki yazılımlarla çakışma riski ortadan kalkar.
* Ana sisteminizde herhangi bir yazılım kurmanıza gerek kalmaz, bu da ana sisteminizi temiz ve düzenli tutmanızı sağlar.

Tekrarlanabilirlik (Reproducibility)

* Vagrantfile, ortamın tüm yapılandırmasını kod olarak tanımlar. Bu, ortamı istediğiniz zaman yok edip (destroy) yeniden oluşturabileceğiniz anlamına gelir. Bu, özellikle karmaşık bir yapılandırmayı test ederken veya bir şeylerin ters gittiği durumlarda çok faydalıdır.

İşbirliği (Collaboration)

* Vagrantfile’ı sürüm kontrol sistemine dahil ederek, tüm ekibin aynı ortam tanımını kullanmasını sağlarsınız. Bir ortam yapılandırmasında yapılan değişiklikler, herkesin kolayca güncelleyebileceği ve uygulayabileceği şekilde paylaşılır.

Felaket Kurtarma (Disaster Recovery)

* Ana işletim sisteminiz çökse veya yeniden yüklemeniz gerekse bile, Vagrantfile’ınız ve proje dosyalarınız güvende olduğu sürece, geliştirme ortamınızı dakikalar içinde yeniden kurabilirsiniz.

Maliyet Etkinliği (Cost-Effectiveness)

* Vagrant ve VirtualBox gibi temel araçlar açık kaynak ve ücretsizdir. Bu, geliştirme ortamı altyapısı için herhangi bir lisans maliyeti ödemeyeceğiniz anlamına gelir. Ayrıca, kurulum ve bakım sürelerinden tasarruf ederek dolaylı maliyetleri de düşürür.

Bu avantajlar göz önüne alındığında, Vagrant’ın WordPress geliştirme süreçlerinizi nasıl daha verimli, güvenilir ve keyifli hale getirebileceği açıktır. Şimdi, bu güçlü aracı nasıl kuracağımıza ve WordPress için bir LAMP (Linux, Apache, MySQL, PHP) yığını oluşturacağımıza geçelim.

Ön Gereksinimler

Vagrant ile bir WordPress yerel geliştirme ortamı kurmaya başlamadan önce, bilgisayarınızda bazı temel yazılımların yüklü olması gerekir:

1. Sanallaştırma Yazılımı (Virtualization Software): Vagrant, sanal makineleri çalıştırmak için bir sanallaştırma sağlayıcısına ihtiyaç duyar. En popüler ve ücretsiz seçenek VirtualBox’tır. VMware Workstation/Fusion veya Hyper-V (Windows Pro kullanıcıları için) de kullanılabilir, ancak genellikle VirtualBox tercih edilir.
* VirtualBox Kurulumu: VirtualBox’ın resmi web sitesinden (virtualbox.org) işletim sisteminize uygun sürümü indirip kurun. Kurulum sırasında varsayılan seçenekleri kabul edebilirsiniz.
2. Vagrant: Vagrant’ın kendisi.
* Vagrant Kurulumu: Vagrant’ın resmi web sitesinden (vagrantup.com) işletim sisteminize uygun sürümü indirip kurun. Kurulum genellikle basittir ve varsayılan seçeneklerle ilerleyebilirsiniz. Kurulumdan sonra bir komut istemcisi (Terminal veya Komut İstemi) açarak vagrant --version komutunu çalıştırarak doğru şekilde kurulup kurulmadığını kontrol edebilirsiniz.
3. Metin Düzenleyici veya IDE: Vagrantfile ve diğer yapılandırma dosyalarını düzenlemek için bir metin düzenleyiciye (VS Code, Sublime Text, Atom) veya bir IDE’ye (PhpStorm) ihtiyacınız olacak.
4. Terminal/Komut İstemi: Vagrant komutlarını çalıştırmak için bir komut istemcisi kullanmanız gerekecek.

Bu ön gereksinimleri tamamladıktan sonra, Vagrant ile WordPress ortamınızı kurmaya hazırsınız.

Vagrant ile WordPress Yerel Geliştirme Ortamı Nasıl Kurulur?

Bu bölümde, adım adım bir WordPress yerel geliştirme ortamını Vagrant kullanarak nasıl kuracağımızı anlatacağız. Temel olarak bir Linux sanal makinesi (Ubuntu), Apache web sunucusu, MySQL veritabanı ve PHP’den oluşan bir LAMP yığını oluşturacağız.

1. Adım: Proje Dizini Oluşturma ve Vagrantfile Başlatma

İlk olarak, WordPress projeniz için bir dizin oluşturun ve bu dizine gidin. Ardından Vagrant’ı bu dizinde başlatın.

mkdir my-wordpress-project
cd my-wordpress-project
vagrant init ubuntu/bionic64

* mkdir my-wordpress-project: Projeniz için my-wordpress-project adında bir dizin oluşturur.
* cd my-wordpress-project: Oluşturduğunuz dizine geçiş yapar.
* vagrant init ubuntu/bionic64: Bu komut, ubuntu/bionic64 adlı bir Vagrant kutusunu temel alarak yeni bir Vagrantfile oluşturur. ubuntu/bionic64, Ubuntu 18.04 LTS (Bionic Beaver) sürümünü içeren popüler bir Vagrant kutusudur. Bu komutu çalıştırdığınızda, dizininizde Vagrantfile adında bir dosya oluşacaktır.

2. Adım: Vagrantfile Yapılandırması

Vagrantfile, sanal makinenizin tüm yapılandırmasını içerir. Bu dosyayı bir metin düzenleyici ile açın ve aşağıdaki değişiklikleri yapın. Açıklamaları dikkatlice okuyun.

# -- mode: ruby --

vi: set ft=ruby :

Vagrant.configure("2") do |config| # Sanal makine için kullanılacak kutu (işletim sistemi) config.vm.box = "ubuntu/bionic64" # Sanal makineye özel bir IP adresi atayın. Bu IP üzerinden tarayıcınızdan erişebileceksiniz. config.vm.network "private_network", ip: "192.168.33.10" # Host (ana bilgisayar) ve Guest (sanal makine) arasında paylaşılan klasör. # Bu, host makinenizdeki proje dizininizi sanal makinedeki /var/www/html diziniyle senkronize eder. # WordPress dosyalarınızı host makinenizde düzenleyip, değişiklikleri anında sanal makinede görebileceksiniz. config.vm.synced_folder ".", "/var/www/html" # Sanal makineye kaynak ataması (isteğe bağlı ama önerilir) config.vm.provider "virtualbox" do |vb| vb.name = "WordPressDev" # VirtualBox'ta VM'in adı vb.memory = "1024" # 1 GB RAM vb.cpus = "1" # 1 CPU çekirdeği end # Sanal makineyi otomatik olarak yapılandırmak için provisioning (sağlama) betiği. # Bu betik, VM ilk kez başlatıldığında veya vagrant provision komutu çalıştırıldığında çalışır. config.vm.provision "shell", path: "bootstrap.sh" end

* config.vm.box = "ubuntu/bionic64": Kullanılacak işletim sistemi kutusunu belirtir. Eğer bu kutu yerel olarak yüklü değilse, Vagrant ilk vagrant up komutunda otomatik olarak indirecektir.
* config.vm.network "private_network", ip: "192.168.33.10": Sanal makinenize statik bir özel IP adresi atar. Bu IP adresi, ana bilgisayarınızdan sanal makineye erişmenizi sağlar. Tarayıcınızda http://192.168.33.10 adresini yazarak WordPress sitenize ulaşacaksınız.
* config.vm.synced_folder ".", "/var/www/html": Bu satır, ana bilgisayarınızdaki mevcut proje dizininizi (.) sanal makinedeki /var/www/html diziniyle senkronize eder. Bu, WordPress dosyalarınızı ana bilgisayarınızda favori metin düzenleyicinizle düzenleyebileceğiniz ve değişikliklerin sanal makinede anında yansımasını sağlayabileceğiniz anlamına gelir.
* config.vm.provider "virtualbox" do |vb| ... end: Bu blok, VirtualBox’a özel ayarları yapılandırmanıza olanak tanır. Burada sanal makineye 1GB RAM ve 1 CPU çekirdeği atadık. Projenizin ihtiyaçlarına göre bu değerleri artırabilirsiniz.
* config.vm.provision "shell", path: "bootstrap.sh": Bu satır, sanal makine ilk kez başlatıldığında veya vagrant provision komutuyla manuel olarak çalıştırıldığında bir bootstrap.sh betiğinin çalıştırılacağını belirtir. Bu betik, LAMP yığınını ve WordPress’i kurmak için kullanılacaktır.

3. Adım: Provisioning Betiği Oluşturma (bootstrap.sh)

Vagrantfile ile aynı dizine bootstrap.sh adında yeni bir dosya oluşturun ve içine aşağıdaki komutları ekleyin. Bu betik, sanal makine içinde Apache, MySQL, PHP ve WordPress’i kuracaktır.

#!/usr/bin/env bash

Sanal makineyi güncelle

echo "Updating apt packages..." sudo apt-get update -y sudo apt-get upgrade -y

Apache Web Sunucusu Kurulumu

echo "Installing Apache..." sudo apt-get install -y apache2

Apache'yi paylaşılan klasörü kullanacak şekilde yapılandır

default sites-available dosyasını düzenliyoruz

echo "Configuring Apache for /var/www/html..." sudo rm -rf /var/www/html/* # Varsayılan index.html'yi kaldır sudo chown -R vagrant:www-data /var/www/html # Dizin sahibini değiştir sudo chmod -R 775 /var/www/html # Dizin izinlerini ayarla

Apache yapılandırma dosyasını düzenle (örneğin 000-default.conf)

DocumentRoot'u /var/www/html olarak ayarla ve AllowOverride All ekle

APACHE_CONFIG="/etc/apache2/sites-available/000-default.conf" if [ -f "$APACHE_CONFIG" ]; then sudo sed -i 's|DocumentRoot /var/www/html|DocumentRoot /var/www/html\n\n\t\n\t\tOptions Indexes FollowSymLinks MultiViews\n\t\tAllowOverride All\n\t\tRequire all granted\n\t|' "$APACHE_CONFIG" echo "Apache DocumentRoot updated and AllowOverride All added." else echo "Warning: Apache default config file not found at $APACHE_CONFIG." fi

Apache rewrite modülünü etkinleştir (WordPress permalinkleri için gerekli)

echo "Enabling Apache rewrite module..." sudo a2enmod rewrite

Apache servisini yeniden başlat

echo "Restarting Apache service..." sudo systemctl restart apache2

MySQL Veritabanı Sunucusu Kurulumu

echo "Installing MySQL server..."

DEBIAN_FRONTEND=noninteractive ile kurulum sırasında şifre sormadan devam et

sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root' sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root' sudo apt-get install -y mysql-server

WordPress için veritabanı ve kullanıcı oluştur

echo "Creating WordPress database and user..." sudo mysql -u root -proot -e "CREATE DATABASE IF NOT EXISTS wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" sudo mysql -u root -proot -e "CREATE USER IF NOT EXISTS 'wp_user'@'localhost' IDENTIFIED BY 'password';" sudo mysql -u root -proot -e "GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';" sudo mysql -u root -proot -e "FLUSH PRIVILEGES;" echo "WordPress database 'wordpress_db' and user 'wp_user' created."

PHP ve Gerekli Modüllerin Kurulumu

echo "Installing PHP and necessary modules..." sudo apt-get install -y php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip

PHP ayarlarını düzenle (isteğe bağlı, performansı artırabilir)

Örneğin, bellek limitini artırma

PHP_INI="/etc/php/7.2/apache2/php.ini" # Ubuntu 18.04 varsayılan PHP 7.2 kullanır if [ -f "$PHP_INI" ]; then sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/g' "$PHP_INI" echo "PHP memory_limit updated to 256M." else echo "Warning: PHP ini file not found at $PHP_INI." fi

Apache servisini PHP değişiklikleri için yeniden başlat

echo "Restarting Apache service for PHP changes..." sudo systemctl restart apache2

WordPress Kurulumu

echo "Downloading and installing WordPress..." cd /var/www/html

Eğer zaten bir WordPress kurulumu yoksa devam et

if [ ! -f "wp-config.php" ]; then # Önceki dosyaları temizle (eğer varsa) sudo rm -rf index.html sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz sudo mv wordpress/* . sudo rm -rf latest.tar.gz wordpress # wp-config.php dosyasını oluştur ve veritabanı bilgilerini ekle sudo cp wp-config-sample.php wp-config.php sudo sed -i "s/database_name_here/wordpress_db/g" wp-config.php sudo sed -i "s/username_here/wp_user/g" wp-config.php sudo sed -i "s/password_here/password/g" wp-config.php sudo sed -i "s/localhost/localhost/g" wp-config.php # Zaten localhost, yine de örnek için bırakıldı # WordPress güvenlik anahtarlarını otomatik olarak oluştur ve ekle # Bu adım, daha güvenli bir wp-config.php oluşturur. SALT=$(wget -qO- https://api.wordpress.org/secret-key/1.1/salt/) printf '%s\n' "$SALT" | awk '/define/{printf "define(%s);\n", $2}' | sudo tee -a wp-config.php > /dev/null echo "WordPress downloaded and wp-config.php configured." else echo "WordPress already seems to be installed." fi

Dosya izinlerini ayarla (WordPress'in yazma iznine ihtiyacı var)

echo "Setting file permissions for WordPress..." sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} \; sudo find /var/www/html -type f -exec chmod 644 {} \; echo "File permissions set." echo "Vagrant provisioning complete. Your WordPress site should be accessible at http://192.168.33.10"

Bu betik şunları yapar:
* Ubuntu paket listesini günceller.
* Apache2’yi kurar ve DocumentRoot‘u /var/www/html olarak ayarlar. Ayrıca AllowOverride All ekleyerek .htaccess dosyalarının çalışmasını sağlar ve mod_rewrite‘ı etkinleştirir.
* MySQL sunucusunu kurar ve root şifresini root olarak ayarlar (yalnızca geliştirme için güvenlidir).
* WordPress için wordpress_db adında bir veritabanı ve wp_user adında password şifresiyle bir kullanıcı oluşturur.
* PHP ve WordPress’in ihtiyaç duyduğu gerekli PHP modüllerini (php-mysql, php-cli, php-curl vb.) kurar.
* PHP memory_limit‘i 256M’ye yükseltir (isteğe bağlı).
* Apache servisini yeniden başlatır.
* /var/www/html dizinine WordPress’in en son sürümünü indirir, arşivden çıkarır ve ana dizine taşır.
* wp-config.php dosyasını wp-config-sample.php‘den kopyalar ve veritabanı bilgilerini (veritabanı adı, kullanıcı adı, şifre) otomatik olarak doldurur. Ayrıca, WordPress güvenlik anahtarlarını da otomatik olarak oluşturur ve ekler.
* WordPress dosyaları için doğru dosya ve dizin izinlerini ayarlar (www-data kullanıcısı ve grubu).

4. Adım: Sanal Makineyi Başlatma

Vagrantfile ve bootstrap.sh dosyalarını oluşturduktan sonra, proje dizininizde bir komut istemcisi açın ve aşağıdaki komutu çalıştırın:

vagrant up

Bu komut şunları yapacaktır:
1. ubuntu/bionic64 kutusunu indirir (eğer daha önce indirilmediyse).
2. VirtualBox’ta sanal makineyi oluşturur ve başlatır.
3. Vagrantfile‘da belirtilen ağ ayarlarını ve paylaşılan klasörleri yapılandırır.
4. bootstrap.sh betiğini çalıştırarak Apache, MySQL, PHP ve WordPress kurulumunu otomatik olarak gerçekleştirir.

Bu işlem biraz zaman alabilir (internet hızınıza ve bilgisayarınızın performansına bağlı olarak 10-20 dakika). Tüm adımlar başarıyla tamamlandığında, terminalde “Vagrant provisioning complete…” mesajını görmelisiniz.

5. Adım: WordPress Kurulumunu Tamamlama

Sanal makine başarıyla başlatılıp yapılandırıldıktan sonra, web tarayıcınızı açın ve http://192.168.33.10 adresine gidin. WordPress’in hoş geldiniz ekranını görmelisiniz. Burada sitenizin başlığını, yönetici kullanıcı adını, şifresini ve e-posta adresini girerek WordPress kurulumunu tamamlayabilirsiniz.

Tebrikler! Vagrant ile tamamen işlevsel bir WordPress yerel geliştirme ortamı kurdunuz.

6. Adım: Sanal Makine Yönetimi

Sanal makineyi yönetmek için bazı temel Vagrant komutları:

* vagrant ssh: Sanal makineye SSH ile bağlanır. Bu, sanal makine içinde komut çalıştırmanıza olanak tanır.
* vagrant suspend: Sanal makineyi askıya alır (RAM durumunu kaydeder). Hızlı bir şekilde durdurup başlatmak için idealdir.
* vagrant resume: Askıya alınmış bir sanal makineyi devam ettirir.
* vagrant halt: Sanal makineyi düzgün bir şekilde kapatır.
* vagrant reload: Vagrantfile‘da yapılan değişiklikleri uygulamak için sanal makineyi yeniden başlatır.
* vagrant destroy: Sanal makineyi ve tüm verilerini kalıcı olarak siler. Bu, ortamı tamamen sıfırlamak istediğinizde kullanışlıdır.

Gelişmiş Kavramlar ve En İyi Uygulamalar

Temel kurulumu tamamladıktan sonra, Vagrant deneyiminizi daha da geliştirecek bazı ileri düzey kavramlar ve en iyi uygulamalar bulunmaktadır:

Ana Bilgisayar Adları (Hostnames) ile Çalışma

IP adresi yerine daha anlamlı bir ana bilgisayar adı (örneğin, mywordpress.local) kullanmak, birden fazla proje üzerinde çalışırken veya URL’leri hatırlarken daha kolaydır. Bunu yapmak için ana bilgisayarınızın hosts dosyasını düzenlemeniz gerekir:

* Linux/macOS: /etc/hosts
* Windows: C:\Windows\System32\drivers\etc\hosts

Bu dosyaya aşağıdaki satırı ekleyin:

192.168.33.10 mywordpress.local

Ardından, tarayıcınızda http://mywordpress.local adresini kullanarak WordPress sitenize erişebilirsiniz.

Vagrant-Hostmanager Eklentisi: Bu işlemi otomatikleştirmek için vagrant-hostmanager eklentisini kullanabilirsiniz.

vagrant plugin install vagrant-hostmanager

Ardından Vagrantfile‘ınıza şu satırları ekleyin:

config.vm.hostname = "mywordpress.local"
config.vm.network "private_network", ip: "192.168.33.10", :virtualbox__intnet => true # virtualbox__intnet gerekebilir
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.manage_guest = true

vagrant up veya vagrant reload çalıştırdığınızda, eklenti hosts dosyanızı otomatik olarak güncelleyecektir.

Birden Fazla Sanal Makine ve Proje

Vagrantfile’da birden fazla config.vm.define bloğu kullanarak tek bir Vagrantfile içinde birden fazla sanal makine tanımlayabilirsiniz. Her VM için farklı IP adresleri ve paylaşılan klasörler atayarak birden fazla WordPress projesini aynı anda çalıştırabilirsiniz.

Vagrant.configure("2") do |config|
  config.vm.define "wordpress1" do |wordpress1|
    wordpress1.vm.box = "ubuntu/bionic64"
    wordpress1.vm.network "private_network", ip: "192.168.33.11"
    wordpress1.vm.hostname = "wordpress1.local"
    wordpress1.vm.synced_folder "./wordpress1_data", "/var/www/html"
    wordpress1.vm.provision "shell", path: "bootstrap.sh"
  end

  config.vm.define "wordpress2" do |wordpress2|
    wordpress2.vm.box = "ubuntu/bionic64"
    wordpress2.vm.network "private_network", ip: "192.168.33.12"
    wordpress2.vm.hostname = "wordpress2.local"
    wordpress2.vm.synced_folder "./wordpress2_data", "/var/www/html"
    wordpress2.vm.provision "shell", path: "bootstrap.sh"
  end
end

Her bir VM’i ayrı ayrı başlatmak için vagrant up wordpress1 veya tümünü başlatmak için vagrant up kullanabilirsiniz.

Vagrant Eklentileri

Vagrant ekosistemi, işlevselliği artıran birçok eklentiye sahiptir:

* vagrant-vbguest: VirtualBox Guest Additions’ın her zaman güncel olmasını sağlar, bu da paylaşılan klasörler ve performans için önemlidir.
* vagrant-triggers: Sanal makine yaşam döngüsünün belirli noktalarında (örneğin, up veya destroy öncesi/sonrası) komutlar çalıştırmanıza olanak tanır.
* vagrant-share: Geliştirme ortamınızı internet üzerinden geçici olarak paylaşmanıza olanak tanır, bu da müşterilere veya ekip üyelerine demo yapmak için harikadır.

Eklentileri vagrant plugin install komutuyla kurabilirsiniz.

Sürüm Kontrolü ve Vagrantfile

Vagrantfile ve bootstrap.sh gibi yapılandırma dosyalarını projenizin sürüm kontrol sistemine (Git gibi) eklemek çok önemlidir. Bu, ekibinizdeki herkesin aynı ortam yapılandırmasına sahip olmasını sağlar ve ortam değişikliklerinin takip edilebilir olmasını sağlar.

Veritabanı Yedeklemeleri

Sanal makinenizi destroy ettiğinizde, içindeki veritabanı da silinir. Bu nedenle, önemli veritabanı değişiklikleri yapmadan önce yedek almak iyi bir uygulamadır. MySQL içinden mysqldump komutunu kullanarak yedek alabilir ve paylaşılan klasörünüze kaydedebilirsiniz:

vagrant ssh
mysqldump -u wp_user -ppassword wordpress_db > /var/www/html/backup.sql
exit

Ardından backup.sql dosyası ana bilgisayarınızdaki proje dizininizde bulunacaktır.

Sorun Giderme

Vagrant ile çalışırken karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* vagrant up komutu başarısız oluyor:
* VirtualBox’ın düzgün kurulduğundan ve çalıştığından emin olun.
* Bilgisayarınızın BIOS/UEFI ayarlarında sanallaştırmanın (Intel VT-x/AMD-V) etkinleştirildiğinden emin olun.
* Yeterli sistem kaynağı (RAM, disk alanı) olduğundan emin olun.
* Vagrantfile‘da sözdizimi hatası olup olmadığını kontrol edin.
* Web sitesi tarayıcıda açılmıyor (örneğin, http://192.168.33.10):
* Sanal makinenin çalıştığından emin olun (vagrant status komutunu kontrol edin).
* Vagrantfile‘daki private_network IP adresinin doğru olduğundan emin olun.
* bootstrap.sh betiğinin Apache’yi düzgün bir şekilde kurduğundan ve başlattığından emin olun. vagrant ssh ile bağlanıp sudo systemctl status apache2 komutunu çalıştırarak Apache durumunu kontrol edebilirsiniz.
* Ana bilgisayarınızın güvenlik duvarının 80 numaralı bağlantı noktasını engellemediğinden emin olun.
* Vagrantfile‘daki synced_folder ayarının doğru olduğundan ve WordPress dosyalarının /var/www/html dizininde olduğundan emin olun.
* WordPress kurulumu sırasında veritabanı bağlantı hatası:
* bootstrap.sh betiğinde MySQL kurulumunun başarılı olduğundan emin olun. vagrant ssh ile bağlanıp sudo systemctl status mysql komutunu çalıştırarak MySQL durumunu kontrol edebilirsiniz.
* wp-config.php dosyasındaki DB_NAME, DB_USER ve DB_PASSWORD değerlerinin bootstrap.sh‘de oluşturduğunuz veritabanı adı, kullanıcı adı ve şifre ile eşleştiğinden emin olun.
* MySQL kullanıcısının localhost‘tan erişim izni olduğundan emin olun.
* Dosya izinleri sorunları (WordPress tema/eklenti yükleyemiyor):
* bootstrap.sh betiğindeki chown ve chmod komutlarının doğru şekilde çalıştırıldığından emin olun. WordPress dosyalarının sahibi genellikle web sunucusu kullanıcısı (www-data gibi) olmalıdır. vagrant ssh ile bağlanıp ls -l /var/www/html komutunu çalıştırarak izinleri kontrol edebilirsiniz. Gerekirse manuel olarak sudo chown -R www-data:www-data /var/www/html ve sudo chmod -R 755 /var/www/html (dizinler için) ve sudo chmod -R 644 /var/www/html (dosyalar için) komutlarını çalıştırın.

Sonuç

Vagrant, WordPress geliştiricileri için yerel geliştirme ortamı kurma ve yönetme şeklini dönüştüren güçlü bir araçtır. Tutarlılık, taşınabilirlik, izolasyon ve otomasyon sağlayarak, geliştirme sürecini daha verimli, daha az hataya açık ve daha keyifli hale getirir.

Bu makalede adım adım bir WordPress yerel geliştirme ortamının Vagrant ile nasıl kurulduğunu, temel yapılandırmaları, provisioning betiğini ve gelişmiş ipuçlarını ele aldık. Başlangıçta biraz öğrenme eğrisi olsa da, Vagrant’a yatırım yapmak, uzun vadede size zaman kazandıracak ve daha sağlam, üretim ortamına yakın uygulamalar geliştirmenize olanak tanıyacaktır.

Artık XAMPP/MAMP gibi geleneksel çözümlerin sınırlamalarından kurtulabilir, her projeniz için özel, izole ve tekrarlanabilir ortamlar oluşturabilirsiniz. Vagrant’ı geliştirme iş akışınıza entegre ederek, WordPress projelerinizde daha fazla kontrol, esneklik ve güvenilirlik elde edeceksiniz. Başlayın ve Vagrant’ın sunduğu kolaylığı deneyimleyin!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.