Takip et

ProcessWire Web Sitesini Ubuntu VPS’ye Taşıma Rehberi

ProcessWire Web Sitesini Ubuntu VPS’ye Taşıma Rehberi Giriş Günümüz dijital dünyasında web sitelerinin performansı, güvenliği ve ölçekle

ProcessWire Web Sitesini Ubuntu VPS’ye Taşıma Rehberi

Giriş

Günümüz dijital dünyasında web sitelerinin performansı, güvenliği ve ölçeklenebilirliği büyük önem taşımaktadır. ProcessWire, esnek yapısı ve geliştirici dostu özellikleriyle öne çıkan güçlü bir İçerik Yönetim Sistemi (CMS) iken, Ubuntu tabanlı bir Sanal Özel Sunucu (VPS) ise web projeleri için ideal bir kontrol, performans ve güvenlik ortamı sunar. Mevcut bir ProcessWire web sitesini paylaşımlı bir barındırma ortamından veya başka bir sunucudan Ubuntu VPS’ye taşımak, projenizin potansiyelini tam anlamıyla ortaya çıkarmanın önemli bir adımıdır. Bu teknik makale, ProcessWire web sitenizi sorunsuz bir şekilde Ubuntu VPS’ye taşımanız için adım adım kapsamlı bir rehber sunmaktadır.

Amaç ve Kapsam

Bu makalenin temel amacı, ProcessWire web sitesi dosyalarının, veritabanının ve yapılandırmalarının Ubuntu VPS ortamına nasıl aktarılacağını, web sunucusu (Apache veya Nginx) ve PHP gibi gerekli bileşenlerin nasıl kurulup yapılandırılacağını detaylandırmaktır. Ayrıca, taşıma sonrası kontroller, performans optimizasyonları ve güvenlik önlemleri gibi kritik konulara da değinilerek, okuyucunun başarılı ve güvenli bir taşıma süreci gerçekleştirmesi hedeflenmektedir. Makale, orta düzeyde Linux ve web sunucusu bilgisine sahip geliştiriciler ve sistem yöneticileri için uygundur.

Neden Ubuntu VPS ve ProcessWire?

ProcessWire ve Ubuntu VPS kombinasyonu, birçok web projesi için güçlü ve esnek bir temel oluşturur. Bu bölüm, bu seçimin arkasındaki nedenleri açıklamaktadır.

ProcessWire’ın Avantajları

  • Esneklik ve Güç: ProcessWire, sayfa alanları (fields) ve şablonlar (templates) üzerinde tam kontrol sağlayarak, neredeyse her türlü web sitesi yapısını oluşturmanıza olanak tanır. Geliştiricilere büyük bir özgürlük sunar.
  • Performans: Hafif yapısı ve optimize edilmiş veritabanı sorguları sayesinde ProcessWire, genellikle yüksek performanslıdır.
  • Güvenlik: Güvenlik odaklı bir mimariye sahiptir ve düzenli güncellemelerle potansiyel zafiyetler hızla giderilir.
  • Kullanım Kolaylığı (Geliştiriciler İçin): API’si oldukça sezgisel ve güçlüdür, bu da özel işlevselliklerin kolayca entegre edilmesini sağlar.
  • Küçük Ayak İzi: Diğer bazı CMS’lere kıyasla daha az kaynak tüketir.

VPS’in Esnekliği ve Kontrolü

  • Tam Kontrol: VPS, paylaşımlı barındırmanın aksine, işletim sistemi düzeyinde tam kontrol sağlar. Bu, sunucu yazılımlarını (PHP, MySQL, Apache/Nginx) istediğiniz gibi yapılandırabileceğiniz anlamına gelir.
  • Ölçeklenebilirlik: Web sitenizin trafiği arttığında, VPS kaynaklarını (CPU, RAM, Disk) kolayca yükseltebilirsiniz.
  • İzolasyon: Diğer kullanıcıların kaynak kullanımından etkilenmezsiniz, bu da daha istikrarlı bir performans sunar.
  • Güvenlik: Kendi güvenlik önlemlerinizi uygulayabilir ve sunucuyu tamamen kendi ihtiyaçlarınıza göre kilitleyebilirsiniz.

