Takip et

Ubuntu 18.04 Üzerine Nginx ile WordPress Kurulumu

Ubuntu 18.

Ubuntu 18.04 Üzerine Nginx ile WordPress Kurulumu

Giriş

İnternet dünyasının en popüler içerik yönetim sistemi (CMS) olan WordPress, dünya genelindeki web sitelerinin büyük bir çoğunluğuna güç vermektedir. Bloglardan e-ticaret sitelerine, kurumsal portallardan kişisel sayfalara kadar geniş bir yelpazede kullanılabilen WordPress, esnek yapısı ve geniş eklenti/tema ekosistemi sayesinde her türlü ihtiyaca cevap verebilir. Genellikle Apache web sunucusu ile birlikte anılan WordPress, yüksek performans ve kaynak verimliliği arayan kullanıcılar için Nginx ile de sorunsuz bir şekilde çalıştırılabilir.

Nginx (Engine-X), yüksek performanslı, hafif ve güçlü bir HTTP sunucusu, ters proxy ve IMAP/POP3 proxy sunucusudur. Özellikle eşzamanlı bağlantıları yönetme ve statik içerik sunma konusunda Apache’den daha üstün bir performans sergileyebilir. Kaynak tüketimi açısından da daha verimli olması, Nginx’i özellikle yoğun trafik alan veya kısıtlı sunucu kaynaklarına sahip web siteleri için cazip bir seçenek haline getirir.

Bu makalede, Ubuntu 18.04 LTS (Long Term Support) işletim sistemi üzerine Nginx web sunucusu, PHP-FPM (FastCGI Process Manager) ve MariaDB veritabanı kullanarak WordPress’in nasıl kurulacağını adım adım ele alacağız. Ubuntu 18.04, uzun süreli destek ve kararlılığı sayesinde sunucu ortamları için ideal bir temel oluşturmaktadır. Bu kurulum rehberi, sistem yöneticileri, geliştiriciler ve kendi web sitelerini kurmak isteyen herkes için detaylı ve anlaşılır bir yol haritası sunmayı amaçlamaktadır. Her adım, komut örnekleri ve açıklamalarla desteklenerek, kurulum sürecini sorunsuz bir şekilde tamamlamanıza yardımcı olacaktır.

Ön Gereksinimler

Kuruluma başlamadan önce aşağıdaki ön gereksinimlere sahip olduğunuzdan emin olun:

* Ubuntu 18.04 Sunucusu: İnternet erişimi olan, temiz bir Ubuntu 18.04 işletim sistemi kurulu bir sanal makine veya fiziksel sunucu.
* SSH Erişimi: Sunucuya SSH üzerinden bağlanabilmek için bir terminal veya PuTTY gibi bir SSH istemcisi.
* Sudo Yetkileri: Kurulum komutlarını çalıştırabilmek için sudo yetkilerine sahip bir kullanıcı hesabı.
* Alan Adı (İsteğe Bağlı ama Önerilir): Web sitenize erişmek için bir alan adı (örneğin, example.com). Alan adınızın DNS kayıtlarının sunucunuzun IP adresine yönlendirilmiş olması gerekmektedir. Aksi takdirde sunucu IP adresi üzerinden erişim sağlayabilirsiniz.
* Temel Linux Komut Bilgisi: Dosya sisteminde gezinme, dosya oluşturma/düzenleme gibi temel Linux komutlarına aşinalık.

Sistem Güncellemesi ve Temel Kurulumlar

Kuruluma başlamadan önce sunucunuzdaki paket listesini güncelleyip mevcut paketleri yükseltmek iyi bir pratiktir. Bu, en güncel güvenlik yamalarını ve yazılım sürümlerini almanızı sağlar.

1. Paket Listesini Güncelleme ve Yükseltme:
Sunucunuza SSH ile bağlandıktan sonra aşağıdaki komutları çalıştırın:

sudo apt update
    sudo apt upgrade -y

