Selamlar,
Bugün sizlere WordPress altyapısına sahip ve Nginx webserver işlemcisinde çalışan blog sitelerinizin kalıcı bağlantı ayarlarını nasıl yapacağınızı ve nginx’de bu kalıcı bağlantılarınızı sorunsuz bir şekilde çalıştırabileceğinizi anlatacağım.
Nginx hakkında bilgi sahibi olmayanlar için kısaca nginx hakkında ön bilgi vermek istiyorum.
Nginx rus yazılım mühendisi Igor Sysoev tarafından geliştirilen hafif, stabil, hızlı bir mail istemcisi olarak kodlanan daha sonraları geliştirilerek tüm sunucular için uygun hale getirilen bir webserver işlemcisidir.
Nginx özellikle yüksek trafikli ve yoğun istek girişi olan web siteleri için biçilmiş kaftandır. Single Thread yanıt yapısıyla sayfayı tek seferde indirip sayfa açılma hızında farkedilir bir şekilde büyük bir artış sağlar. Ayrıca nginx apache ve litespeed ile karşılaştırıldığında çok daha az cpu kullanır. Bu sebeple Nginx vps sunucular için biçilmiş kaftandır.
[/accordion-group] [/accordion]
Nginx’i kısaca anlattıktan sonra asıl konumuz olan nginx üzerinde çalışan bir wordpress altyapılı sitede kalıcı bağlantı ayarlarını nasıl yapılandırıp ve self url’lerimizi sorunsuz bir şekilde çalıştırmak için yapılacakları anlatmaya geçelim.
Bildiğiniz üzere Nginx webserver işlemcisinde ne yazık ki Apache’nin mod_rewrite özelliği çalışmamaktadır, bundan dolayıda wordpress gibi self url yapısı kullanan sistemlerde .htaccess dosyası çalışmayacaktır. Peki, .htaccess kullanmadan nginx üzerinde çalışana wordpress altyapılı sitemde’de kalıcı bağlantı ayarlarını nasıl sorunsuz çalıştıracağım ? diyorsanız eğer aşağıda adım adım nasıl yapılacağını anlattım.
Anlatımı mı yaparken Centos 6 x64 bit işletim sistemine sahip, herhangi bir sunucu kontrol paneline sahip olmayan, nginx webserver işlemcisi yüklü bir linux vps sunucu üzerinde işlemler yapılmıştır. İşlemler dediysem korkmayın, karmaşık birçok işlemden bahsetmiyorum oldukça kolay basit birkaç adımda kalıcı bağlantılarımız çalışır hale gelmektedir.
WordPress’de girilen yazı, sayfa, kategori ve etiketler gibi içerikler için bir link yapısı mevcuttur. Örneğin bir yazı eklediğiniz zaman permalik ayarı yapılmamış bir wordpresste aşağıdaki gibi link ile yayınladığınız yazınıza erişebilirsiniz. (Bu yazıya erişmek için kullanabileceğiniz link)
https://www.huseyinkorbalta.com/?p=1091
Ancak içeriklere kolay erişim ve arama motoru optimizasyonu gibi konular için üstteki bağlantılar aşağıdaki gibi değiştirilebilir:
https://www.huseyinkorbalta.com/nginx-wordpress-kalici-baglanti-ayarlari-nasil-yapilandirilir/
Bunu wordpress kontrol panelindeki Ayarlar menüsü altındaki Kalıcı Bağlantılar bölümünden ayarlayabilirsiniz.
Web server olarak nginx kullanıyorsanız, sunucu tarafında ayar dosyasında değişiklik yapmanız gerekmektedir. (Ben huseyinkorbalta.com için ayar dosyasını açarak göstereceğim)
sudo nano /etc/nginx/sites-available/huseyinkorbalta.com
* Eğer bir domain kullanmıyorsanız ya da virtual host tanımlaması mevcut değilse, nginx default ayar dosyasını açmalısınız:
sudo nano /etc/nginx/sites-available/default
Dosyayı açtıktan sonra server_name ile başlayan satırdan sonra aşağıdaki kod bloğunu eklemeniz gerekmektedir:
location / { try_files $uri $uri/ /index.php?q=$uri&$args; }
Ekleme yaptıktan sonra dosyanız aşağıdaki gibi görünmeli:
server { listen 80; root /var/www/huseyinkorbalta.com/public; index index.php index.html index.htm; server_name huseyinkorbalta.com www.huseyinkorbalta.com; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Düzenlediğiniz dosyayı kaydettikten sonra değişiklik yaparken bir hata yapıp yapmadığımızı test ediyoruz:
sudo nginx -t
Eğer bir hata yoksa, yapılan değişikliklerin geçerli olabilmesi için servisi yeniden başlatıyoruz.
sudo service nginx restart
Bu işlemden sonra wordpress kurulu olan adrese girerek kalıcı bağlantıların çalıştığınız görebilirsiniz. Bir hata ile karşılaşırsanız lütfen yorum olarak iletmekten çekinmeyin.
Yazı Bağlantısını Kopyala & Paylaş
Bu yazıya şimdiye kadar 4 Yorum yapılmıştır.
adamsın
Hocam bende sites available gözükmüyor. ayrıca config dosyasını açınca site ismi yerine localhost yazıyor.
default.conf içinde bunlar yazıyor.
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
ne yapmam gerekir tavsiyeniz var mıdır?
Merhaba,
Servername kısmına site adresinizi yazmanız ve conf dosyasını kaydetmeniz gerekiyor. Daha sonra nginx servisini yeniden başlatarak ayarların devreye girmesini sağlayabilirsiniz.
Tekrardan Merhaba,
Size ne kadar teşekkür etsem azdır. Etc içerisindeki Nginx içerisindeki localhost kısmını kendi site adresimle değiştirmeden home/kullanıcı/web/conf içerisindeki ssl.alanadi.nginx.configurasyon dosyasının içerisine alttaki kod bloğunu ekleyerek çözüm sağlamıştım
—————————————————–
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
—————————————————–
subdomainime wordpress kurdum ve aynı kalıcı bağlantı ayarlarını yaptım ve 404 hatası aldım ve daha sonra subdomainimin web conf içöerisindeki ssl kısmında aynı değişikliği yapınca sonuç alamadım ve sizin yönteminizi denedim sorunu çözdüm. Saatlerce birçok forum dolaştım ama siz olmasanız çözmem çok zor olurdu. Bilginin yayılmasına katkı sunduğunuz için teşekkür ederim, Allah razı olsun.
Bir Cevap Yaz