Ubuntu’nun Kararlılığı ve Topluluk Desteği

  • Kararlılık: Ubuntu Server, kararlılığı ve güvenilirliği ile bilinen popüler bir Linux dağıtımıdır. Uzun Süreli Destek (LTS) sürümleri, uzun vadeli projeler için idealdir.
  • Geniş Topluluk: Ubuntu’nun geniş bir kullanıcı ve geliştirici topluluğu vardır. Herhangi bir sorunla karşılaştığınızda, çevrimiçi forumlarda veya belgelerde hızlıca çözüm bulabilirsiniz.
  • Güncel Paketler: Ubuntu’nun paket yöneticisi APT, yazılımları kolayca kurmanıza ve güncel tutmanıza olanak tanır.

Taşıma Öncesi Hazırlıklar

Başarılı bir taşıma için ön hazırlıklar kritik öneme sahiptir. Bu adımları dikkatlice takip etmek, olası sorunları minimize edecektir.

Mevcut Ortamın Analizi

Mevcut ProcessWire web sitenizin çalıştığı sunucunun teknik özelliklerini not alın. Bu bilgiler, yeni VPS’i doğru şekilde yapılandırmanıza yardımcı olacaktır.

  • PHP Sürümü: php -v komutu veya phpinfo() fonksiyonu ile mevcut PHP sürümünüzü öğrenin. Yeni VPS’te en az aynı veya daha yeni ve ProcessWire tarafından desteklenen bir PHP sürümü kullanmalısınız (örneğin, PHP 8.1 veya üzeri).
  • PHP Uzantıları: php -m komutu veya phpinfo() çıktısından ProcessWire için gerekli olan (gd, mbstring, curl, xml, zip, pdo_mysql) ve kullandığınız diğer uzantıları (örneğin, imagick) kontrol edin.
  • MySQL/MariaDB Sürümü: Veritabanı sunucunuzun sürümünü kontrol edin.
  • Web Sunucusu: Apache mi yoksa Nginx mi kullanılıyor? Yapılandırma dosyalarına erişiminiz varsa, bu bilgileri inceleyin.
  • ProcessWire Sürümü: Kullandığınız ProcessWire sürümünü not alın.

Yedekleme (Veritabanı ve Dosyalar)

Bu, taşıma sürecinin en önemli adımıdır. Herhangi bir aksaklık durumunda geri dönebileceğiniz eksiksiz bir yedeğe sahip olmak zorunludur.

  • Veritabanı Yedekleme: SSH erişiminiz varsa, mysqldump komutunu kullanarak veritabanınızı yedekleyin:
    mysqldump -u [veritabani_kullanicisi] -p[veritabani_parolasi] [veritabani_adi] > veritabani_yedek.sql

    Eğer phpMyAdmin kullanıyorsanız, oradan da veritabanını dışa aktarabilirsiniz.

  • Dosya Yedekleme: Tüm ProcessWire dosyalarınızı (genellikle public_html veya www dizini altındadır) sıkıştırılmış bir arşiv dosyası olarak yedekleyin.
    tar -czvf processwire_yedek.tar.gz /path/to/your/processwire/root

    Bu arşivin içinde ProcessWire’ın tüm çekirdek dosyaları, modülleri, temaları ve özellikle site/assets/ dizini bulunmalıdır.

Gerekli Bilgilerin Toplanması

  • Veritabanı Kimlik Bilgileri: Mevcut ProcessWire sitenizin site/config.php dosyasında bulunan veritabanı adı, kullanıcı adı ve parolası.
  • FTP/SSH Bilgileri: Mevcut sunucunuza erişim için gerekli bilgiler.
  • Alan Adı Bilgileri: Alan adınızın kayıtlı olduğu yerden DNS yönetim paneline erişim bilgileri.

Yeni VPS Seçimi ve SSH Erişimi

Güvenilir bir VPS sağlayıcısı seçin (DigitalOcean, Linode, Vultr, AWS, Google Cloud vb.). Ubuntu Server’ın son LTS sürümünü içeren bir VPS oluşturun ve SSH erişimi için root veya sudo yetkili bir kullanıcı oluşturun. Güvenlik için SSH anahtar çifti kullanmanız şiddetle tavsiye edilir.

ssh -i /path/to/your/private_key.pem user@your_vps_ip

Ubuntu VPS Kurulumu ve Yapılandırması

Yeni VPS’inizi ProcessWire için hazır hale getirme adımları.