apt update komutu, yerel paket indeksini güncelleyerek mevcut paketlerin en son sürümleri hakkında bilgi edinmenizi sağlar. apt upgrade ise yüklü tüm paketleri en yeni sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı verir.

2. Güvenlik Duvarı (UFW) Kurulumu ve Yapılandırması:
Ubuntu’da varsayılan güvenlik duvarı olan UFW (Uncomplicated Firewall), sunucunuzu yetkisiz erişimlerden korumak için önemlidir. Nginx ve SSH trafiğine izin vermek için UFW’yi yapılandıralım.

sudo apt install ufw -y
    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx HTTP'
    sudo ufw enable
    sudo ufw status

* sudo apt install ufw -y: UFW’yi yükler.
* sudo ufw allow OpenSSH: SSH (port 22) bağlantılarına izin verir. Bu adım çok önemlidir, aksi takdirde güvenlik duvarını etkinleştirdikten sonra sunucunuzla bağlantınız kesilebilir.
* sudo ufw allow 'Nginx HTTP': Nginx’in varsayılan HTTP portu olan 80’e gelen bağlantılara izin verir. Eğer HTTPS kullanacaksanız daha sonra sudo ufw allow 'Nginx HTTPS' komutunu da eklemeniz gerekecektir.
* sudo ufw enable: Güvenlik duvarını etkinleştirir. Bu komutu çalıştırdıktan sonra bir uyarı alacaksınız, y tuşuna basarak onaylayın.
* sudo ufw status: Güvenlik duvarının durumunu ve izin verilen kuralları gösterir.

Nginx Kurulumu ve Yapılandırması

WordPress web sitenize gelen istekleri işleyecek olan Nginx web sunucusunu şimdi kuracağız.

1. Nginx Kurulumu:
Nginx’i Ubuntu depolarından kolayca kurabilirsiniz:

sudo apt install nginx -y

2. Nginx Servisini Kontrol Etme:
Kurulum tamamlandıktan sonra Nginx servisi otomatik olarak başlamalıdır. Durumunu kontrol edelim:

sudo systemctl status nginx

Çıktıda active (running) ibaresini görmelisiniz. Eğer çalışmıyorsa aşağıdaki komutla başlatabilirsiniz:

sudo systemctl start nginx

Nginx’in sunucu yeniden başladığında otomatik olarak başlamasını sağlamak için:

sudo systemctl enable nginx

3. Nginx’i Test Etme:
Web tarayıcınızda sunucunuzun IP adresini veya alan adınızı ziyaret ederek Nginx’in doğru bir şekilde çalışıp çalışmadığını kontrol edebilirsiniz. http://your_server_ip adresine gittiğinizde Nginx’in varsayılan “Welcome to Nginx!” sayfasını görmelisiniz.

MariaDB Kurulumu ve Veritabanı Oluşturma

WordPress, tüm içeriklerini (yazılar, sayfalar, kullanıcılar, ayarlar vb.) bir veritabanında saklar. Bu bölümde, MySQL ile uyumlu ve genellikle daha performanslı bir alternatif olan MariaDB’yi kuracak ve WordPress için bir veritabanı oluşturacağız.

1. MariaDB Kurulumu:

sudo apt install mariadb-server mariadb-client -y

Bu komut, MariaDB sunucusunu ve istemcisini yükleyecektir.

2. MariaDB Güvenlik Yapılandırması:
Yeni kurulan MariaDB sunucunuzun güvenliğini artırmak için mysql_secure_installation betiğini çalıştırmanız önerilir.

sudo mysql_secure_installation

