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 -vkomutu veyaphpinfo()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 -mkomutu veyaphpinfo()çı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,
mysqldumpkomutunu kullanarak veritabanınızı yedekleyin:mysqldump -u [veritabani_kullanicisi] -p[veritabani_parolasi] [veritabani_adi] > veritabani_yedek.sqlEğer phpMyAdmin kullanıyorsanız, oradan da veritabanını dışa aktarabilirsiniz.
- Dosya Yedekleme: Tüm ProcessWire dosyalarınızı (genellikle
public_htmlveyawwwdizini altındadır) sıkıştırılmış bir arşiv dosyası olarak yedekleyin.tar -czvf processwire_yedek.tar.gz /path/to/your/processwire/rootBu 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.phpdosyası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_keysdosyasına ekleyin.mkdir -p ~/.ssh chmod 700 ~/.ssh nano ~/.ssh/authorized_keysGenel anahtarınızı yapıştırın ve kaydedin. SSH yapılandırmasında (
/etc/ssh/sshd_config)PasswordAuthentication noyaparak 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 -yApache’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 -yNginx’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 -yGerekirse
php8.1-imagickgibi 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 -yMariaDB’yi güvenli hale getirin:
sudo mysql_secure_installationBu 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.comve 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_rewritegereklidir.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.comve 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ı):
wwwalt 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.inidosyası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_deflateetkinleştirin (sudo a2enmod deflate). - Nginx:
gzip on;ve ilgili ayarları server block'unuza ekleyin.
- Apache:
- Resim Optimizasyonu: ProcessWire'ın yerleşik resim işleme yeteneklerini kullanarak resimleri uygun boyutlarda ve formatlarda sunun. Gerekirse
php8.1-imagickuzantı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.phpdosyasındakidbName,dbUser,dbPassvedbHostbilgilerini 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.chownvechmodkomutları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.
- Web sunucusu kullanıcısının (www-data) ProcessWire dizinlerine (özellikle
- URL Yeniden Yazma (Rewrite) Hataları:
- Apache:
mod_rewritemodülünün etkin olduğundan emin olun (sudo a2enmod rewrite). Virtual host dosyanızdabloğu içindeAllowOverride Allolduğundan emin olun. - Nginx: Server block'unuzdaki
location /bloğununtry_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.
- Apache:
- 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) veya belirli işlevlerin çalışmaması durumunda,
- Boş Beyaz Sayfa (WSOD - White Screen of Death):
- Genellikle PHP hatalarından kaynaklanır.
php.inidosyasındadisplay_errors = Onveerror_reporting = E_ALLyaparak 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.phpdosyasında$config->debug = true;ve$config->dev = true;ayarlarını geçici olarak etkinleştirerek daha detaylı hata mesajları alabilirsiniz.
- Genellikle PHP hatalarından kaynaklanır.
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 fail2banYapılandırma dosyalarını (
/etc/fail2ban/jail.local) düzenleyerek korumak istediğiniz servisleri etkinleştirin. - PHP Güvenliği:
php.inidosyasındadisable_functionsile tehlikeli PHP fonksiyonlarını devre dışı bırakın (exec, shell_exec, system, passthru vb.).open_basedirayarı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.phpiç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.
- Admin panelinin URL'ini değiştirin (
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,rclonegibi 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.