VPS’e İlk Bağlantı ve Temel Güvenlik Ayarları

VPS’e ilk bağlandığınızda bazı temel güvenlik ayarlarını yapmanız önemlidir.

  • Sudo Yetkili Kullanıcı Oluşturma: Root kullanıcısı yerine sudo yetkileri olan bir kullanıcı ile çalışmak daha güvenlidir.
    adduser [kullanici_adi]
    usermod -aG sudo [kullanici_adi]

    Ardından root yerine bu kullanıcı ile giriş yapın.

  • SSH Anahtarları: Parola ile giriş yerine SSH anahtarları kullanmak güvenliği artırır. Mevcut anahtarınızı yeni kullanıcının .ssh/authorized_keys dosyasına ekleyin.
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    nano ~/.ssh/authorized_keys

    Genel anahtarınızı yapıştırın ve kaydedin. SSH yapılandırmasında (/etc/ssh/sshd_config) PasswordAuthentication no yaparak parola ile girişi devre dışı bırakın.

  • Güvenlik Duvarı (UFW): Yalnızca gerekli portlara (SSH, HTTP, HTTPS) izin verin.
    sudo ufw allow OpenSSH
    sudo ufw allow http
    sudo ufw allow https
    sudo ufw enable

Güncelleme ve Yükseltme

Sisteminizi güncel tutmak, güvenlik ve kararlılık açısından önemlidir.

sudo apt update
sudo apt upgrade -y

Gerekli Yazılımların Kurulumu

ProcessWire’ı çalıştırmak için bir web sunucusu (Apache veya Nginx), PHP ve bir veritabanı sunucusu (MySQL veya MariaDB) gereklidir.

  • Web Sunucusu (Apache):
    sudo apt install apache2 -y

    Apache’yi başlatın ve sistem başlangıcında çalışmasını sağlayın:

    sudo systemctl start apache2
    sudo systemctl enable apache2
  • Web Sunucusu (Nginx):
    sudo apt install nginx -y

    Nginx’i başlatın ve sistem başlangıcında çalışmasını sağlayın:

    sudo systemctl start nginx
    sudo systemctl enable nginx
  • PHP-FPM (PHP FastCGI Process Manager): ProcessWire için önerilen PHP sürümünü (örneğin, PHP 8.1) kurun.
    sudo apt install php8.1-fpm php8.1-mysql php8.1-gd php8.1-mbstring php8.1-xml php8.1-curl php8.1-zip php8.1-intl -y

    Gerekirse php8.1-imagick gibi ek uzantıları da kurun. PHP-FPM’i başlatın:

    sudo systemctl start php8.1-fpm
    sudo systemctl enable php8.1-fpm
  • Veritabanı Sunucusu (MariaDB): MySQL yerine genellikle daha iyi performans sunan MariaDB tercih edilebilir.
    sudo apt install mariadb-server -y

    MariaDB’yi güvenli hale getirin:

    sudo mysql_secure_installation

    Bu komut, root parolası ayarlamanıza, anonim kullanıcıları kaldırmanıza, uzaktan root girişini devre dışı bırakmanıza ve test veritabanını kaldırmanıza yardımcı olacaktır.

ProcessWire Veritabanının Taşınması

Mevcut veritabanınızı yeni VPS’e aktarma adımları.

Mevcut Veritabanını Dışa Aktarma (Tekrar Kontrol)

Bu adımı daha önce yaptıysanız, yedek dosyanızın yeni VPS’e aktarılmaya hazır olduğundan emin olun.

Yeni VPS’te Veritabanı Oluşturma ve Kullanıcı Tanımlama

Yeni sunucunuzda ProcessWire için özel bir veritabanı ve kullanıcı oluşturun.

sudo mysql -u root -p

MySQL/MariaDB komut isteminde:

CREATE DATABASE [yeni_veritabani_adi] CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '[yeni_kullanici_adi]'@'localhost' IDENTIFIED BY '[yeni_parola]';
GRANT ALL PRIVILEGES ON [yeni_veritabani_adi].* TO '[yeni_kullanici_adi]'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Bu bilgileri (veritabanı adı, kullanıcı adı, parola) not alın.

Veritabanını İçe Aktarma

Daha önce yedeklediğiniz .sql dosyasını VPS’e aktarın (örneğin scp ile) ve ardından içe aktarın:

scp /path/to/local/veritabani_yedek.sql user@your_vps_ip:/tmp/veritabani_yedek.sql

VPS üzerinde:

mysql -u [yeni_kullanici_adi] -p[yeni_parola] [yeni_veritabani_adi] < /tmp/veritabani_yedek.sql

ProcessWire Dosyalarının Taşınması

Web sitesi dosyalarınızı yeni sunucuya aktarma ve doğru izinleri ayarlama.

Dosyaları Sıkıştırma (Tekrar Kontrol)

Mevcut sunucunuzdan ProcessWire dosyalarınızın sıkıştırılmış bir tar.gz veya zip arşivi olarak hazır olduğundan emin olun.

Dosyaları VPS'e Aktarma

Sıkıştırılmış dosyayı VPS'e aktarın. Örneğin, scp komutuyla:

scp /path/to/local/processwire_yedek.tar.gz user@your_vps_ip:/var/www/html/

Bu örnekte /var/www/html/ Apache'nin varsayılan kök dizinidir. Nginx kullanıyorsanız, genellikle /var/www/ altında alan adınıza özel bir dizin oluşturursunuz (örn. /var/www/example.com/public_html).

Dosyaları Çıkartma ve Doğru İzinleri Ayarlama

VPS üzerinde, dosyaları aktardığınız dizine gidin ve arşivden çıkarın:

cd /var/www/html/ # veya Nginx için özel dizininiz
sudo tar -xzvf processwire_yedek.tar.gz

ProcessWire'ın düzgün çalışması için dosya ve dizin izinlerinin doğru ayarlanması çok önemlidir. Web sunucusu kullanıcısının (Apache için www-data, Nginx için genellikle www-data veya nginx) ProcessWire dizinlerine yazma erişimi olmalıdır, özellikle site/assets/ dizinine.

sudo chown -R www-data:www-data /var/www/html/processwire_root_folder/
sudo find /var/www/html/processwire_root_folder/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/processwire_root_folder/ -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/html/processwire_root_folder/site/assets/

processwire_root_folder yerine ProcessWire dosyalarınızın bulunduğu gerçek dizin adını yazın. site/assets/ dizinine 775 izni vermek genellikle yeterlidir, ancak bazı durumlarda 777 gerekebilir (ancak güvenlik açısından önerilmez).

ProcessWire Yapılandırmasının Güncellenmesi

ProcessWire'ın yeni ortamda doğru çalışması için yapılandırma dosyasını düzenlemelisiniz.

site/config.php Dosyasının Düzenlenmesi

ProcessWire'ın kök dizinindeki site/config.php dosyasını açın ve aşağıdaki bilgileri yeni VPS ortamınıza göre güncelleyin:

nano /var/www/html/processwire_root_folder/site/config.php
  • Veritabanı Bilgileri:
    $config->dbName = '[yeni_veritabani_adi]';
    $config->dbUser = '[yeni_kullanici_adi]';
    $config->dbPass = '[yeni_parola]';
    $config->dbHost = 'localhost'; // Genellikle 'localhost' kalır
  • Base URL: Web sitenizin yeni alan adını veya IP adresini ayarlayın.
    $config->baseURL = 'http://www.alanadiniz.com/'; // veya https://

    Eğer siteniz bir alt dizinde çalışacaksa, bunu da belirtmelisiniz: http://www.alanadiniz.com/alt-dizin/

Gerekirse site/assets/cache ve site/assets/logs Dizinlerinin Temizlenmesi

Bazen taşıma sonrası önbellek veya log dosyaları eski ortamdan kalan hatalı veriler içerebilir. Bu dizinlerin içeriğini temizlemek sorunları çözebilir.