Bu betik size bir dizi soru soracaktır:
* Enter current password for root (enter for none): İlk kurulumda root şifresi olmadığı için direkt Enter tuşuna basın.
* Set root password? [Y/n]: Y tuşuna basarak root kullanıcısı için güçlü bir şifre belirleyin. Bu şifreyi unutmayın!
* Remove anonymous users? [Y/n]: Y tuşuna basarak anonim kullanıcıları kaldırın.
* Disallow root login remotely? [Y/n]: Y tuşuna basarak root kullanıcısının sadece yerel olarak (localhost) oturum açmasına izin verin. Bu, güvenlik için iyi bir uygulamadır.
* Remove test database and access to it? [Y/n]: Y tuşuna basarak test veritabanını kaldırın.
* Reload privilege tables now? [Y/n]: Y tuşuna basarak ayrıcalık tablolarını yeniden yükleyin.

3. WordPress İçin Veritabanı Oluşturma:
Şimdi WordPress’in kullanacağı bir veritabanı, veritabanı kullanıcısı ve bu kullanıcı için bir şifre oluşturalım.
MariaDB komut istemcisine root olarak bağlanın:

sudo mysql -u root -p

Az önce belirlediğiniz root şifresini girin. Komut istemcisine girdikten sonra aşağıdaki SQL komutlarını sırasıyla çalıştırın. your_database_name, your_username ve your_password kısımlarını kendi istediğiniz değerlerle değiştirin. Güçlü bir şifre kullandığınızdan emin olun.

CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

* CREATE DATABASE ...: Yeni bir veritabanı oluşturur. utf8mb4 karakter seti, emoji ve diğer uluslararası karakterleri desteklemek için önemlidir.
* CREATE USER ...: Belirtilen isimde ve şifrede yeni bir veritabanı kullanıcısı oluşturur. @'localhost' ifadesi, bu kullanıcının sadece yerel sunucudan bağlanabileceğini belirtir.
* GRANT ALL PRIVILEGES ...: Oluşturulan kullanıcıya, belirtilen veritabanı üzerinde tam yetki verir.
* FLUSH PRIVILEGES: Değişikliklerin hemen etkinleşmesini sağlar.
* EXIT: MariaDB komut istemcisinden çıkar.

PHP Kurulumu ve Yapılandırması

WordPress, PHP ile yazılmış dinamik bir uygulamadır. Nginx, PHP kodunu doğrudan çalıştıramaz, bu yüzden PHP-FPM (FastCGI Process Manager) aracılığıyla PHP isteklerini Nginx’e ileteceğiz. Ubuntu 18.04 için varsayılan PHP sürümü PHP 7.2’dir.

1. PHP ve Gerekli Modüllerin Kurulumu:
WordPress’in düzgün çalışması için birkaç PHP modülüne ihtiyacı vardır. Aşağıdaki komutla PHP-FPM’i ve gerekli modülleri kuralım:

sudo apt install php-fpm php-mysql php-cli php-gd php-curl php-mbstring php-xml php-zip php-imagick php-soap php-intl php-bcmath -y

* php-fpm: PHP FastCGI Process Manager. Nginx ile PHP etkileşimi için temel bileşen.
* php-mysql: PHP’nin MariaDB/MySQL veritabanına bağlanmasını sağlar.
* php-cli: Komut satırından PHP çalıştırmak için.
* php-gd: Görsel işlem (resim boyutlandırma, thumbnail oluşturma) için gereklidir.
* php-curl: Harici servislerle iletişim kurmak için.
* php-mbstring: Çok baytlı dizeleri işlemek için (uluslararası karakter desteği).
* php-xml: XML işleme için.
* php-zip: Zip dosyalarıyla çalışmak için.
* php-imagick: Gelişmiş görsel işleme için (isteğe bağlı ama önerilir).
* php-soap: SOAP web servisleri için.
* php-intl: Uluslararasılaştırma desteği için.
* php-bcmath: Yüksek hassasiyetli matematik fonksiyonları için.

2. PHP-FPM Servisini Kontrol Etme:
Kurulumdan sonra PHP-FPM servisi otomatik olarak başlamalıdır. Durumunu kontrol edelim:

sudo systemctl status php7.2-fpm

