{"id":40715,"date":"2026-02-28T19:40:51","date_gmt":"2026-02-28T16:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=40715"},"modified":"2026-02-28T19:40:51","modified_gmt":"2026-02-28T16:40:51","slug":"ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/","title":{"rendered":"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>\u0130nternet d\u00fcnyas\u0131n\u0131n en pop\u00fcler i\u00e7erik y\u00f6netim sistemi (CMS) olan WordPress, d\u00fcnya genelindeki web sitelerinin b\u00fcy\u00fck bir \u00e7o\u011funlu\u011funa g\u00fc\u00e7 vermektedir. Bloglardan e-ticaret sitelerine, kurumsal portallardan ki\u015fisel sayfalara kadar geni\u015f bir yelpazede kullan\u0131labilen WordPress, esnek yap\u0131s\u0131 ve geni\u015f eklenti\/tema ekosistemi sayesinde her t\u00fcrl\u00fc ihtiyaca cevap verebilir. Genellikle Apache web sunucusu ile birlikte an\u0131lan WordPress, y\u00fcksek performans ve kaynak verimlili\u011fi arayan kullan\u0131c\u0131lar i\u00e7in Nginx ile de sorunsuz bir \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131labilir.<\/p>\n<p>Nginx (Engine-X), y\u00fcksek performansl\u0131, hafif ve g\u00fc\u00e7l\u00fc bir HTTP sunucusu, ters proxy ve IMAP\/POP3 proxy sunucusudur. \u00d6zellikle e\u015fzamanl\u0131 ba\u011flant\u0131lar\u0131 y\u00f6netme ve statik i\u00e7erik sunma konusunda Apache&#8217;den daha \u00fcst\u00fcn bir performans sergileyebilir. Kaynak t\u00fcketimi a\u00e7\u0131s\u0131ndan da daha verimli olmas\u0131, Nginx&#8217;i \u00f6zellikle yo\u011fun trafik alan veya k\u0131s\u0131tl\u0131 sunucu kaynaklar\u0131na sahip web siteleri i\u00e7in cazip bir se\u00e7enek haline getirir.<\/p>\n<p>Bu makalede, Ubuntu 18.04 LTS (Long Term Support) i\u015fletim sistemi \u00fczerine Nginx web sunucusu, PHP-FPM (FastCGI Process Manager) ve MariaDB veritaban\u0131 kullanarak WordPress&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Ubuntu 18.04, uzun s\u00fcreli destek ve kararl\u0131l\u0131\u011f\u0131 sayesinde sunucu ortamlar\u0131 i\u00e7in ideal bir temel olu\u015fturmaktad\u0131r. Bu kurulum rehberi, sistem y\u00f6neticileri, geli\u015ftiriciler ve kendi web sitelerini kurmak isteyen herkes i\u00e7in detayl\u0131 ve anla\u015f\u0131l\u0131r bir yol haritas\u0131 sunmay\u0131 ama\u00e7lamaktad\u0131r. Her ad\u0131m, komut \u00f6rnekleri ve a\u00e7\u0131klamalarla desteklenerek, kurulum s\u00fcrecini sorunsuz bir \u015fekilde tamamlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimlere sahip oldu\u011funuzdan emin olun:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu:<\/strong> \u0130nternet eri\u015fimi olan, temiz bir Ubuntu 18.04 i\u015fletim sistemi kurulu bir sanal makine veya fiziksel sunucu.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> Sunucuya SSH \u00fczerinden ba\u011flanabilmek i\u00e7in bir terminal veya PuTTY gibi bir SSH istemcisi.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Kurulum komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilmek i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131.<br \/>\n*   <strong>Alan Ad\u0131 (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong> Web sitenize eri\u015fmek i\u00e7in bir alan ad\u0131 (\u00f6rne\u011fin, <code>example.com<\/code>). Alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131n\u0131n sunucunuzun IP adresine y\u00f6nlendirilmi\u015f olmas\u0131 gerekmektedir. Aksi takdirde sunucu IP adresi \u00fczerinden eri\u015fim sa\u011flayabilirsiniz.<br \/>\n*   <strong>Temel Linux Komut Bilgisi:<\/strong> Dosya sisteminde gezinme, dosya olu\u015fturma\/d\u00fczenleme gibi temel Linux komutlar\u0131na a\u015final\u0131k.<\/p>\n<h3>Sistem G\u00fcncellemesi ve Temel Kurulumlar<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce sunucunuzdaki paket listesini g\u00fcncelleyip mevcut paketleri y\u00fckseltmek iyi bir pratiktir. Bu, en g\u00fcncel g\u00fcvenlik yamalar\u0131n\u0131 ve yaz\u0131l\u0131m s\u00fcr\u00fcmlerini alman\u0131z\u0131 sa\u011flar.<\/p>\n<p>1.  <strong>Paket Listesini G\u00fcncelleme ve Y\u00fckseltme:<\/strong><br \/>\n    Sunucunuza SSH ile ba\u011fland\u0131ktan sonra a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt upgrade -y<\/code><\/pre>\n<p>    <code>apt update<\/code> komutu, yerel paket indeksini g\u00fcncelleyerek mevcut paketlerin en son s\u00fcr\u00fcmleri hakk\u0131nda bilgi edinmenizi sa\u011flar. <code>apt upgrade<\/code> ise y\u00fckl\u00fc t\u00fcm paketleri en yeni s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verir.<\/p>\n<p>2.  <strong>G\u00fcvenlik Duvar\u0131 (UFW) Kurulumu ve Yap\u0131land\u0131rmas\u0131:<\/strong><br \/>\n    Ubuntu&#8217;da varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall), sunucunuzu yetkisiz eri\u015fimlerden korumak i\u00e7in \u00f6nemlidir. Nginx ve SSH trafi\u011fine izin vermek i\u00e7in UFW&#8217;yi yap\u0131land\u0131ral\u0131m.<\/p>\n<pre><code class=\"language-bash\">sudo apt install ufw -y\n    sudo ufw allow OpenSSH\n    sudo ufw allow 'Nginx HTTP'\n    sudo ufw enable\n    sudo ufw status<\/code><\/pre>\n<p>    *   <code>sudo apt install ufw -y<\/code>: UFW&#8217;yi y\u00fckler.<br \/>\n    *   <code>sudo ufw allow OpenSSH<\/code>: SSH (port 22) ba\u011flant\u0131lar\u0131na izin verir. Bu ad\u0131m \u00e7ok \u00f6nemlidir, aksi takdirde g\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirdikten sonra sunucunuzla ba\u011flant\u0131n\u0131z kesilebilir.<br \/>\n    *   <code>sudo ufw allow 'Nginx HTTP'<\/code>: Nginx&#8217;in varsay\u0131lan HTTP portu olan 80&#8217;e gelen ba\u011flant\u0131lara izin verir. E\u011fer HTTPS kullanacaksan\u0131z daha sonra <code>sudo ufw allow 'Nginx HTTPS'<\/code> komutunu da eklemeniz gerekecektir.<br \/>\n    *   <code>sudo ufw enable<\/code>: G\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirir. Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra bir uyar\u0131 alacaks\u0131n\u0131z, <code>y<\/code> tu\u015funa basarak onaylay\u0131n.<br \/>\n    *   <code>sudo ufw status<\/code>: G\u00fcvenlik duvar\u0131n\u0131n durumunu ve izin verilen kurallar\u0131 g\u00f6sterir.<\/p>\n<h3>Nginx Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>WordPress web sitenize gelen istekleri i\u015fleyecek olan Nginx web sunucusunu \u015fimdi kuraca\u011f\u0131z.<\/p>\n<p>1.  <strong>Nginx Kurulumu:<\/strong><br \/>\n    Nginx&#8217;i Ubuntu depolar\u0131ndan kolayca kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y<\/code><\/pre>\n<p>2.  <strong>Nginx Servisini Kontrol Etme:<\/strong><br \/>\n    Kurulum tamamland\u0131ktan sonra Nginx servisi otomatik olarak ba\u015flamal\u0131d\u0131r. Durumunu kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa a\u015fa\u011f\u0131daki komutla ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx<\/code><\/pre>\n<p>    Nginx&#8217;in sunucu yeniden ba\u015flad\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable nginx<\/code><\/pre>\n<p>3.  <strong>Nginx&#8217;i Test Etme:<\/strong><br \/>\n    Web taray\u0131c\u0131n\u0131zda sunucunuzun IP adresini veya alan ad\u0131n\u0131z\u0131 ziyaret ederek Nginx&#8217;in do\u011fru bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz. <code>http:\/\/your_server_ip<\/code> adresine gitti\u011finizde Nginx&#8217;in varsay\u0131lan &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>MariaDB Kurulumu ve Veritaban\u0131 Olu\u015fturma<\/h3>\n<p>WordPress, t\u00fcm i\u00e7eriklerini (yaz\u0131lar, sayfalar, kullan\u0131c\u0131lar, ayarlar vb.) bir veritaban\u0131nda saklar. Bu b\u00f6l\u00fcmde, MySQL ile uyumlu ve genellikle daha performansl\u0131 bir alternatif olan MariaDB&#8217;yi kuracak ve WordPress i\u00e7in bir veritaban\u0131 olu\u015fturaca\u011f\u0131z.<\/p>\n<p>1.  <strong>MariaDB Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install mariadb-server mariadb-client -y<\/code><\/pre>\n<p>    Bu komut, MariaDB sunucusunu ve istemcisini y\u00fckleyecektir.<\/p>\n<p>2.  <strong>MariaDB G\u00fcvenlik Yap\u0131land\u0131rmas\u0131:<\/strong><br \/>\n    Yeni kurulan MariaDB sunucunuzun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in <code>mysql_secure_installation<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131rman\u0131z \u00f6nerilir.<\/p>\n<pre><code class=\"language-bash\">sudo mysql_secure_installation<\/code><\/pre>\n<p>    Bu betik size bir dizi soru soracakt\u0131r:<br \/>\n    *   <strong>Enter current password for root (enter for none):<\/strong> \u0130lk kurulumda root \u015fifresi olmad\u0131\u011f\u0131 i\u00e7in direkt Enter tu\u015funa bas\u0131n.<br \/>\n    *   <strong>Set root password? [Y\/n]:<\/strong> <code>Y<\/code> tu\u015funa basarak root kullan\u0131c\u0131s\u0131 i\u00e7in g\u00fc\u00e7l\u00fc bir \u015fifre belirleyin. Bu \u015fifreyi unutmay\u0131n!<br \/>\n    *   <strong>Remove anonymous users? [Y\/n]:<\/strong> <code>Y<\/code> tu\u015funa basarak anonim kullan\u0131c\u0131lar\u0131 kald\u0131r\u0131n.<br \/>\n    *   <strong>Disallow root login remotely? [Y\/n]:<\/strong> <code>Y<\/code> tu\u015funa basarak root kullan\u0131c\u0131s\u0131n\u0131n sadece yerel olarak (localhost) oturum a\u00e7mas\u0131na izin verin. Bu, g\u00fcvenlik i\u00e7in iyi bir uygulamad\u0131r.<br \/>\n    *   <strong>Remove test database and access to it? [Y\/n]:<\/strong> <code>Y<\/code> tu\u015funa basarak test veritaban\u0131n\u0131 kald\u0131r\u0131n.<br \/>\n    *   <strong>Reload privilege tables now? [Y\/n]:<\/strong> <code>Y<\/code> tu\u015funa basarak ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fckleyin.<\/p>\n<p>3.  <strong>WordPress \u0130\u00e7in Veritaban\u0131 Olu\u015fturma:<\/strong><br \/>\n    \u015eimdi WordPress&#8217;in kullanaca\u011f\u0131 bir veritaban\u0131, veritaban\u0131 kullan\u0131c\u0131s\u0131 ve bu kullan\u0131c\u0131 i\u00e7in bir \u015fifre olu\u015ftural\u0131m.<br \/>\n    MariaDB komut istemcisine root olarak ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mysql -u root -p<\/code><\/pre>\n<p>    Az \u00f6nce belirledi\u011finiz root \u015fifresini girin. Komut istemcisine girdikten sonra a\u015fa\u011f\u0131daki SQL komutlar\u0131n\u0131 s\u0131ras\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131n. <code>your_database_name<\/code>, <code>your_username<\/code> ve <code>your_password<\/code> k\u0131s\u0131mlar\u0131n\u0131 kendi istedi\u011finiz de\u011ferlerle de\u011fi\u015ftirin. G\u00fc\u00e7l\u00fc bir \u015fifre kulland\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n    CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';\n    GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';\n    FLUSH PRIVILEGES;\n    EXIT;<\/code><\/pre>\n<p>    *   <code>CREATE DATABASE ...<\/code>: Yeni bir veritaban\u0131 olu\u015fturur. <code>utf8mb4<\/code> karakter seti, emoji ve di\u011fer uluslararas\u0131 karakterleri desteklemek i\u00e7in \u00f6nemlidir.<br \/>\n    *   <code>CREATE USER ...<\/code>: Belirtilen isimde ve \u015fifrede yeni bir veritaban\u0131 kullan\u0131c\u0131s\u0131 olu\u015fturur. <code>@'localhost'<\/code> ifadesi, bu kullan\u0131c\u0131n\u0131n sadece yerel sunucudan ba\u011flanabilece\u011fini belirtir.<br \/>\n    *   <code>GRANT ALL PRIVILEGES ...<\/code>: Olu\u015fturulan kullan\u0131c\u0131ya, belirtilen veritaban\u0131 \u00fczerinde tam yetki verir.<br \/>\n    *   <code>FLUSH PRIVILEGES<\/code>: De\u011fi\u015fikliklerin hemen etkinle\u015fmesini sa\u011flar.<br \/>\n    *   <code>EXIT<\/code>: MariaDB komut istemcisinden \u00e7\u0131kar.<\/p>\n<h3>PHP Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>WordPress, PHP ile yaz\u0131lm\u0131\u015f dinamik bir uygulamad\u0131r. Nginx, PHP kodunu do\u011frudan \u00e7al\u0131\u015ft\u0131ramaz, bu y\u00fczden PHP-FPM (FastCGI Process Manager) arac\u0131l\u0131\u011f\u0131yla PHP isteklerini Nginx&#8217;e iletece\u011fiz. Ubuntu 18.04 i\u00e7in varsay\u0131lan PHP s\u00fcr\u00fcm\u00fc PHP 7.2&#8217;dir.<\/p>\n<p>1.  <strong>PHP ve Gerekli Mod\u00fcllerin Kurulumu:<\/strong><br \/>\n    WordPress&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in birka\u00e7 PHP mod\u00fcl\u00fcne ihtiyac\u0131 vard\u0131r. A\u015fa\u011f\u0131daki komutla PHP-FPM&#8217;i ve gerekli mod\u00fclleri kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">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<\/code><\/pre>\n<p>    *   <code>php-fpm<\/code>: PHP FastCGI Process Manager. Nginx ile PHP etkile\u015fimi i\u00e7in temel bile\u015fen.<br \/>\n    *   <code>php-mysql<\/code>: PHP&#8217;nin MariaDB\/MySQL veritaban\u0131na ba\u011flanmas\u0131n\u0131 sa\u011flar.<br \/>\n    *   <code>php-cli<\/code>: Komut sat\u0131r\u0131ndan PHP \u00e7al\u0131\u015ft\u0131rmak i\u00e7in.<br \/>\n    *   <code>php-gd<\/code>: G\u00f6rsel i\u015flem (resim boyutland\u0131rma, thumbnail olu\u015fturma) i\u00e7in gereklidir.<br \/>\n    *   <code>php-curl<\/code>: Harici servislerle ileti\u015fim kurmak i\u00e7in.<br \/>\n    *   <code>php-mbstring<\/code>: \u00c7ok baytl\u0131 dizeleri i\u015flemek i\u00e7in (uluslararas\u0131 karakter deste\u011fi).<br \/>\n    *   <code>php-xml<\/code>: XML i\u015fleme i\u00e7in.<br \/>\n    *   <code>php-zip<\/code>: Zip dosyalar\u0131yla \u00e7al\u0131\u015fmak i\u00e7in.<br \/>\n    *   <code>php-imagick<\/code>: Geli\u015fmi\u015f g\u00f6rsel i\u015fleme i\u00e7in (iste\u011fe ba\u011fl\u0131 ama \u00f6nerilir).<br \/>\n    *   <code>php-soap<\/code>: SOAP web servisleri i\u00e7in.<br \/>\n    *   <code>php-intl<\/code>: Uluslararas\u0131la\u015ft\u0131rma deste\u011fi i\u00e7in.<br \/>\n    *   <code>php-bcmath<\/code>: Y\u00fcksek hassasiyetli matematik fonksiyonlar\u0131 i\u00e7in.<\/p>\n<p>2.  <strong>PHP-FPM Servisini Kontrol Etme:<\/strong><br \/>\n    Kurulumdan sonra PHP-FPM servisi otomatik olarak ba\u015flamal\u0131d\u0131r. Durumunu kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status php7.2-fpm<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start php7.2-fpm\n    sudo systemctl enable php7.2-fpm<\/code><\/pre>\n<p>3.  <strong>PHP Yap\u0131land\u0131rmas\u0131 (php.ini):<\/strong><br \/>\n    WordPress&#8217;in ve genel olarak PHP uygulamalar\u0131n\u0131n daha iyi \u00e7al\u0131\u015fmas\u0131 i\u00e7in <code>php.ini<\/code> dosyas\u0131nda baz\u0131 ayarlar\u0131 d\u00fczenlemek faydal\u0131 olacakt\u0131r.<br \/>\n    A\u015fa\u011f\u0131daki komutla <code>php.ini<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/php\/7.2\/fpm\/php.ini<\/code><\/pre>\n<p>    Dosya i\u00e7inde a\u015fa\u011f\u0131daki de\u011ferleri bulun ve \u00f6nerilen \u015fekilde de\u011fi\u015ftirin (Ctrl+W ile arama yapabilirsiniz):<br \/>\n    *   <code>upload_max_filesize = 2M<\/code> -> <code>upload_max_filesize = 64M<\/code> (veya ihtiyac\u0131n\u0131za g\u00f6re daha y\u00fcksek)<br \/>\n    *   <code>post_max_size = 8M<\/code> -> <code>post_max_size = 64M<\/code><br \/>\n    *   <code>memory_limit = 128M<\/code> -> <code>memory_limit = 256M<\/code> (veya sunucu RAM&#8217;inize g\u00f6re daha y\u00fcksek)<br \/>\n    *   <code>max_execution_time = 30<\/code> -> <code>max_execution_time = 300<\/code><br \/>\n    *   <code>max_input_time = 60<\/code> -> <code>max_input_time = 300<\/code><br \/>\n    *   <code>cgi.fix_pathinfo = 1<\/code> -> <code>cgi.fix_pathinfo = 0<\/code> (Bu ayar g\u00fcvenlik a\u00e7\u0131s\u0131ndan 0 olmal\u0131d\u0131r. Nginx ile PHP-FPM kullan\u0131rken bu de\u011ferin 0 olmas\u0131 \u00f6nerilir.)<\/p>\n<p>    De\u011fi\u015fiklikleri kaydedin (Ctrl+O, Enter) ve dosyadan \u00e7\u0131k\u0131n (Ctrl+X).<br \/>\n    Yap\u0131land\u0131rma de\u011fi\u015fikliklerinin etkili olmas\u0131 i\u00e7in PHP-FPM servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart php7.2-fpm<\/code><\/pre>\n<h3>WordPress Kurulumu<\/h3>\n<p>\u015eimdi WordPress dosyalar\u0131n\u0131 indirecek, sunucumuza yerle\u015ftirecek ve gerekli izinleri ayarlayaca\u011f\u0131z.<\/p>\n<p>1.  <strong>WordPress Dosyalar\u0131n\u0131 \u0130ndirme:<\/strong><br \/>\n    \u00d6ncelikle, WordPress dosyalar\u0131n\u0131 indirmek i\u00e7in ge\u00e7ici bir dizine gidelim ve en son s\u00fcr\u00fcm\u00fc indirelim:<\/p>\n<pre><code class=\"language-bash\">cd \/tmp\n    wget https:\/\/wordpress.org\/latest.tar.gz<\/code><\/pre>\n<p>2.  <strong>Dosyalar\u0131 \u00c7\u0131kartma:<\/strong><br \/>\n    \u0130ndirdi\u011fimiz s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f dosyay\u0131 a\u00e7al\u0131m:<\/p>\n<pre><code class=\"language-bash\">tar -xzvf latest.tar.gz<\/code><\/pre>\n<p>    Bu i\u015flem <code>\/tmp\/wordpress<\/code> ad\u0131nda bir dizin olu\u015fturacakt\u0131r.<\/p>\n<p>3.  <strong>Web K\u00f6k Dizinini Olu\u015fturma ve Dosyalar\u0131 Ta\u015f\u0131ma:<\/strong><br \/>\n    WordPress dosyalar\u0131n\u0131 Nginx&#8217;in sunaca\u011f\u0131 bir dizine ta\u015f\u0131yaca\u011f\u0131z. Genellikle <code>\/var\/www\/html<\/code> veya <code>\/var\/www\/your_domain<\/code> gibi bir dizin kullan\u0131l\u0131r. Biz <code>your_domain<\/code> yerine sitenizin alan ad\u0131n\u0131 kullanarak daha d\u00fczenli bir yap\u0131 olu\u015ftural\u0131m.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/your_domain.com\n    sudo mv \/tmp\/wordpress\/* \/var\/www\/your_domain.com\/<\/code><\/pre>\n<p>    <code>your_domain.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 yazmay\u0131 unutmay\u0131n.<\/p>\n<p>4.  <strong>Dosya \u0130zinlerini Ayarlama:<\/strong><br \/>\n    WordPress&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi, eklenti ve tema y\u00fckleyebilmesi i\u00e7in do\u011fru dosya izinlerine sahip olmas\u0131 gerekir. Web sunucusunun (Nginx ve PHP-FPM) WordPress dosyalar\u0131na yazma izni olmas\u0131 \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/your_domain.com\/\n    sudo chmod -R 755 \/var\/www\/your_domain.com\/\n    sudo find \/var\/www\/your_domain.com\/ -type d -exec chmod g+s {} \\; # Dizinlere setgid izni<\/code><\/pre>\n<p>    *   <code>chown -R www-data:www-data<\/code>: <code>\/var\/www\/your_domain.com\/<\/code> dizini ve alt\u0131ndaki t\u00fcm dosya ve dizinlerin sahipli\u011fini <code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubuna atar. <code>www-data<\/code> Nginx ve PHP-FPM&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 varsay\u0131lan kullan\u0131c\u0131d\u0131r.<br \/>\n    *   <code>chmod -R 755<\/code>: Dizinlere 755 (sahip okuma\/yazma\/\u00e7al\u0131\u015ft\u0131rma, grup okuma\/\u00e7al\u0131\u015ft\u0131rma, di\u011ferleri okuma\/\u00e7al\u0131\u015ft\u0131rma) ve dosyalara 644 (sahip okuma\/yazma, grup okuma, di\u011ferleri okuma) izni verir.<br \/>\n    *   <code>find ... -type d -exec chmod g+s {} \\;<\/code>: Yeni olu\u015fturulan dosyalar\u0131n ve dizinlerin ayn\u0131 grup sahipli\u011fini devralmas\u0131n\u0131 sa\u011flamak i\u00e7in dizinlere <code>setgid<\/code> izni verir. Bu, WordPress&#8217;in medya y\u00fcklemeleri gibi i\u015flemlerinde sorun ya\u015famamas\u0131n\u0131 sa\u011flar.<\/p>\n<p>5.  <strong>WordPress Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015fturma:<\/strong><br \/>\n    WordPress, veritaban\u0131 ba\u011flant\u0131 bilgilerini <code>wp-config.php<\/code> adl\u0131 bir dosyada saklar. \u00d6rnek dosyay\u0131 kopyalayarak bu dosyay\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/your_domain.com\/\n    sudo cp wp-config-sample.php wp-config.php<\/code><\/pre>\n<p>    \u015eimdi <code>wp-config.php<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek veritaban\u0131 bilgilerini girelim:<\/p>\n<pre><code class=\"language-bash\">sudo nano wp-config.php<\/code><\/pre>\n<p>    Dosya i\u00e7inde a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulun ve daha \u00f6nce MariaDB&#8217;de olu\u015fturdu\u011funuz veritaban\u0131 ad\u0131, kullan\u0131c\u0131 ad\u0131 ve \u015fifre ile de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-php\">\/\/ <strong> MySQL settings - You can get this info from your web host <\/strong> \/\/\n    \/<em><\/em> The name of the database for WordPress *\/\n    define( 'DB_NAME', 'your_database_name' );\n\n    \/<em><\/em> MySQL database username *\/\n    define( 'DB_USER', 'your_username' );\n\n    \/<em><\/em> MySQL database password *\/\n    define( 'DB_PASSWORD', 'your_password' );\n\n    \/<em><\/em> MySQL hostname *\/\n    define( 'DB_HOST', 'localhost' );<\/code><\/pre>\n<p>    Ayr\u0131ca, WordPress g\u00fcvenlik anahtarlar\u0131n\u0131 (AUTH_KEY, SECURE_AUTH_KEY vb.) g\u00fcncelleyerek sitenizin g\u00fcvenli\u011fini art\u0131rman\u0131z \u00f6nerilir. Bu anahtarlar\u0131 otomatik olarak olu\u015fturmak i\u00e7in [https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/](https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/) adresini ziyaret edebilir, \u00fcretilen sat\u0131rlar\u0131 kopyalay\u0131p <code>wp-config.php<\/code> dosyas\u0131ndaki ilgili yere yap\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>    Dosyay\u0131 kaydedin (Ctrl+O, Enter) ve \u00e7\u0131k\u0131n (Ctrl+X).<\/p>\n<h3>Nginx Sanal Ana Bilgisayar Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx&#8217;in WordPress sitenizi do\u011fru bir \u015fekilde sunabilmesi i\u00e7in bir sanal ana bilgisayar (virtual host) yap\u0131land\u0131rma dosyas\u0131 olu\u015fturmam\u0131z gerekiyor.<\/p>\n<p>1.  <strong>Nginx Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma:<\/strong><br \/>\n    Yeni bir yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m. <code>your_domain.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/your_domain.com<\/code><\/pre>\n<p>    Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-nginx\">server {\n        listen 80;\n        listen [::]:80;\n\n        root \/var\/www\/your_domain.com;\n        index index.php index.html index.htm;\n\n        server_name your_domain.com www.your_domain.com; # Alan ad\u0131n\u0131z\u0131 buraya yaz\u0131n\n\n        client_max_body_size 64M; # PHP'deki post_max_size ve upload_max_filesize ile uyumlu olmal\u0131\n\n        location \/ {\n            try_files $uri $uri\/ \/index.php?$args;\n        }\n\n        location ~ \/\\.ht {\n            deny all;\n        }\n\n        location ~ \\.php$ {\n            include snippets\/fastcgi-php.conf;\n            fastcgi_pass unix:\/run\/php\/php7.2-fpm.sock; # PHP-FPM soket yolu\n            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n            include fastcgi_params;\n        }\n\n        # Statik dosyalar\u0131n \u00f6nbelle\u011fe al\u0131nmas\u0131\n        location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ {\n            expires max;\n            log_not_found off;\n        }\n    }<\/code><\/pre>\n<p>    *   <code>listen 80;<\/code>: Nginx&#8217;in HTTP isteklerini 80 numaral\u0131 porttan dinlemesini sa\u011flar.<br \/>\n    *   <code>root \/var\/www\/your_domain.com;<\/code>: WordPress dosyalar\u0131n\u0131n bulundu\u011fu dizini belirtir.<br \/>\n    *   <code>index index.php index.html index.htm;<\/code>: Dizin istendi\u011finde aranacak varsay\u0131lan dosyalar\u0131 belirtir.<br \/>\n    *   <code>server_name your_domain.com www.your_domain.com;<\/code>: Bu yap\u0131land\u0131rman\u0131n hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir. Kendi alan ad\u0131n\u0131z\u0131 girin.<br \/>\n    *   <code>client_max_body_size 64M;<\/code>: Nginx&#8217;in kabul edece\u011fi maksimum istek g\u00f6vde boyutunu belirler. PHP ayarlar\u0131yla uyumlu olmal\u0131d\u0131r.<br \/>\n    *   <code>location \/ { ... }<\/code>: WordPress&#8217;in kal\u0131c\u0131 ba\u011flant\u0131lar\u0131n\u0131n (permalinks) d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan <code>try_files<\/code> y\u00f6nergesini i\u00e7erir.<br \/>\n    *   <code>location ~ \/\\.ht { ... }<\/code>: <code>.htaccess<\/code> dosyalar\u0131na do\u011frudan eri\u015fimi engeller, bu Nginx&#8217;te kullan\u0131lmasa da iyi bir g\u00fcvenlik \u00f6nlemidir.<br \/>\n    *   <code>location ~ \\.php$ { ... }<\/code>: <code>.php<\/code> uzant\u0131l\u0131 dosya isteklerinin PHP-FPM taraf\u0131ndan i\u015flenmesini sa\u011flar. <code>fastcgi_pass unix:\/run\/php\/php7.2-fpm.sock;<\/code> k\u0131sm\u0131, PHP-FPM&#8217;in 7.2 s\u00fcr\u00fcm\u00fc i\u00e7in varsay\u0131lan soket yoludur.<br \/>\n    <em>   <code>location ~<\/em> \\.(js|css|png|jpg|jpeg|gif|ico)$ { ... }<\/code>: Statik dosyalar\u0131n taray\u0131c\u0131 \u00f6nbelle\u011finde tutulmas\u0131n\u0131 sa\u011flayarak performans\u0131 art\u0131r\u0131r.<\/p>\n<p>    Dosyay\u0131 kaydedin (Ctrl+O, Enter) ve \u00e7\u0131k\u0131n (Ctrl+X).<\/p>\n<p>2.  <strong>Yap\u0131land\u0131rmay\u0131 Etkinle\u015ftirme:<\/strong><br \/>\n    Olu\u015fturdu\u011fumuz yap\u0131land\u0131rma dosyas\u0131n\u0131 <code>sites-enabled<\/code> dizinine sembolik bir ba\u011flant\u0131 olu\u015fturarak etkinle\u015ftirelim:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/your_domain.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>3.  <strong>Varsay\u0131lan Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong><br \/>\n    \u00c7ak\u0131\u015fmalar\u0131 \u00f6nlemek i\u00e7in Nginx&#8217;in varsay\u0131lan yap\u0131land\u0131rmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo unlink \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>4.  <strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme:<\/strong><br \/>\n    De\u011fi\u015fiklikleri uygulamadan \u00f6nce Nginx yap\u0131land\u0131rma dosyas\u0131nda hata olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek \u00f6nemlidir:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>    E\u011fer \u00e7\u0131kt\u0131 <code>syntax is ok<\/code> ve <code>test is successful<\/code> i\u00e7eriyorsa, yap\u0131land\u0131rman\u0131zda bir hata yok demektir.<\/p>\n<p>5.  <strong>Nginx&#8217;i Yeniden Ba\u015flatma:<\/strong><br \/>\n    De\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in Nginx servisini yeniden ba\u015flatal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<h3>Taray\u0131c\u0131 \u00dczerinden WordPress Kurulumunu Tamamlama<\/h3>\n<p>Art\u0131k t\u00fcm sunucu taraf\u0131 yap\u0131land\u0131rmalar\u0131 tamamlad\u0131k. \u015eimdi bir web taray\u0131c\u0131s\u0131 kullanarak WordPress kurulumunu tamamlayabiliriz.<\/p>\n<p>1.  <strong>Web Taray\u0131c\u0131n\u0131zda Ziyaret Edin:<\/strong><br \/>\n    Web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve alan ad\u0131n\u0131z\u0131 (\u00f6rne\u011fin <code>http:\/\/your_domain.com<\/code>) veya sunucunuzun IP adresini yaz\u0131n.<br \/>\n    WordPress sizi kurulum sihirbaz\u0131na y\u00f6nlendirecektir.<\/p>\n<p>2.  <strong>Kurulum Sihirbaz\u0131n\u0131 Takip Edin:<\/strong><br \/>\n    *   <strong>Dil Se\u00e7imi:<\/strong> \u0130lk ad\u0131mda WordPress&#8217;i kullanmak istedi\u011finiz dili se\u00e7in ve &#8220;Devam Et&#8221; butonuna t\u0131klay\u0131n.<br \/>\n    *   <strong>Ho\u015f Geldiniz Sayfas\u0131:<\/strong> Veritaban\u0131 bilgilerini daha \u00f6nce <code>wp-config.php<\/code> dosyas\u0131na girdi\u011fimiz i\u00e7in bu sayfay\u0131 atlayabiliriz. E\u011fer girmediyseniz, burada sizden veritaban\u0131 ad\u0131, kullan\u0131c\u0131 ad\u0131, \u015fifre ve ana bilgisayar bilgilerini isteyecektir.<br \/>\n    *   <strong>Site Bilgileri:<\/strong><br \/>\n        *   <strong>Site Ba\u015fl\u0131\u011f\u0131:<\/strong> Web sitenizin ba\u015fl\u0131\u011f\u0131n\u0131 girin (daha sonra de\u011fi\u015ftirebilirsiniz).<br \/>\n        *   <strong>Kullan\u0131c\u0131 Ad\u0131:<\/strong> WordPress y\u00f6netici paneline giri\u015f yapmak i\u00e7in kullanaca\u011f\u0131n\u0131z kullan\u0131c\u0131 ad\u0131n\u0131 belirleyin. <code>admin<\/code> gibi yayg\u0131n kullan\u0131c\u0131 adlar\u0131ndan ka\u00e7\u0131narak g\u00fcvenlik seviyenizi art\u0131r\u0131n.<br \/>\n        *   <strong>Parola:<\/strong> G\u00fc\u00e7l\u00fc bir parola olu\u015fturun veya WordPress&#8217;in \u00f6nerdi\u011fi parolay\u0131 kullan\u0131n. Bu parolay\u0131 g\u00fcvenli bir yerde saklay\u0131n.<br \/>\n        *   <strong>E-posta Adresiniz:<\/strong> Y\u00f6netici e-posta adresinizi girin. Bu adres, parola s\u0131f\u0131rlama ve bildirimler i\u00e7in kullan\u0131lacakt\u0131r.<br \/>\n        *   <strong>Arama Motoru G\u00f6r\u00fcn\u00fcrl\u00fc\u011f\u00fc:<\/strong> &#8220;Arama motorlar\u0131n\u0131n bu siteyi indekslemesini engelle&#8221; se\u00e7ene\u011fini i\u015faretlemeyin, aksi takdirde siteniz arama motorlar\u0131nda g\u00f6r\u00fcnmez. Siteniz haz\u0131r oldu\u011funda bu ayar\u0131 kontrol edebilirsiniz.<br \/>\n    *   <strong>WordPress&#8217;i Kur:<\/strong> T\u00fcm bilgileri girdikten sonra &#8220;WordPress&#8217;i Kur&#8221; butonuna t\u0131klay\u0131n.<\/p>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, WordPress y\u00f6netici paneline giri\u015f yapabilece\u011finiz bir ba\u015far\u0131 mesaj\u0131 g\u00f6receksiniz. Belirledi\u011finiz kullan\u0131c\u0131 ad\u0131 ve \u015fifre ile giri\u015f yaparak sitenizi y\u00f6netmeye ba\u015flayabilirsiniz.<\/p>\n<h3>G\u00fcvenlik ve Performans \u0130yile\u015ftirmeleri (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir)<\/h3>\n<p>WordPress kurulumunuz tamamland\u0131, ancak sitenizin g\u00fcvenli\u011fini ve performans\u0131n\u0131 art\u0131rmak i\u00e7in yapabilece\u011finiz baz\u0131 ek ad\u0131mlar vard\u0131r.<\/p>\n<p>1.  <strong>SSL\/TLS Kurulumu (HTTPS i\u00e7in Let&#8217;s Encrypt):<\/strong><br \/>\n    Web sitenizin g\u00fcvenli\u011fini sa\u011flamak ve arama motoru s\u0131ralamalar\u0131nda avantaj elde etmek i\u00e7in HTTPS kullanmak kritik \u00f6neme sahiptir. Let&#8217;s Encrypt, \u00fccretsiz SSL\/TLS sertifikalar\u0131 sa\u011flayan bir hizmettir. Certbot arac\u0131 ile Nginx \u00fczerinde kolayca kurulabilir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install certbot python3-certbot-nginx -y\n    sudo certbot --nginx -d your_domain.com -d www.your_domain.com<\/code><\/pre>\n<p>    *   Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131layacak ve bir sertifika isteyecektir.<br \/>\n    *   Sizden bir e-posta adresi isteyecek ve hizmet \u015fartlar\u0131n\u0131 kabul etmenizi isteyecektir.<br \/>\n    *   Ard\u0131ndan, HTTP trafi\u011fini otomatik olarak HTTPS&#8217;ye y\u00f6nlendirip y\u00f6nlendirmeyece\u011finizi soracakt\u0131r. Genellikle &#8220;2: Redirect&#8221; se\u00e7ene\u011fini se\u00e7mek iyi bir fikirdir.<br \/>\n    *   Kurulum tamamland\u0131\u011f\u0131nda, Certbot sertifikalar\u0131n\u0131z\u0131n otomatik olarak yenilenecek \u015fekilde ayarland\u0131\u011f\u0131n\u0131 bildirecektir. Otomatik yenilemenin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>    Bu ad\u0131mlardan sonra sitenize <code>https:\/\/your_domain.com<\/code> \u00fczerinden eri\u015febilmelisiniz.<\/p>\n<p>2.  <strong>\u00d6nbellekleme (Caching) \u00c7\u00f6z\u00fcmleri:<\/strong><br \/>\n    WordPress&#8217;in dinamik yap\u0131s\u0131, her istekte veritaban\u0131 sorgular\u0131 ve PHP i\u015fleme gerektirir. \u00d6nbellekleme, bu i\u015flemleri azaltarak sayfa y\u00fckleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131rabilir.<br \/>\n    *   <strong>WordPress Eklentileri:<\/strong> WP Super Cache, W3 Total Cache veya LiteSpeed Cache (e\u011fer LiteSpeed kullan\u0131yorsan\u0131z) gibi pop\u00fcler \u00f6nbellekleme eklentilerini kurarak WordPress seviyesinde \u00f6nbellekleme yapabilirsiniz.<br \/>\n    *   <strong>Nginx FastCGI Cache:<\/strong> Nginx&#8217;in kendi FastCGI \u00f6nbellekleme mekanizmas\u0131, PHP-FPM&#8217;den gelen yan\u0131tlar\u0131 \u00f6nbelle\u011fe alarak performans\u0131 art\u0131rabilir. Bu daha geli\u015fmi\u015f bir yap\u0131land\u0131rma gerektirir ve Nginx yap\u0131land\u0131rma dosyan\u0131zda ek ayarlamalar yapmay\u0131 gerektirir.<\/p>\n<p>3.  <strong>G\u00fcvenlik Eklentileri:<\/strong><br \/>\n    WordPress sitenizin g\u00fcvenli\u011fini art\u0131rmak i\u00e7in Wordfence Security, Sucuri Security veya iThemes Security gibi eklentileri kurabilirsiniz. Bu eklentiler, k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131m taramas\u0131, g\u00fcvenlik duvar\u0131, oturum a\u00e7ma denemelerini s\u0131n\u0131rlama ve di\u011fer g\u00fcvenlik \u00f6nlemleri sunar.<\/p>\n<p>4.  <strong>PHP S\u00fcr\u00fcm\u00fcn\u00fc Y\u00fckseltme (Ubuntu 18.04 i\u00e7in PHP 7.4 veya 8.x):<\/strong><br \/>\n    Ubuntu 18.04 varsay\u0131lan olarak PHP 7.2 ile gelir. Daha yeni PHP s\u00fcr\u00fcmleri (7.4, 8.x) \u00f6nemli performans iyile\u015ftirmeleri ve g\u00fcvenlik g\u00fcncellemeleri sunar. Daha yeni bir PHP s\u00fcr\u00fcm\u00fcne y\u00fckseltmek i\u00e7in, genellikle <code>ondrej\/php<\/code> gibi bir PPA (Personal Package Archive) eklemeniz ve ard\u0131ndan PHP paketlerini y\u00fckseltmeniz gerekir. Bu i\u015flem, bu makalenin kapsam\u0131n\u0131 a\u015fmakla birlikte, performans a\u00e7\u0131s\u0131ndan dikkate al\u0131nmas\u0131 gereken \u00f6nemli bir ad\u0131md\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Kurulum s\u0131ras\u0131nda veya sonras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>1.  <strong>502 Bad Gateway Hatas\u0131:<\/strong><br \/>\n    Bu hata genellikle Nginx&#8217;in PHP-FPM ile ileti\u015fim kuramad\u0131\u011f\u0131 anlam\u0131na gelir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> PHP-FPM servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun (<code>sudo systemctl status php7.2-fpm<\/code>). E\u011fer \u00e7al\u0131\u015fm\u0131yorsa ba\u015flat\u0131n (<code>sudo systemctl restart php7.2-fpm<\/code>). Nginx yap\u0131land\u0131rma dosyan\u0131zdaki <code>fastcgi_pass<\/code> yolunun do\u011fru oldu\u011fundan emin olun (\u00f6rne\u011fin, <code>unix:\/run\/php\/php7.2-fpm.sock<\/code>).<\/p>\n<p>2.  <strong>403 Forbidden Hatas\u0131:<\/strong><br \/>\n    Bu hata genellikle dosya veya dizin izinleriyle ilgilidir. Nginx&#8217;in web k\u00f6k dizinine eri\u015fim izni yoktur.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> WordPress dosyalar\u0131n\u0131n bulundu\u011fu dizinin sahipli\u011fini ve izinlerini kontrol edin (<code>sudo chown -R www-data:www-data \/var\/www\/your_domain.com\/<\/code> ve <code>sudo chmod -R 755 \/var\/www\/your_domain.com\/<\/code>).<\/p>\n<p>3.  <strong>WordPress Kal\u0131c\u0131 Ba\u011flant\u0131 (Permalinks) Sorunlar\u0131:<\/strong><br \/>\n    Varsay\u0131lan d\u0131\u015f\u0131ndaki kal\u0131c\u0131 ba\u011flant\u0131 yap\u0131lar\u0131n\u0131 se\u00e7ti\u011finizde &#8220;404 Not Found&#8221; hatas\u0131 al\u0131yorsan\u0131z, Nginx yap\u0131land\u0131rman\u0131zda <code>try_files<\/code> y\u00f6nergesi do\u011fru yap\u0131land\u0131r\u0131lmam\u0131\u015f olabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Nginx sanal ana bilgisayar yap\u0131land\u0131rma dosyan\u0131zdaki <code>location \/ { ... }<\/code> blo\u011funun a\u015fa\u011f\u0131daki gibi oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-nginx\">location \/ {\n            try_files $uri $uri\/ \/index.php?$args;\n        }<\/code><\/pre>\n<p>        De\u011fi\u015fiklik yapt\u0131ktan sonra Nginx&#8217;i yeniden ba\u015flat\u0131n (<code>sudo systemctl restart nginx<\/code>).<\/p>\n<p>4.  <strong>Veritaban\u0131 Ba\u011flant\u0131 Hatas\u0131:<\/strong><br \/>\n    &#8220;Error establishing a database connection&#8221; hatas\u0131, WordPress&#8217;in MariaDB&#8217;ye ba\u011flanamad\u0131\u011f\u0131 anlam\u0131na gelir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   <code>wp-config.php<\/code> dosyas\u0131ndaki <code>DB_NAME<\/code>, <code>DB_USER<\/code>, <code>DB_PASSWORD<\/code> ve <code>DB_HOST<\/code> de\u011ferlerinin do\u011fru oldu\u011fundan emin olun.<br \/>\n        *   MariaDB servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun (<code>sudo systemctl status mariadb<\/code>).<br \/>\n        *   MariaDB kullan\u0131c\u0131s\u0131n\u0131n do\u011fru veritaban\u0131na do\u011fru yetkilere sahip oldu\u011fundan emin olun. Gerekirse MariaDB komut istemcisine ba\u011flanarak yetkileri tekrar kontrol edip <code>FLUSH PRIVILEGES;<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 18.04 i\u015fletim sistemi \u00fczerine Nginx web sunucusu, PHP-FPM ve MariaDB veritaban\u0131 kullanarak WordPress&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. Nginx&#8217;in hafif ve y\u00fcksek performansl\u0131 yap\u0131s\u0131 ile WordPress&#8217;in esnek ve g\u00fc\u00e7l\u00fc i\u00e7erik y\u00f6netim yeteneklerini bir araya getirerek, hem h\u0131zl\u0131 hem de g\u00fcvenilir bir web sitesi altyap\u0131s\u0131 kurmu\u015f oldunuz.<\/p>\n<p>Kurulum s\u00fcrecinde sistem g\u00fcncellemelerinden g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131na, veritaban\u0131 ve PHP kurulumundan Nginx sanal ana bilgisayar ayarlar\u0131n\u0131n detaylar\u0131na kadar her ad\u0131m\u0131 titizlikle ele ald\u0131k. Ayr\u0131ca, sitenizin g\u00fcvenli\u011fini art\u0131rmak i\u00e7in SSL\/TLS kurulumu ve performans\u0131n\u0131 iyile\u015ftirmek i\u00e7in \u00f6nbellekleme gibi \u00f6nemli ek ad\u0131mlara da de\u011findik. Kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlara y\u00f6nelik \u00e7\u00f6z\u00fcmler sunarak, kurulum deneyiminizi daha sorunsuz hale getirmeyi ama\u00e7lad\u0131k.<\/p>\n<p>Art\u0131k web siteniz yay\u0131nda ve y\u00f6netici paneline eri\u015febilirsiniz. Bu noktadan sonra yapman\u0131z gerekenler, sitenizin temas\u0131n\u0131 se\u00e7mek, gerekli eklentileri kurmak, i\u00e7erik olu\u015fturmaya ba\u015flamak ve sitenizi ziyaret\u00e7ileriniz i\u00e7in optimize etmektir. Nginx ve WordPress kombinasyonu, y\u00fcksek trafikli siteler i\u00e7in bile sa\u011flam bir temel sunar. Bu rehberin, kendi WordPress sitenizi kurma yolculu\u011funuzda size yard\u0131mc\u0131 oldu\u011funu umuyoruz. Ba\u015far\u0131lar dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 18.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-40715","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 18.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-28T16:40:51+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu\",\"datePublished\":\"2026-02-28T16:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\"},\"wordCount\":3347,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\",\"name\":\"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-28T16:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu","og_description":"Ubuntu 18.","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-28T16:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu","datePublished":"2026-02-28T16:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/"},"wordCount":3347,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/","name":"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-28T16:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-ile-wordpress-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 18.04 \u00dczerine Nginx ile WordPress Kurulumu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=40715"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40715\/revisions"}],"predecessor-version":[{"id":40716,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40715\/revisions\/40716"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}