sudo rm -rf /var/www/html/processwire_root_folder/site/assets/cache/*
sudo rm -rf /var/www/html/processwire_root_folder/site/assets/logs/*

Web Sunucusu Yapılandırması

Web sunucunuzu (Apache veya Nginx) ProcessWire'ı barındıracak şekilde yapılandırın.

Apache Yapılandırması

  • Virtual Host Oluşturma: Yeni bir sanal ana bilgisayar dosyası oluşturun.
    sudo nano /etc/apache2/sites-available/alanadiniz.com.conf

    İçine aşağıdaki içeriği ekleyin (alanadiniz.com ve dizin yollarını kendi sitenize göre değiştirin):

    
    
        ServerAdmin webmaster@localhost
        ServerName alanadiniz.com
        ServerAlias www.alanadiniz.com
        DocumentRoot /var/www/html/processwire_root_folder/
    
        
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            
  • Rewrite Modülü Etkinleştirme: ProcessWire'ın URL yapısı için mod_rewrite gereklidir.
    sudo a2enmod rewrite
  • Siteyi Etkinleştirme ve Apache'yi Yeniden Başlatma:
    sudo a2ensite alanadiniz.com.conf
    sudo systemctl restart apache2

Nginx Yapılandırması

  • Server Block Oluşturma: Nginx için yeni bir server block dosyası oluşturun.
    sudo nano /etc/nginx/sites-available/alanadiniz.com

    İçine aşağıdaki içeriği ekleyin (alanadiniz.com ve dizin yollarını kendi sitenize göre değiştirin):

    
    server {
        listen 80;
        listen [::]:80;
        server_name alanadiniz.com www.alanadiniz.com;
        root /var/www/html/processwire_root_folder/;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # PHP sürümünüze göre güncelleyin
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.ht {
            deny all;
        }
    
        error_log /var/log/nginx/alanadiniz.com_error.log;
        access_log /var/log/nginx/alanadiniz.com_access.log;
    }
            
  • Siteyi Etkinleştirme ve Nginx'i Yeniden Başlatma:
    sudo ln -s /etc/nginx/sites-available/alanadiniz.com /etc/nginx/sites-enabled/
    sudo nginx -t # Yapılandırma hatası kontrolü
    sudo systemctl restart nginx

DNS Ayarları ve Alan Adı Yönlendirmesi

Web sitenizin yeni sunucuyu işaret etmesi için DNS kayıtlarını güncellemeniz gerekmektedir.

DNS Kayıtlarını Güncelleme

Alan adınızın kayıtlı olduğu sağlayıcının DNS yönetim paneline giriş yapın ve aşağıdaki kayıtları güncelleyin:

  • A Kaydı: Alan adınızı (alanadiniz.com) yeni VPS'inizin IP adresine yönlendirin.
  • CNAME Kaydı (isteğe bağlı): www alt alan adını alanadiniz.com'a veya doğrudan VPS IP adresine yönlendirin.

TTL Süresi ve Yayılma

DNS değişikliklerinin internet genelinde yayılması (propagate) biraz zaman alabilir. Bu süre, Kayıt Yaşam Süresi (TTL) değerine bağlıdır. Genellikle birkaç dakika ile 24 saat arasında değişebilir. Bu süre zarfında siteniz eski veya yeni sunucudan yüklenebilir.

Taşıma Sonrası Kontroller ve Optimizasyonlar

Sitenizin yeni ortamda sorunsuz çalıştığından emin olmak ve performansını artırmak için yapılması gerekenler.

Web Sitesinin Çalışır Durumda Olup Olmadığını Kontrol Etme

DNS yayılımını beklerken, /etc/hosts dosyanızı düzenleyerek sitenizi yerel olarak test edebilirsiniz:

sudo nano /etc/hosts

Şu satırı ekleyin:

[VPS_IP_ADRESI] alanadiniz.com www.alanadiniz.com

Tarayıcınızdan alan adınızı ziyaret ederek sitenizin açılıp açılmadığını kontrol edin. Daha sonra /etc/hosts dosyasındaki değişikliği geri almayı unutmayın.

Tüm Sayfaları ve İşlevleri Test Etme

Ana sayfa, alt sayfalar, iletişim formu, admin paneli, kullanıcı girişi, resimler, CSS ve JavaScript dosyalarının düzgün yüklendiğini kontrol edin. Özellikle ProcessWire admin panelinde tüm işlevlerin (sayfa oluşturma, düzenleme, resim yükleme vb.) çalıştığından emin olun.

Hata Günlüklerini Kontrol Etme

Web sunucusu ve PHP hata günlüklerini düzenli olarak kontrol edin:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/alanadiniz.com_error.log (yapılandırmanıza bağlı olarak)
  • PHP-FPM: /var/log/php8.1-fpm.log (veya PHP sürümünüze göre)
  • ProcessWire: site/assets/logs/errors.log

Performans Optimizasyonları

  • OPcache: PHP kodunuzu önbelleğe alarak performansı artırır. Genellikle PHP-FPM ile birlikte gelir ve varsayılan olarak etkindir. Ayarlarını php.ini dosyasından kontrol edebilirsiniz.
  • Gzip Sıkıştırma: Web sunucunuzda Gzip sıkıştırmayı etkinleştirerek bant genişliğini azaltın ve sayfa yükleme sürelerini hızlandırın.
    • Apache: mod_deflate etkinleştirin (sudo a2enmod deflate).
    • Nginx: gzip on; ve ilgili ayarları server block'unuza ekleyin.
  • Resim Optimizasyonu: ProcessWire'ın yerleşik resim işleme yeteneklerini kullanarak resimleri uygun boyutlarda ve formatlarda sunun. Gerekirse php8.1-imagick uzantısını kurun.
  • Tarayıcı Önbellekleme: Statik dosyalar için tarayıcı önbellekleme kuralları ekleyerek tekrarlayan ziyaretlerde yükleme sürelerini azaltın.

HTTPS Kurulumu (Let's Encrypt ile SSL)

Web sitenizin güvenliği ve SEO performansı için HTTPS kullanmak zorunludur. Let's Encrypt, ücretsiz SSL/TLS sertifikaları sağlar.

sudo apt install certbot python3-certbot-apache # Apache için
sudo apt install certbot python3-certbot-nginx # Nginx için

Sertifikayı oluşturun ve yapılandırın:

sudo certbot --apache # Apache için
sudo certbot --nginx # Nginx için

Sertbot, otomatik olarak sertifikayı kuracak ve web sunucusu yapılandırmanızı güncelleyecektir. Ayrıca otomatik yenilemeyi de kurar.

Sık Karşılaşılan Sorunlar ve Çözümleri

Taşıma sırasında karşılaşabileceğiniz yaygın sorunlar ve bunların çözümleri.

  • Veritabanı Bağlantı Hataları:
    • site/config.php dosyasındaki dbName, dbUser, dbPass ve dbHost bilgilerini kontrol edin.
    • MariaDB/MySQL sunucusunun çalıştığından emin olun (sudo systemctl status mariadb).
    • Veritabanı kullanıcısının doğru izinlere sahip olduğunu doğrulayın.
  • Dosya İzinleri Sorunları:
    • Web sunucusu kullanıcısının (www-data) ProcessWire dizinlerine (özellikle site/assets/) yazma izni olduğundan emin olun. chown ve chmod komutlarını tekrar kontrol edin.
    • Dosyaların okunabilir olduğundan emin olun (genellikle 644) ve dizinlerin yürütülebilir olduğundan (genellikle 755) emin olun.
  • URL Yeniden Yazma (Rewrite) Hataları:
    • Apache: mod_rewrite modülünün etkin olduğundan emin olun (sudo a2enmod rewrite). Virtual host dosyanızda bloğu içinde AllowOverride All olduğundan emin olun.
    • Nginx: Server block'unuzdaki location / bloğunun try_files $uri $uri/ /index.php?$query_string; satırını içerdiğinden emin olun.
    • ProcessWire admin panelinde "Templates" > "URLs" bölümündeki ayarları kontrol edin.
  • PHP Modülü Eksiklikleri:
    • Boş beyaz sayfa (WSOD) veya belirli işlevlerin çalışmaması durumunda, phpinfo() çıktısını kontrol ederek gerekli tüm PHP uzantılarının (gd, mbstring, curl, xml, zip, pdo_mysql vb.) yüklü ve etkin olduğundan emin olun. Eksik olanları kurun ve PHP-FPM'i yeniden başlatın.
  • Boş Beyaz Sayfa (WSOD - White Screen of Death):
    • Genellikle PHP hatalarından kaynaklanır. php.ini dosyasında display_errors = On ve error_reporting = E_ALL yaparak hataları görünür hale getirin (yalnızca hata ayıklama sırasında, canlı sunucuda devre dışı bırakın).
    • Web sunucusu, PHP-FPM ve ProcessWire hata günlüklerini kontrol edin.
    • ProcessWire'ın site/config.php dosyasında $config->debug = true; ve $config->dev = true; ayarlarını geçici olarak etkinleştirerek daha detaylı hata mesajları alabilirsiniz.

Güvenlik Önlemleri

VPS'inizin ve ProcessWire sitenizin güvenliğini sağlamak için ek önlemler alın.

  • SSH Güvenliği:
    • SSH anahtar çifti kullanın ve parola ile girişi devre dışı bırakın.
    • Varsayılan SSH portunu (22) farklı bir porta değiştirin (/etc/ssh/sshd_config).
    • Root kullanıcısının SSH ile doğrudan girişini devre dışı bırakın (PermitRootLogin no).
  • Güvenlik Duvarı (UFW): Yalnızca gerekli portlara (22/SSH - eğer değiştirdiyseniz yeni port, 80/HTTP, 443/HTTPS) izin verin.
  • Fail2ban Kurulumu: SSH, web sunucusu ve diğer hizmetlere yönelik kaba kuvvet saldırılarını otomatik olarak engelleyen Fail2ban'ı kurun.
    sudo apt install fail2ban

    Yapılandırma dosyalarını (/etc/fail2ban/jail.local) düzenleyerek korumak istediğiniz servisleri etkinleştirin.

  • PHP Güvenliği: php.ini dosyasında disable_functions ile tehlikeli PHP fonksiyonlarını devre dışı bırakın (exec, shell_exec, system, passthru vb.). open_basedir ayarını kullanarak PHP'nin yalnızca belirli dizinlere erişmesini sağlayın.
  • ProcessWire Güvenliği:
    • Admin panelinin URL'ini değiştirin (site/config.php içindeki $config->adminURL).
    • Tüm kullanıcılar için güçlü ve benzersiz parolalar kullanın.
    • ProcessWire ve tüm modüllerinizi güncel tutun.

Yedekleme Stratejileri

Web sitenizin güvenliğini sağlamanın en önemli yollarından biri düzenli yedeklemelerdir.

  • Otomatik Yedekleme Çözümleri (Cron İşleri):

    Veritabanı ve dosyalarınız için düzenli yedeklemeleri otomatikleştirmek için cron işleri kullanın. Örneğin, günlük veritabanı yedeklemesi ve haftalık dosya yedeklemesi ayarlayabilirsiniz.

    sudo crontab -e

    Örnek cron işleri:

    0 3   * mysqldump -u [db_user] -p[db_pass] [db_name] > /path/to/backups/db_$(date +\%Y\%m\%d).sql
    30 3   7 tar -czvf /path/to/backups/files_$(date +\%Y\%m\%d).tar.gz /var/www/html/processwire_root_folder/
  • Uzak Depolama (S3, Dropbox, Google Drive):

    Yedeklerinizi sunucunuzdan ayrı, güvenli bir uzak depolama alanına (Amazon S3, Dropbox, Google Drive gibi bulut hizmetleri) göndermek, sunucu arızası durumunda veri kaybını önler. s3cmd, rclone gibi araçlar bu entegrasyon için kullanılabilir.

Sonuç

ProcessWire web sitenizi Ubuntu VPS'ye taşımak, projenizin performansı, güvenliği ve ölçeklenebilirliği açısından önemli bir adımdır. Bu kapsamlı rehberde, taşıma öncesi hazırlıklardan başlayarak, Ubuntu VPS'nin kurulumu ve yapılandırılmasına, ProcessWire veritabanı ve dosyalarının aktarımına, web sunucusu yapılandırmasına ve taşıma sonrası kontrol ve optimizasyonlara kadar tüm kritik adımları detaylı bir şekilde ele aldık. Ayrıca, sık karşılaşılan sorunlara çözümler ve güçlü güvenlik önlemleri ile yedekleme stratejileri hakkında bilgi verdik.

Her adımın dikkatle takip edilmesi ve karşılaşılan sorunlarda hata günlüklerinin incelenmesi, başarılı bir taşıma süreci için anahtardır. Unutmayın ki, her web sitesi ve sunucu ortamı kendine özgü olabilir, bu nedenle bu rehberi kendi özel durumunuza göre uyarlamanız gerekebilir. Doğru planlama ve dikkatli uygulama ile ProcessWire sitenizi yeni, güçlü ve güvenli Ubuntu VPS ortamınıza başarıyla taşıyabilir, dijital varlığınızın potansiyelini tam anlamıyla ortaya çıkarabilirsiniz.

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.