Çıktıda active (running) ibaresini görmelisiniz. Eğer çalışmıyorsa başlatın:

sudo systemctl start php7.2-fpm
    sudo systemctl enable php7.2-fpm

3. PHP Yapılandırması (php.ini):
WordPress’in ve genel olarak PHP uygulamalarının daha iyi çalışması için php.ini dosyasında bazı ayarları düzenlemek faydalı olacaktır.
Aşağıdaki komutla php.ini dosyasını açın:

sudo nano /etc/php/7.2/fpm/php.ini

Dosya içinde aşağıdaki değerleri bulun ve önerilen şekilde değiştirin (Ctrl+W ile arama yapabilirsiniz):
* upload_max_filesize = 2M -> upload_max_filesize = 64M (veya ihtiyacınıza göre daha yüksek)
* post_max_size = 8M -> post_max_size = 64M
* memory_limit = 128M -> memory_limit = 256M (veya sunucu RAM’inize göre daha yüksek)
* max_execution_time = 30 -> max_execution_time = 300
* max_input_time = 60 -> max_input_time = 300
* cgi.fix_pathinfo = 1 -> cgi.fix_pathinfo = 0 (Bu ayar güvenlik açısından 0 olmalıdır. Nginx ile PHP-FPM kullanırken bu değerin 0 olması önerilir.)

Değişiklikleri kaydedin (Ctrl+O, Enter) ve dosyadan çıkın (Ctrl+X).
Yapılandırma değişikliklerinin etkili olması için PHP-FPM servisini yeniden başlatın:

sudo systemctl restart php7.2-fpm

WordPress Kurulumu

Şimdi WordPress dosyalarını indirecek, sunucumuza yerleştirecek ve gerekli izinleri ayarlayacağız.

1. WordPress Dosyalarını İndirme:
Öncelikle, WordPress dosyalarını indirmek için geçici bir dizine gidelim ve en son sürümü indirelim:

cd /tmp
    wget https://wordpress.org/latest.tar.gz

2. Dosyaları Çıkartma:
İndirdiğimiz sıkıştırılmış dosyayı açalım:

tar -xzvf latest.tar.gz

Bu işlem /tmp/wordpress adında bir dizin oluşturacaktır.

3. Web Kök Dizinini Oluşturma ve Dosyaları Taşıma:
WordPress dosyalarını Nginx’in sunacağı bir dizine taşıyacağız. Genellikle /var/www/html veya /var/www/your_domain gibi bir dizin kullanılır. Biz your_domain yerine sitenizin alan adını kullanarak daha düzenli bir yapı oluşturalım.

sudo mkdir -p /var/www/your_domain.com
    sudo mv /tmp/wordpress/* /var/www/your_domain.com/

your_domain.com yerine kendi alan adınızı yazmayı unutmayın.

4. Dosya İzinlerini Ayarlama:
WordPress’in düzgün çalışabilmesi, eklenti ve tema yükleyebilmesi için doğru dosya izinlerine sahip olması gerekir. Web sunucusunun (Nginx ve PHP-FPM) WordPress dosyalarına yazma izni olması önemlidir.

sudo chown -R www-data:www-data /var/www/your_domain.com/
    sudo chmod -R 755 /var/www/your_domain.com/
    sudo find /var/www/your_domain.com/ -type d -exec chmod g+s {} \; # Dizinlere setgid izni

* chown -R www-data:www-data: /var/www/your_domain.com/ dizini ve altındaki tüm dosya ve dizinlerin sahipliğini www-data kullanıcısı ve grubuna atar. www-data Nginx ve PHP-FPM’in çalıştığı varsayılan kullanıcıdır.
* chmod -R 755: Dizinlere 755 (sahip okuma/yazma/çalıştırma, grup okuma/çalıştırma, diğerleri okuma/çalıştırma) ve dosyalara 644 (sahip okuma/yazma, grup okuma, diğerleri okuma) izni verir.
* find ... -type d -exec chmod g+s {} \;: Yeni oluşturulan dosyaların ve dizinlerin aynı grup sahipliğini devralmasını sağlamak için dizinlere setgid izni verir. Bu, WordPress’in medya yüklemeleri gibi işlemlerinde sorun yaşamamasını sağlar.

5. WordPress Yapılandırma Dosyasını Oluşturma:
WordPress, veritabanı bağlantı bilgilerini wp-config.php adlı bir dosyada saklar. Örnek dosyayı kopyalayarak bu dosyayı oluşturalım:

cd /var/www/your_domain.com/
    sudo cp wp-config-sample.php wp-config.php

Şimdi wp-config.php dosyasını düzenleyerek veritabanı bilgilerini girelim:

sudo nano wp-config.php

Dosya içinde aşağıdaki satırları bulun ve daha önce MariaDB’de oluşturduğunuz veritabanı adı, kullanıcı adı ve şifre ile değiştirin:

//  MySQL settings - You can get this info from your web host  //
    / The name of the database for WordPress */
    define( 'DB_NAME', 'your_database_name' );

    / MySQL database username */
    define( 'DB_USER', 'your_username' );

    / MySQL database password */
    define( 'DB_PASSWORD', 'your_password' );

    / MySQL hostname */
    define( 'DB_HOST', 'localhost' );

Ayrıca, WordPress güvenlik anahtarlarını (AUTH_KEY, SECURE_AUTH_KEY vb.) güncelleyerek sitenizin güvenliğini artırmanız önerilir. Bu anahtarları otomatik olarak oluşturmak için [https://api.wordpress.org/secret-key/1.1/salt/](https://api.wordpress.org/secret-key/1.1/salt/) adresini ziyaret edebilir, üretilen satırları kopyalayıp wp-config.php dosyasındaki ilgili yere yapıştırabilirsiniz.

Dosyayı kaydedin (Ctrl+O, Enter) ve çıkın (Ctrl+X).

Nginx Sanal Ana Bilgisayar Yapılandırması

Nginx’in WordPress sitenizi doğru bir şekilde sunabilmesi için bir sanal ana bilgisayar (virtual host) yapılandırma dosyası oluşturmamız gerekiyor.

1. Nginx Yapılandırma Dosyası Oluşturma:
Yeni bir yapılandırma dosyası oluşturalım. your_domain.com yerine kendi alan adınızı kullanın:

sudo nano /etc/nginx/sites-available/your_domain.com

Dosyanın içine aşağıdaki içeriği yapıştırın:

server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain.com;
        index index.php index.html index.htm;

        server_name your_domain.com www.your_domain.com; # Alan adınızı buraya yazın

        client_max_body_size 64M; # PHP'deki post_max_size ve upload_max_filesize ile uyumlu olmalı

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ /\.ht {
            deny all;
        }

        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.2-fpm.sock; # PHP-FPM soket yolu
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        # Statik dosyaların önbelleğe alınması
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
        }
    }

* listen 80;: Nginx’in HTTP isteklerini 80 numaralı porttan dinlemesini sağlar.
* root /var/www/your_domain.com;: WordPress dosyalarının bulunduğu dizini belirtir.
* index index.php index.html index.htm;: Dizin istendiğinde aranacak varsayılan dosyaları belirtir.
* server_name your_domain.com www.your_domain.com;: Bu yapılandırmanın hangi alan adları için geçerli olduğunu belirtir. Kendi alan adınızı girin.
* client_max_body_size 64M;: Nginx’in kabul edeceği maksimum istek gövde boyutunu belirler. PHP ayarlarıyla uyumlu olmalıdır.
* location / { ... }: WordPress’in kalıcı bağlantılarının (permalinks) düzgün çalışması için gerekli olan try_files yönergesini içerir.
* location ~ /\.ht { ... }: .htaccess dosyalarına doğrudan erişimi engeller, bu Nginx’te kullanılmasa da iyi bir güvenlik önlemidir.
* location ~ \.php$ { ... }: .php uzantılı dosya isteklerinin PHP-FPM tarafından işlenmesini sağlar. fastcgi_pass unix:/run/php/php7.2-fpm.sock; kısmı, PHP-FPM’in 7.2 sürümü için varsayılan soket yoludur.
location ~ \.(js|css|png|jpg|jpeg|gif|ico)$ { ... }: Statik dosyaların tarayıcı önbelleğinde tutulmasını sağlayarak performansı artırır.

Dosyayı kaydedin (Ctrl+O, Enter) ve çıkın (Ctrl+X).

2. Yapılandırmayı Etkinleştirme:
Oluşturduğumuz yapılandırma dosyasını sites-enabled dizinine sembolik bir bağlantı oluşturarak etkinleştirelim:

sudo ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/

3. Varsayılan Nginx Yapılandırmasını Devre Dışı Bırakma:
Çakışmaları önlemek için Nginx’in varsayılan yapılandırmasını devre dışı bırakalım:

sudo unlink /etc/nginx/sites-enabled/default

4. Nginx Yapılandırmasını Test Etme:
Değişiklikleri uygulamadan önce Nginx yapılandırma dosyasında hata olup olmadığını kontrol etmek önemlidir:

sudo nginx -t

Eğer çıktı syntax is ok ve test is successful içeriyorsa, yapılandırmanızda bir hata yok demektir.

5. Nginx’i Yeniden Başlatma:
Değişikliklerin etkili olması için Nginx servisini yeniden başlatalım:

sudo systemctl restart nginx

Tarayıcı Üzerinden WordPress Kurulumunu Tamamlama

Artık tüm sunucu tarafı yapılandırmaları tamamladık. Şimdi bir web tarayıcısı kullanarak WordPress kurulumunu tamamlayabiliriz.

1. Web Tarayıcınızda Ziyaret Edin:
Web tarayıcınızı açın ve alan adınızı (örneğin http://your_domain.com) veya sunucunuzun IP adresini yazın.
WordPress sizi kurulum sihirbazına yönlendirecektir.

2. Kurulum Sihirbazını Takip Edin:
* Dil Seçimi: İlk adımda WordPress’i kullanmak istediğiniz dili seçin ve “Devam Et” butonuna tıklayın.
* Hoş Geldiniz Sayfası: Veritabanı bilgilerini daha önce wp-config.php dosyasına girdiğimiz için bu sayfayı atlayabiliriz. Eğer girmediyseniz, burada sizden veritabanı adı, kullanıcı adı, şifre ve ana bilgisayar bilgilerini isteyecektir.
* Site Bilgileri:
* Site Başlığı: Web sitenizin başlığını girin (daha sonra değiştirebilirsiniz).
* Kullanıcı Adı: WordPress yönetici paneline giriş yapmak için kullanacağınız kullanıcı adını belirleyin. admin gibi yaygın kullanıcı adlarından kaçınarak güvenlik seviyenizi artırın.
* Parola: Güçlü bir parola oluşturun veya WordPress’in önerdiği parolayı kullanın. Bu parolayı güvenli bir yerde saklayın.
* E-posta Adresiniz: Yönetici e-posta adresinizi girin. Bu adres, parola sıfırlama ve bildirimler için kullanılacaktır.
* Arama Motoru Görünürlüğü: “Arama motorlarının bu siteyi indekslemesini engelle” seçeneğini işaretlemeyin, aksi takdirde siteniz arama motorlarında görünmez. Siteniz hazır olduğunda bu ayarı kontrol edebilirsiniz.
* WordPress’i Kur: Tüm bilgileri girdikten sonra “WordPress’i Kur” butonuna tıklayın.

Kurulum tamamlandığında, WordPress yönetici paneline giriş yapabileceğiniz bir başarı mesajı göreceksiniz. Belirlediğiniz kullanıcı adı ve şifre ile giriş yaparak sitenizi yönetmeye başlayabilirsiniz.

Güvenlik ve Performans İyileştirmeleri (İsteğe Bağlı ama Önerilir)

WordPress kurulumunuz tamamlandı, ancak sitenizin güvenliğini ve performansını artırmak için yapabileceğiniz bazı ek adımlar vardır.

1. SSL/TLS Kurulumu (HTTPS için Let’s Encrypt):
Web sitenizin güvenliğini sağlamak ve arama motoru sıralamalarında avantaj elde etmek için HTTPS kullanmak kritik öneme sahiptir. Let’s Encrypt, ücretsiz SSL/TLS sertifikaları sağlayan bir hizmettir. Certbot aracı ile Nginx üzerinde kolayca kurulabilir.

sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d your_domain.com -d www.your_domain.com

* Certbot, Nginx yapılandırmanızı otomatik olarak algılayacak ve bir sertifika isteyecektir.
* Sizden bir e-posta adresi isteyecek ve hizmet şartlarını kabul etmenizi isteyecektir.
* Ardından, HTTP trafiğini otomatik olarak HTTPS’ye yönlendirip yönlendirmeyeceğinizi soracaktır. Genellikle “2: Redirect” seçeneğini seçmek iyi bir fikirdir.
* Kurulum tamamlandığında, Certbot sertifikalarınızın otomatik olarak yenilenecek şekilde ayarlandığını bildirecektir. Otomatik yenilemenin çalıştığını test etmek için:

sudo certbot renew --dry-run

Bu adımlardan sonra sitenize https://your_domain.com üzerinden erişebilmelisiniz.

2. Önbellekleme (Caching) Çözümleri:
WordPress’in dinamik yapısı, her istekte veritabanı sorguları ve PHP işleme gerektirir. Önbellekleme, bu işlemleri azaltarak sayfa yükleme sürelerini önemli ölçüde hızlandırabilir.
* WordPress Eklentileri: WP Super Cache, W3 Total Cache veya LiteSpeed Cache (eğer LiteSpeed kullanıyorsanız) gibi popüler önbellekleme eklentilerini kurarak WordPress seviyesinde önbellekleme yapabilirsiniz.
* Nginx FastCGI Cache: Nginx’in kendi FastCGI önbellekleme mekanizması, PHP-FPM’den gelen yanıtları önbelleğe alarak performansı artırabilir. Bu daha gelişmiş bir yapılandırma gerektirir ve Nginx yapılandırma dosyanızda ek ayarlamalar yapmayı gerektirir.

3. Güvenlik Eklentileri:
WordPress sitenizin güvenliğini artırmak için Wordfence Security, Sucuri Security veya iThemes Security gibi eklentileri kurabilirsiniz. Bu eklentiler, kötü amaçlı yazılım taraması, güvenlik duvarı, oturum açma denemelerini sınırlama ve diğer güvenlik önlemleri sunar.

4. PHP Sürümünü Yükseltme (Ubuntu 18.04 için PHP 7.4 veya 8.x):
Ubuntu 18.04 varsayılan olarak PHP 7.2 ile gelir. Daha yeni PHP sürümleri (7.4, 8.x) önemli performans iyileştirmeleri ve güvenlik güncellemeleri sunar. Daha yeni bir PHP sürümüne yükseltmek için, genellikle ondrej/php gibi bir PPA (Personal Package Archive) eklemeniz ve ardından PHP paketlerini yükseltmeniz gerekir. Bu işlem, bu makalenin kapsamını aşmakla birlikte, performans açısından dikkate alınması gereken önemli bir adımdır.

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

Kurulum sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri:

1. 502 Bad Gateway Hatası:
Bu hata genellikle Nginx’in PHP-FPM ile iletişim kuramadığı anlamına gelir.
* Çözüm: PHP-FPM servisinin çalıştığından emin olun (sudo systemctl status php7.2-fpm). Eğer çalışmıyorsa başlatın (sudo systemctl restart php7.2-fpm). Nginx yapılandırma dosyanızdaki fastcgi_pass yolunun doğru olduğundan emin olun (örneğin, unix:/run/php/php7.2-fpm.sock).

2. 403 Forbidden Hatası:
Bu hata genellikle dosya veya dizin izinleriyle ilgilidir. Nginx’in web kök dizinine erişim izni yoktur.
* Çözüm: WordPress dosyalarının bulunduğu dizinin sahipliğini ve izinlerini kontrol edin (sudo chown -R www-data:www-data /var/www/your_domain.com/ ve sudo chmod -R 755 /var/www/your_domain.com/).

3. WordPress Kalıcı Bağlantı (Permalinks) Sorunları:
Varsayılan dışındaki kalıcı bağlantı yapılarını seçtiğinizde “404 Not Found” hatası alıyorsanız, Nginx yapılandırmanızda try_files yönergesi doğru yapılandırılmamış olabilir.
* Çözüm: Nginx sanal ana bilgisayar yapılandırma dosyanızdaki location / { ... } bloğunun aşağıdaki gibi olduğundan emin olun:

location / {
            try_files $uri $uri/ /index.php?$args;
        }

Değişiklik yaptıktan sonra Nginx’i yeniden başlatın (sudo systemctl restart nginx).

4. Veritabanı Bağlantı Hatası:
“Error establishing a database connection” hatası, WordPress’in MariaDB’ye bağlanamadığı anlamına gelir.
* Çözüm:
* wp-config.php dosyasındaki DB_NAME, DB_USER, DB_PASSWORD ve DB_HOST değerlerinin doğru olduğundan emin olun.
* MariaDB servisinin çalıştığından emin olun (sudo systemctl status mariadb).
* MariaDB kullanıcısının doğru veritabanına doğru yetkilere sahip olduğundan emin olun. Gerekirse MariaDB komut istemcisine bağlanarak yetkileri tekrar kontrol edip FLUSH PRIVILEGES; komutunu çalıştırın.

Sonuç

Bu kapsamlı rehberde, Ubuntu 18.04 işletim sistemi üzerine Nginx web sunucusu, PHP-FPM ve MariaDB veritabanı kullanarak WordPress’in nasıl kurulacağını adım adım öğrendiniz. Nginx’in hafif ve yüksek performanslı yapısı ile WordPress’in esnek ve güçlü içerik yönetim yeteneklerini bir araya getirerek, hem hızlı hem de güvenilir bir web sitesi altyapısı kurmuş oldunuz.

Kurulum sürecinde sistem güncellemelerinden güvenlik duvarı yapılandırmasına, veritabanı ve PHP kurulumundan Nginx sanal ana bilgisayar ayarlarının detaylarına kadar her adımı titizlikle ele aldık. Ayrıca, sitenizin güvenliğini artırmak için SSL/TLS kurulumu ve performansını iyileştirmek için önbellekleme gibi önemli ek adımlara da değindik. Karşılaşabileceğiniz yaygın sorunlara yönelik çözümler sunarak, kurulum deneyiminizi daha sorunsuz hale getirmeyi amaçladık.

Artık web siteniz yayında ve yönetici paneline erişebilirsiniz. Bu noktadan sonra yapmanız gerekenler, sitenizin temasını seçmek, gerekli eklentileri kurmak, içerik oluşturmaya başlamak ve sitenizi ziyaretçileriniz için optimize etmektir. Nginx ve WordPress kombinasyonu, yüksek trafikli siteler için bile sağlam bir temel sunar. Bu rehberin, kendi WordPress sitenizi kurma yolculuğunuzda size yardımcı olduğunu umuyoruz. Başarılar dileriz!

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

Gönder

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.
Exit mobile version