{"id":39219,"date":"2026-02-16T20:21:19","date_gmt":"2026-02-16T17:21:19","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/"},"modified":"2026-02-16T20:21:19","modified_gmt":"2026-02-16T17:21:19","slug":"giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/","title":{"rendered":"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?"},"content":{"rendered":"<p><title>Ubuntu 16.04&#8217;te LEMP Stack Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/title><br \/>\n<body><\/p>\n<p>Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack&#8217;i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.<\/p>\n<h2>Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, h\u0131zl\u0131 ve g\u00fcvenilir bir web altyap\u0131s\u0131, online ba\u015far\u0131n\u0131n temelini olu\u015fturur. Bir web sitesi veya uygulamas\u0131n\u0131n performans\u0131, kullan\u0131c\u0131 deneyimini do\u011frudan etkiler ve arama motoru s\u0131ralamalar\u0131nda kritik bir rol oynar. Peki, bu noktada LEMP stack neden bu kadar pop\u00fcler bir se\u00e7enek haline geldi? Geleneksel LAMP (Linux, Apache, MySQL, PHP) stack&#8217;ine bir alternatif olarak ortaya \u00e7\u0131kan LEMP, \u00f6zellikle y\u00fcksek trafikli siteler ve modern web uygulamalar\u0131 i\u00e7in optimize edilmi\u015f bir yap\u0131 sunar.<\/p>\n<p>LEMP k\u0131saltmas\u0131, web sunucusu bile\u015fenlerinin ba\u015f harflerinden olu\u015fur: <strong>L<\/strong>inux (i\u015fletim sistemi), <strong>E<\/strong>nginx (web sunucusu, &#8220;Engine-X&#8221; olarak telaffuz edilir), <strong>M<\/strong>ySQL (ili\u015fkisel veritaban\u0131 y\u00f6netim sistemi) ve <strong>P<\/strong>HP (sunucu tarafl\u0131 betik dili). Her bir bile\u015fen, web uygulaman\u0131z\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in hayati bir role sahiptir. Linux, stabil ve g\u00fcvenli bir temel sa\u011flarken, Nginx y\u00fcksek performansl\u0131 statik i\u00e7erik sunumu ve e\u015f zamanl\u0131 ba\u011flant\u0131 y\u00f6netimi konusunda \u00fcst\u00fcnd\u00fcr. MySQL, verilerinizin d\u00fczenli ve eri\u015filebilir olmas\u0131n\u0131 garanti ederken, PHP dinamik i\u00e7erik olu\u015fturma ve kullan\u0131c\u0131 etkile\u015fimini sa\u011flar. Bu kombinasyon, \u00f6zellikle kaynak verimli ve \u00f6l\u00e7eklenebilir \u00e7\u00f6z\u00fcmler arayan geli\u015ftiriciler ve sistem y\u00f6neticileri i\u00e7in ideal bir se\u00e7imdir.<\/p>\n<p>LEMP stack&#8217;in sundu\u011fu avantajlar saymakla bitmez. Nginx&#8217;in olay tabanl\u0131 mimarisi sayesinde, binlerce e\u015f zamanl\u0131 ba\u011flant\u0131y\u0131 d\u00fc\u015f\u00fck kaynak t\u00fcketimiyle y\u00f6netebilir, bu da \u00f6zellikle y\u00fcksek trafikli web siteleri i\u00e7in kritik bir performans art\u0131\u015f\u0131 anlam\u0131na gelir. Ayr\u0131ca, statik i\u00e7eriklerin h\u0131zl\u0131 bir \u015fekilde sunulmas\u0131 ve PHP gibi dinamik i\u00e7erik i\u015flemcileriyle FastCGI \u00fczerinden verimli bir \u015fekilde ileti\u015fim kurmas\u0131, genel web sitesi yan\u0131t s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir. G\u00fcvenlik a\u00e7\u0131s\u0131ndan da LEMP, mod\u00fcler yap\u0131s\u0131 sayesinde daha kolay izlenebilir ve yap\u0131land\u0131r\u0131labilir bir ortam sunar. Bu g\u00fc\u00e7l\u00fc ve esnek yap\u0131, hem k\u00fc\u00e7\u00fck ki\u015fisel projelerden hem de b\u00fcy\u00fck kurumsal uygulamalara kadar geni\u015f bir yelpazedeki ihtiya\u00e7lar\u0131 kar\u015f\u0131layabilir. Bu rehberde, Ubuntu 16.04 \u00fczerinde bu g\u00fc\u00e7l\u00fc yap\u0131y\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.<\/p>\n<h2>LEMP Stack Nedir ve Bile\u015fenleri Nelerdir? Temel Kavramlara Giri\u015f<\/h2>\n<p>LEMP stack, modern web uygulamalar\u0131n\u0131 bar\u0131nd\u0131rmak i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir yaz\u0131l\u0131m paketidir. Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, bu stack d\u00f6rt temel bile\u015fenden olu\u015fur ve her biri web sunucusu ortam\u0131n\u0131z\u0131n belirli bir y\u00f6n\u00fcn\u00fc ele al\u0131r. Bu bile\u015fenleri anlamak, kurulum s\u00fcrecini ve her birinin web projenizdeki rol\u00fcn\u00fc kavramak a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. \u015eimdi, her bir bile\u015feni daha yak\u0131ndan inceleyelim.<\/p>\n<h3>Linux \u0130\u015fletim Sistemi: Sa\u011flam Temeliniz<\/h3>\n<p>LEMP stack&#8217;in &#8220;L&#8221; harfi, temel i\u015fletim sistemi olan Linux&#8217;u temsil eder. Linux, a\u00e7\u0131k kaynak kodlu, g\u00fcvenilir, esnek ve y\u00fcksek performansl\u0131 bir i\u015fletim sistemidir. Sunucular i\u00e7in en pop\u00fcler se\u00e7imlerden biridir, \u00e7\u00fcnk\u00fc stabilite, g\u00fcvenlik ve geni\u015f bir topluluk deste\u011fi sunar. Ubuntu, Linux tabanl\u0131 da\u011f\u0131t\u0131mlar aras\u0131nda \u00f6zellikle sunucu ortamlar\u0131nda yayg\u0131n olarak kullan\u0131lan ve tercih edilen bir se\u00e7enektir. Ubuntu 16.04 LTS (Long Term Support) s\u00fcr\u00fcm\u00fc, uzun s\u00fcreli g\u00fcvenlik g\u00fcncellemeleri ve kararl\u0131l\u0131\u011f\u0131 ile bilinir, bu da onu \u00fcretim ortamlar\u0131 i\u00e7in g\u00fcvenilir bir tercih yapar. Linux \u00fczerinde \u00e7al\u0131\u015fmak, sistem kaynaklar\u0131n\u0131 daha verimli kullanman\u0131z\u0131 sa\u011flar ve web sunucunuzun performans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h3>Nginx (Engine-X): Y\u00fcksek Performansl\u0131 Web Sunucusu<\/h3>\n<p>LEMP stack&#8217;in kalbinde yer alan &#8220;E&#8221;, Nginx&#8217;i temsil eder. Nginx, olay tabanl\u0131 (event-driven) ve asenkron mimarisi sayesinde, \u00f6zellikle y\u00fcksek e\u015f zamanl\u0131 ba\u011flant\u0131 say\u0131lar\u0131n\u0131 d\u00fc\u015f\u00fck bellek t\u00fcketimiyle y\u00f6netme konusunda Apache&#8217;ye k\u0131yasla daha verimlidir. Bu \u00f6zelli\u011fi, onu y\u00fcksek trafikli web siteleri ve modern web uygulamalar\u0131 i\u00e7in ideal bir se\u00e7enek haline getirir. Nginx, statik dosyalar\u0131 (HTML, CSS, JavaScript, resimler vb.) son derece h\u0131zl\u0131 bir \u015fekilde sunabilir ve dinamik i\u00e7erik isteklerini (PHP gibi) FastCGI Process Manager (PHP-FPM) arac\u0131l\u0131\u011f\u0131yla PHP yorumlay\u0131c\u0131s\u0131na ileterek i\u015fler. Bu ayr\u0131m, Nginx&#8217;in sadece bir proxy g\u00f6revi g\u00f6rmesini ve PHP&#8217;nin i\u015f y\u00fck\u00fcn\u00fc ayr\u0131 bir s\u00fcre\u00e7te y\u00f6netmesini sa\u011flar, bu da genel sistem performans\u0131n\u0131 ve kararl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h3>MySQL: G\u00fc\u00e7l\u00fc Veritaban\u0131 Y\u00f6netim Sistemi<\/h3>\n<p>Stack&#8217;in &#8220;M&#8221; harfi, pop\u00fcler a\u00e7\u0131k kaynakl\u0131 ili\u015fkisel veritaban\u0131 y\u00f6netim sistemi olan MySQL&#8217;i ifade eder. MySQL, web uygulamalar\u0131 i\u00e7in verileri depolamak, y\u00f6netmek ve almak i\u00e7in kullan\u0131l\u0131r. Kullan\u0131c\u0131 bilgileri, \u00fcr\u00fcn kataloglar\u0131, blog yaz\u0131lar\u0131 gibi her t\u00fcrl\u00fc yap\u0131land\u0131r\u0131lm\u0131\u015f veriyi d\u00fczenli bir \u015fekilde saklar. Y\u00fcksek performans, g\u00fcvenilirlik ve kullan\u0131m kolayl\u0131\u011f\u0131 sunar. WordPress, Joomla, Drupal gibi bir\u00e7ok pop\u00fcler i\u00e7erik y\u00f6netim sistemi (CMS) ve \u00f6zel web uygulamalar\u0131 MySQL&#8217;i arka u\u00e7 veritaban\u0131 olarak kullan\u0131r. Veritaban\u0131, uygulaman\u0131z\u0131n dinamik i\u00e7eri\u011fini besleyen ana kaynakt\u0131r ve do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131, web sitenizin h\u0131z\u0131n\u0131 ve i\u015flevselli\u011fini do\u011frudan etkiler.<\/p>\n<h3>PHP: Dinamik \u0130\u00e7erik ve Uygulama Mant\u0131\u011f\u0131<\/h3>\n<p>Son olarak, &#8220;P&#8221; harfi, sunucu tarafl\u0131 betik dili olan PHP&#8217;yi temsil eder. PHP, web sayfalar\u0131nda dinamik i\u00e7erik olu\u015fturmak, form verilerini i\u015flemek, veritabanlar\u0131yla etkile\u015fim kurmak ve oturumlar\u0131 y\u00f6netmek gibi g\u00f6revler i\u00e7in yayg\u0131n olarak kullan\u0131l\u0131r. Nginx ile birlikte PHP&#8217;yi kullan\u0131rken, genellikle PHP-FPM (FastCGI Process Manager) ad\u0131 verilen bir s\u00fcre\u00e7 y\u00f6neticisi devreye girer. PHP-FPM, PHP yorumlay\u0131c\u0131s\u0131n\u0131n Nginx ile verimli bir \u015fekilde ileti\u015fim kurmas\u0131n\u0131 sa\u011flar. Nginx bir PHP iste\u011fi ald\u0131\u011f\u0131nda, bu iste\u011fi PHP-FPM&#8217;ye iletir; PHP-FPM kodu i\u015fler ve sonucu Nginx&#8217;e geri g\u00f6nderir, Nginx de bu sonucu son kullan\u0131c\u0131ya iletir. Bu mimari, PHP uygulamalar\u0131n\u0131z\u0131n daha h\u0131zl\u0131 ve g\u00fcvenilir \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r, \u00f6zellikle y\u00fcksek y\u00fck alt\u0131nda bile performans\u0131n korunmas\u0131na yard\u0131mc\u0131 olur. Bu bile\u015fenlerin bir araya gelmesiyle, dinamik, h\u0131zl\u0131 ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in g\u00fc\u00e7l\u00fc bir platform elde edersiniz.<\/p>\n<h2>Ubuntu 16.04 Sunucusunu Haz\u0131rlama: \u0130lk Ad\u0131mlar Nelerdir?<\/h2>\n<p>LEMP stack kurulumuna ba\u015flamadan \u00f6nce, Ubuntu 16.04 sunucunuzun optimum performans ve g\u00fcvenlik i\u00e7in do\u011fru \u015fekilde haz\u0131rland\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z. Bu haz\u0131rl\u0131k ad\u0131mlar\u0131, kurulum s\u00fcrecini sorunsuz hale getirecek ve gelecekteki olas\u0131 sorunlar\u0131n \u00f6n\u00fcne ge\u00e7ecektir. Sunucunuzu g\u00fcncellemek, yeni bir kullan\u0131c\u0131 olu\u015fturmak ve g\u00fcvenlik duvar\u0131n\u0131 yap\u0131land\u0131rmak bu s\u00fcrecin temelini olu\u015fturur.<\/p>\n<h3>Sistem G\u00fcncellemesi ve Temel Paket Kurulumlar\u0131<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan emin olmak en iyi uygulamad\u0131r. Bu, hem g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r hem de en son yaz\u0131l\u0131m paketlerini alman\u0131z\u0131 sa\u011flar. SSH arac\u0131l\u0131\u011f\u0131yla sunucunuza ba\u011fland\u0131ktan sonra, a\u015fa\u011f\u0131daki komutlar\u0131 kullanarak paket listelerini g\u00fcncelleyebilir ve mevcut paketleri y\u00fckseltebilirsiniz:<\/p>\n<pre><code>sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Bu komutlar, sisteminizdeki t\u00fcm paketleri en yeni s\u00fcr\u00fcmlerine g\u00fcncelleyecektir. <code class=\"language-\">-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar, bu da etkile\u015fimsiz bir g\u00fcncelleme s\u00fcreci demektir. G\u00fcncelleme i\u015flemi tamamland\u0131ktan sonra, baz\u0131 temel yard\u0131mc\u0131 programlar\u0131n kurulu oldu\u011fundan emin olmak faydal\u0131 olacakt\u0131r. \u00d6rne\u011fin, <code class=\"language-\">curl<\/code> veya <code class=\"language-\">wget<\/code> gibi ara\u00e7lar, ilerleyen ad\u0131mlarda ihtiya\u00e7 duyabilece\u011finiz dosyalar\u0131 indirmek i\u00e7in kullan\u0131labilir.<\/p>\n<h3>Yeni Bir Kullan\u0131c\u0131 Olu\u015fturma ve Sudo Yetkileri Verme<\/h3>\n<p>Sunucunuza do\u011frudan <code>root<\/code> kullan\u0131c\u0131s\u0131yla \u00e7al\u0131\u015fmak yerine, g\u00fcvenlik amac\u0131yla <code>sudo<\/code> yetkilerine sahip yeni bir kullan\u0131c\u0131 olu\u015fturmak her zaman tavsiye edilir. Bu, yanl\u0131\u015fl\u0131kla sistem dosyalar\u0131na zarar verme riskini azalt\u0131r ve daha g\u00fcvenli bir \u00e7al\u0131\u015fma ortam\u0131 sa\u011flar. Yeni bir kullan\u0131c\u0131 olu\u015fturmak i\u00e7in:<\/p>\n<pre><code>sudo adduser [kullan\u0131c\u0131_ad\u0131]<\/code><\/pre>\n<p>\u00d6rne\u011fin, <code>sudo adduser webuser<\/code> komutu ile <code>webuser<\/code> ad\u0131nda bir kullan\u0131c\u0131 olu\u015fturabilirsiniz. Sistem sizden yeni kullan\u0131c\u0131n\u0131n parolas\u0131n\u0131 girmenizi ve baz\u0131 ek bilgileri (iste\u011fe ba\u011fl\u0131) doldurman\u0131z\u0131 isteyecektir. Kullan\u0131c\u0131 olu\u015fturulduktan sonra, ona <code>sudo<\/code> yetkileri vermek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code>sudo usermod -aG sudo [kullan\u0131c\u0131_ad\u0131]<\/code><\/pre>\n<p>Bu komut, yeni kullan\u0131c\u0131n\u0131z\u0131 <code>sudo<\/code> grubuna ekler. Art\u0131k bu kullan\u0131c\u0131yla oturum a\u00e7abilir ve <code>sudo<\/code> komutunu kullanarak y\u00f6netici ayr\u0131cal\u0131klar\u0131na sahip komutlar\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu ad\u0131mdan sonra mevcut root oturumunuzdan \u00e7\u0131k\u0131\u015f yap\u0131p yeni kullan\u0131c\u0131 ile giri\u015f yapman\u0131z g\u00fcvenli bir ba\u015flang\u0131\u00e7 i\u00e7in \u00f6nemlidir.<\/p>\n<h3>UFW (Uncomplicated Firewall) ile G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>G\u00fcvenlik, bir sunucu kurulumunun en \u00f6nemli y\u00f6nlerinden biridir. UFW, Ubuntu&#8217;da varsay\u0131lan olarak gelen ve g\u00fcvenlik duvar\u0131n\u0131 y\u00f6netmeyi kolayla\u015ft\u0131ran bir ara\u00e7t\u0131r. LEMP stack&#8217;i kurmadan \u00f6nce, sadece gerekli portlara izin vererek sunucunuzu d\u0131\u015f tehditlere kar\u015f\u0131 koruman\u0131z hayati \u00f6nem ta\u015f\u0131r. \u00d6ncelikle, UFW&#8217;nin kurulu olup olmad\u0131\u011f\u0131n\u0131 kontrol edelim ve gerekirse kural\u0131m:<\/p>\n<pre><code>sudo apt install ufw<\/code><\/pre>\n<p>UFW&#8217;yi varsay\u0131lan olarak t\u00fcm gelen ba\u011flant\u0131lar\u0131 reddedecek \u015fekilde ayarlamak iyi bir ba\u015flang\u0131\u00e7t\u0131r:<\/p>\n<pre><code>sudo ufw default deny incoming\nsudo ufw default allow outgoing<\/code><\/pre>\n<p>\u015eimdi, LEMP stack&#8217;in \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan portlara izin vermemiz gerekiyor:<\/p>\n<ul>\n<li>SSH (Port 22): Sunucuya uzaktan eri\u015fim i\u00e7in.<\/li>\n<li>HTTP (Port 80): Nginx&#8217;in web trafi\u011fini sunmas\u0131 i\u00e7in.<\/li>\n<li>HTTPS (Port 443): SSL\/TLS \u015fifreli web trafi\u011fi i\u00e7in (ileride SSL kurmay\u0131 planl\u0131yorsan\u0131z).<\/li>\n<\/ul>\n<p>Bu portlara izin vermek i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullan\u0131n:<\/p>\n<pre><code>sudo ufw allow ssh\nsudo ufw allow http\nsudo ufw allow https<\/code><\/pre>\n<p>Alternatif olarak, port numaralar\u0131n\u0131 belirterek de izin verebilirsiniz:<\/p>\n<pre><code>sudo ufw allow 22\/tcp\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp<\/code><\/pre>\n<p>Kurallar\u0131 tan\u0131mlad\u0131ktan sonra, UFW&#8217;yi etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code>sudo ufw enable<\/code><\/pre>\n<p>Etkinle\u015ftirme s\u0131ras\u0131nda bir uyar\u0131 alabilirsiniz, onaylamak i\u00e7in <code class=\"language-\">y<\/code> tu\u015funa bas\u0131n. G\u00fcvenlik duvar\u0131n\u0131n durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code>sudo ufw status<\/code><\/pre>\n<p>Bu komut, etkin kurallar\u0131 listeleyecektir. Sunucunuz art\u0131k temel g\u00fcvenlik \u00f6nlemleriyle korunmaktad\u0131r. Bu haz\u0131rl\u0131k ad\u0131mlar\u0131, LEMP stack kurulumunuz i\u00e7in sa\u011flam ve g\u00fcvenli bir zemin olu\u015fturur.<\/p>\n<h2>Nginx Kurulumu ve Temel Yap\u0131land\u0131rma: Web Sunucunuzu Aya\u011fa Kald\u0131rma<\/h2>\n<p>LEMP stack&#8217;in ilk temel bile\u015feni olan Nginx&#8217;i kurarak web sunucunuzu faaliyete ge\u00e7irece\u011fiz. Nginx, \u00f6zellikle y\u00fcksek performansl\u0131 statik i\u00e7erik sunumu ve e\u015f zamanl\u0131 ba\u011flant\u0131 y\u00f6netimi konusunda \u00fcst\u00fcn bir web sunucusudur. Kurulumu olduk\u00e7a basittir ve temel yap\u0131land\u0131rmas\u0131yla hemen \u00e7al\u0131\u015fmaya ba\u015flayabiliriz.<\/p>\n<h3>Nginx Paketini Kurma<\/h3>\n<p>Nginx&#8217;i Ubuntu 16.04 sisteminize kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz. Daha \u00f6nce sistem g\u00fcncellemesi yapt\u0131\u011f\u0131m\u0131z i\u00e7in paket listelerimiz g\u00fcnceldir:<\/p>\n<pre><code>sudo apt install nginx -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, Nginx servisi otomatik olarak ba\u015flayacakt\u0131r. Servisin durumunu kontrol etmek ve \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz. Bu, Nginx&#8217;in ba\u015far\u0131yla kuruldu\u011funu ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Ayr\u0131ca, web taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresini (veya alan ad\u0131n\u0131) ziyaret ederek Nginx&#8217;in varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz. E\u011fer bu sayfay\u0131 g\u00f6r\u00fcyorsan\u0131z, Nginx do\u011fru bir \u015fekilde \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<h3>Nginx i\u00e7in G\u00fcvenlik Duvar\u0131 Ayarlar\u0131<\/h3>\n<p>Daha \u00f6nce UFW ile temel g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 belirlemi\u015ftik. Nginx kurulumu, UFW i\u00e7in baz\u0131 uygulama profilleri ekler. Bu profilleri kullanarak Nginx&#8217;e \u00f6zel izinler tan\u0131mlayabiliriz:<\/p>\n<pre><code>sudo ufw app list<\/code><\/pre>\n<p>Bu komut, mevcut uygulama profillerini listeler. \u00c7\u0131kt\u0131da genellikle \u015funlar\u0131 g\u00f6r\u00fcrs\u00fcn\u00fcz:<\/p>\n<ul>\n<li><code>Nginx Full<\/code>: Hem 80 (HTTP) hem de 443 (HTTPS) portlar\u0131na izin verir.<\/li>\n<li><code>Nginx HTTP<\/code>: Sadece 80 (HTTP) portuna izin verir.<\/li>\n<li><code>Nginx HTTPS<\/code>: Sadece 443 (HTTPS) portuna izin verir.<\/li>\n<\/ul>\n<p>E\u011fer sadece HTTP trafi\u011fi sunacaksan\u0131z, <code>Nginx HTTP<\/code> profilini etkinle\u015ftirebilirsiniz. E\u011fer ileride SSL\/TLS ile HTTPS kullanmay\u0131 planl\u0131yorsan\u0131z, <code>Nginx Full<\/code> profilini kullanmak daha uygun olacakt\u0131r. \u00d6rne\u011fin, HTTP trafi\u011fine izin vermek i\u00e7in:<\/p>\n<pre><code>sudo ufw allow 'Nginx HTTP'<\/code><\/pre>\n<p>E\u011fer daha \u00f6nce manuel olarak 80 ve 443 portlar\u0131na izin verdiyseniz, bu ad\u0131m\u0131 atlayabilirsiniz veya daha spesifik uygulama profillerini kullanmak i\u00e7in mevcut kurallar\u0131 silebilirsiniz. G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 g\u00fcncelledikten sonra, UFW durumunu tekrar kontrol edin:<\/p>\n<pre><code>sudo ufw status<\/code><\/pre>\n<h3>Nginx Sunucu Blo\u011fu Yap\u0131land\u0131rmas\u0131 (Sanal Host)<\/h3>\n<p>Nginx, Apache&#8217;deki sanal hostlara benzer \u015fekilde &#8220;sunucu bloklar\u0131&#8221; kullanarak birden fazla web sitesini ayn\u0131 sunucu \u00fczerinde bar\u0131nd\u0131rman\u0131za olanak tan\u0131r. Kendi web siteniz i\u00e7in \u00f6zel bir sunucu blo\u011fu olu\u015fturmak, Nginx yap\u0131land\u0131rman\u0131z\u0131n d\u00fczenli kalmas\u0131n\u0131 sa\u011flar. Varsay\u0131lan olarak, Nginx bir varsay\u0131lan sunucu blo\u011fu ile gelir. Kendi blo\u011fumuzu olu\u015ftural\u0131m:<\/p>\n<p>\u00d6ncelikle, web siteniz i\u00e7in bir dizin yap\u0131s\u0131 olu\u015ftural\u0131m. \u00d6rne\u011fin, <code>example.com<\/code> alan ad\u0131 i\u00e7in:<\/p>\n<pre><code>sudo mkdir -p \/var\/www\/example.com\/html\nsudo chown -R $USER:$USER \/var\/www\/example.com\/html\nsudo chmod -R 755 \/var\/www\/example.com<\/code><\/pre>\n<p>Bu komutlar, web sitesi dosyalar\u0131n\u0131z\u0131n bulunaca\u011f\u0131 dizini olu\u015fturur ve kullan\u0131c\u0131n\u0131za bu dizin \u00fczerinde sahiplik verir. \u015eimdi, bu dizin i\u00e7inde basit bir HTML dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>nano \/var\/www\/example.com\/html\/index.html<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"tr\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Ho\u015f Geldiniz!&lt;\/title&gt;\n    &lt;style&gt;\n        body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px; }\n        h1 { color: #333; }\n        p { color: #666; }\n    &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;example.com Nginx Sunucusu Ba\u015far\u0131yla \u00c7al\u0131\u015f\u0131yor!&lt;\/h1&gt;\n    &lt;p&gt;LEMP Stack kurulumunuzun ilk ad\u0131m\u0131 tamamland\u0131.&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Kaydedin ve \u00e7\u0131k\u0131n (<code>Ctrl+X<\/code>, <code>Y<\/code>, <code>Enter<\/code>). \u015eimdi, Nginx i\u00e7in yeni bir sunucu blo\u011fu dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/sites-available\/example.com<\/code><\/pre>\n<p>Bu dosyaya a\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 ekleyin:<\/p>\n<pre><code>server {\n    listen 80;\n    listen [::]:80;\n\n    root \/var\/www\/example.com\/html;\n    index index.html index.htm index.nginx-debian.html;\n\n    server_name example.com www.example.com;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n<p><code>server_name<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirmeyi unutmay\u0131n. E\u011fer bir alan ad\u0131n\u0131z yoksa, sunucunuzun IP adresini kullanabilirsiniz. Bu yap\u0131land\u0131rma, Nginx&#8217;e belirli bir alan ad\u0131 i\u00e7in hangi dizinden i\u00e7erik sunaca\u011f\u0131n\u0131 s\u00f6yler.<\/p>\n<p>Bu sunucu blo\u011funu etkinle\u015ftirmek i\u00e7in, <code>sites-enabled<\/code> dizinine bir sembolik ba\u011flant\u0131 olu\u015fturmam\u0131z gerekiyor:<\/p>\n<pre><code>sudo ln -s \/etc\/nginx\/sites-available\/example.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131n \u00e7ak\u0131\u015fmas\u0131n\u0131 \u00f6nlemek i\u00e7in, varsay\u0131lan sunucu blo\u011funu devre d\u0131\u015f\u0131 b\u0131rak\u0131n:<\/p>\n<pre><code>sudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>Nginx yap\u0131land\u0131rman\u0131zda herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code>sudo nginx -t<\/code><\/pre>\n<p>E\u011fer &#8220;test is successful&#8221; mesaj\u0131n\u0131 g\u00f6r\u00fcrseniz, her \u015fey yolunda demektir. Son olarak, Nginx&#8217;i yeniden ba\u015flatarak de\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code>sudo systemctl restart nginx<\/code><\/pre>\n<p>Art\u0131k taray\u0131c\u0131n\u0131zdan <code>http:\/\/example.com<\/code> adresine (veya sunucu IP adresinize) giderek yeni web sitenizin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. Bu ad\u0131mlar, Nginx&#8217;i ba\u015far\u0131yla kurman\u0131z\u0131 ve ilk web sitenizi yap\u0131land\u0131rman\u0131z\u0131 sa\u011flar. Bir sonraki ad\u0131mda veritaban\u0131 sistemimizi kuraca\u011f\u0131z.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Nginx yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131 d\u00fczenlerken her zaman <code>sudo nginx -t<\/code> komutunu kullanarak s\u00f6zdizimi hatalar\u0131n\u0131 kontrol edin. Bu, servisi yeniden ba\u015flatmadan \u00f6nce olas\u0131 sorunlar\u0131 tespit etmenizi sa\u011flar ve kesinti s\u00fcresini minimuma indirir.\n<\/div>\n<h2>MySQL Kurulumu ve G\u00fcvenlik Ayarlar\u0131: Veritaban\u0131n\u0131z\u0131 Olu\u015fturma<\/h2>\n<p>Web uygulamalar\u0131n\u0131z\u0131n dinamik i\u00e7eri\u011fini depolamak i\u00e7in bir veritaban\u0131 y\u00f6netim sistemine ihtiyac\u0131m\u0131z var. MySQL, bu alanda en pop\u00fcler ve g\u00fcvenilir se\u00e7eneklerden biridir. Ubuntu 16.04 \u00fczerinde MySQL&#8217;i kuracak ve temel g\u00fcvenlik ayarlar\u0131n\u0131 yapaca\u011f\u0131z, b\u00f6ylece verileriniz g\u00fcvende kalacakt\u0131r.<\/p>\n<h3>MySQL Sunucusu Kurulumu<\/h3>\n<p>MySQL sunucusunu kurmak olduk\u00e7a basittir. A\u015fa\u011f\u0131daki komutu kullanarak MySQL sunucu paketini y\u00fckleyebilirsiniz:<\/p>\n<pre><code>sudo apt install mysql-server -y<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda veya sonras\u0131nda, MySQL i\u00e7in bir <code>root<\/code> parolas\u0131 belirlemeniz istenebilir. Bu parola, MySQL veritaban\u0131 y\u00f6netim sisteminin ana y\u00f6neticisi i\u00e7in kullan\u0131lacakt\u0131r, bu y\u00fczden g\u00fc\u00e7l\u00fc ve hat\u0131rlayabilece\u011finiz bir parola se\u00e7ti\u011finizden emin olun. E\u011fer kurulum s\u0131ras\u0131nda parola belirleme ekran\u0131 gelmezse endi\u015felenmeyin, bu daha sonra g\u00fcvenlik beti\u011fi ile ayarlanacakt\u0131r.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, MySQL servisi otomatik olarak ba\u015flayacakt\u0131r. Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code>systemctl status mysql<\/code><\/pre>\n<p>Yine &#8220;active (running)&#8221; \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6rmelisiniz. Bu, MySQL sunucunuzun ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>MySQL G\u00fcvenlik Beti\u011fini \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>Yeni bir MySQL kurulumu, varsay\u0131lan olarak baz\u0131 g\u00fcvensiz ayarlarla gelir. Bu g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak i\u00e7in MySQL ile birlikte gelen g\u00fcvenlik beti\u011fini \u00e7al\u0131\u015ft\u0131rmak kritik \u00f6neme sahiptir. Bu betik, zay\u0131f varsay\u0131lanlar\u0131 kald\u0131rman\u0131za ve temel g\u00fcvenlik ayarlar\u0131n\u0131 yapman\u0131za yard\u0131mc\u0131 olur:<\/p>\n<pre><code>sudo mysql_secure_installation<\/code><\/pre>\n<p>Bu beti\u011fi \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, size bir dizi soru sorulacakt\u0131r:<\/p>\n<ol>\n<li><strong>VALIDATE PASSWORD PLUGIN:<\/strong> Bu eklenti, kullan\u0131c\u0131 parolalar\u0131n\u0131n g\u00fcc\u00fcn\u00fc kontrol eder. Genellikle &#8220;Y&#8221; (Evet) diyerek etkinle\u015ftirmek iyi bir fikirdir. E\u011fer etkinle\u015ftirirseniz, bir parola g\u00fcc\u00fc seviyesi se\u00e7meniz istenecektir (LOW, MEDIUM, STRONG).<\/li>\n<li><strong>Change the root password?<\/strong> E\u011fer kurulum s\u0131ras\u0131nda <code>root<\/code> parolas\u0131 belirlemediyseniz veya de\u011fi\u015ftirmek istiyorsan\u0131z &#8220;Y&#8221; diyerek yeni bir parola belirleyebilirsiniz. E\u011fer zaten belirlediyseniz ve de\u011fi\u015ftirmek istemiyorsan\u0131z &#8220;N&#8221; diyebilirsiniz.<\/li>\n<li><strong>Remove anonymous users?<\/strong> Anonim kullan\u0131c\u0131lar test ama\u00e7l\u0131d\u0131r ve \u00fcretim ortam\u0131nda g\u00fcvenlik riski olu\u015fturur. &#8220;Y&#8221; diyerek bunlar\u0131 kald\u0131rmal\u0131s\u0131n\u0131z.<\/li>\n<li><strong>Disallow root login remotely?<\/strong> <code>root<\/code> kullan\u0131c\u0131s\u0131n\u0131n uzaktan ba\u011flant\u0131 kurmas\u0131n\u0131 engellemek, g\u00fcvenlik i\u00e7in \u00e7ok \u00f6nemlidir. Genellikle &#8220;Y&#8221; diyerek buna izin vermemelisiniz.<\/li>\n<li><strong>Remove test database and access to it?<\/strong> Varsay\u0131lan olarak gelen &#8220;test&#8221; veritaban\u0131 ve ona eri\u015fim haklar\u0131 da g\u00fcvenlik riski olu\u015fturur. &#8220;Y&#8221; diyerek bunlar\u0131 kald\u0131rmal\u0131s\u0131n\u0131z.<\/li>\n<li><strong>Reload privilege tables now?<\/strong> Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin hemen etkili olmas\u0131 i\u00e7in &#8220;Y&#8221; diyerek ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fcklemelisiniz.<\/li>\n<\/ol>\n<p>T\u00fcm bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, MySQL kurulumunuz \u00e7ok daha g\u00fcvenli bir hale gelecektir.<\/p>\n<h3>MySQL Y\u00f6netimi \u0130\u00e7in Kullan\u0131c\u0131 Olu\u015fturma<\/h3>\n<p>Web uygulamalar\u0131n\u0131z\u0131n <code>root<\/code> kullan\u0131c\u0131s\u0131yla do\u011frudan veritaban\u0131na ba\u011flanmas\u0131 iyi bir uygulama de\u011fildir. Bunun yerine, uygulaman\u0131z i\u00e7in \u00f6zel bir MySQL kullan\u0131c\u0131s\u0131 olu\u015fturmal\u0131 ve ona yaln\u0131zca ihtiya\u00e7 duydu\u011fu veritaban\u0131 \u00fczerinde gerekli ayr\u0131cal\u0131klar\u0131 vermelisiniz. MySQL komut istemine ba\u011flanmak i\u00e7in:<\/p>\n<pre><code>sudo mysql -u root -p<\/code><\/pre>\n<p>Parolan\u0131z\u0131 girmeniz istendi\u011finde, MySQL <code>root<\/code> parolan\u0131z\u0131 girin. Komut istemine girdikten sonra, yeni bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>CREATE DATABASE example_database;\nCREATE USER 'example_user'@'localhost' IDENTIFIED BY 'gucluparo1a';\nGRANT ALL PRIVILEGES ON example_database.* TO 'example_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<ul>\n<li><code>example_database<\/code>: Web uygulaman\u0131z\u0131n kullanaca\u011f\u0131 veritaban\u0131n\u0131n ad\u0131.<\/li>\n<li><code>example_user<\/code>: Web uygulaman\u0131z\u0131n veritaban\u0131na ba\u011flanmak i\u00e7in kullanaca\u011f\u0131 kullan\u0131c\u0131 ad\u0131.<\/li>\n<li><code>gucluparo1a<\/code>: Bu kullan\u0131c\u0131 i\u00e7in belirleyece\u011finiz g\u00fc\u00e7l\u00fc parola.<\/li>\n<\/ul>\n<p>Bu komutlar, <code>example_database<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturur, <code>example_user<\/code> ad\u0131nda ve <code>localhost<\/code>&#8216;tan ba\u011flanabilen bir kullan\u0131c\u0131 olu\u015fturur ve bu kullan\u0131c\u0131ya <code>example_database<\/code> \u00fczerindeki t\u00fcm ayr\u0131cal\u0131klar\u0131 verir. <code>FLUSH PRIVILEGES;<\/code> komutu, ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fckleyerek de\u011fi\u015fikliklerin hemen etkili olmas\u0131n\u0131 sa\u011flar. <code>EXIT;<\/code> ile MySQL komut isteminden \u00e7\u0131kabilirsiniz.<\/p>\n<p>Art\u0131k web uygulaman\u0131z, <code>example_user<\/code> ve <code>gucluparo1a<\/code> parolas\u0131n\u0131 kullanarak <code>example_database<\/code>&#8216;e g\u00fcvenli bir \u015fekilde ba\u011flanabilir. Bu yap\u0131land\u0131rma, veritaban\u0131 g\u00fcvenli\u011finizi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r ve web projenizin sa\u011flam bir temele oturmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>PHP Kurulumu ve Nginx ile Entegrasyonu: Dinamik \u0130\u00e7eri\u011fi Etkinle\u015ftirme<\/h2>\n<p>LEMP stack&#8217;in son bile\u015feni olan PHP&#8217;yi kurma ve Nginx ile entegre etme zaman\u0131 geldi. PHP, web sitenizin dinamik i\u00e7eri\u011fini olu\u015fturmak ve veritaban\u0131yla etkile\u015fim kurmak i\u00e7in kullan\u0131lacak. Nginx, PHP kodunu do\u011frudan yorumlamaz; bunun yerine, PHP-FPM (FastCGI Process Manager) arac\u0131l\u0131\u011f\u0131yla PHP yorumlay\u0131c\u0131s\u0131yla ileti\u015fim kurar. Bu b\u00f6l\u00fcm, PHP&#8217;yi kurma, PHP-FPM&#8217;yi yap\u0131land\u0131rma ve Nginx sunucu blo\u011funuzu PHP ile \u00e7al\u0131\u015facak \u015fekilde ayarlama ad\u0131mlar\u0131n\u0131 i\u00e7erecektir.<\/p>\n<h3>PHP ve PHP-FPM Paketlerinin Kurulumu<\/h3>\n<p>Ubuntu 16.04 i\u00e7in PHP 7.0 (veya daha yeni bir s\u00fcr\u00fcm, depolar\u0131n\u0131zda mevcutsa) kurabiliriz. PHP-FPM ve Nginx ile etkile\u015fim i\u00e7in gerekli olan di\u011fer yayg\u0131n PHP mod\u00fcllerini de kuraca\u011f\u0131z:<\/p>\n<pre><code>sudo apt install php-fpm php-mysql php-cli php-common php-mbstring php-gd php-curl php-xml -y<\/code><\/pre>\n<p>Bu komut, PHP 7.0&#8217;\u0131n FastCGI Process Manager&#8217;\u0131n\u0131 (<code>php-fpm<\/code>), MySQL veritaban\u0131 ba\u011flant\u0131s\u0131 i\u00e7in gerekli mod\u00fcl\u00fc (<code>php-mysql<\/code>), komut sat\u0131r\u0131 aray\u00fcz\u00fcn\u00fc (<code>php-cli<\/code>), temel PHP dosyalar\u0131n\u0131 (<code>php-common<\/code>), \u00e7ok baytl\u0131 dize i\u015flevleri i\u00e7in mod\u00fcl\u00fc (<code>php-mbstring<\/code>), grafik i\u015fleme i\u00e7in GD k\u00fct\u00fcphanesini (<code>php-gd<\/code>), URL&#8217;leri i\u015flemek i\u00e7in cURL mod\u00fcl\u00fcn\u00fc (<code>php-curl<\/code>) ve XML i\u015fleme i\u00e7in mod\u00fcl\u00fc (<code>php-xml<\/code>) kurar. Web uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re daha fazla PHP mod\u00fcl\u00fc eklemeniz gerekebilir.<\/p>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, PHP-FPM servisi otomatik olarak ba\u015flayacakt\u0131r. Durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code>systemctl status php7.0-fpm<\/code><\/pre>\n<p>&#8220;active (running)&#8221; \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6rmelisiniz. Bu, PHP-FPM&#8217;nin ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>Nginx Sunucu Blo\u011funu PHP ile \u00c7al\u0131\u015facak \u015eekilde Yap\u0131land\u0131rma<\/h3>\n<p>\u015eimdi Nginx&#8217;in PHP dosyalar\u0131n\u0131 PHP-FPM&#8217;ye iletmesini sa\u011flayacak \u015fekilde sunucu blo\u011fumuzu d\u00fczenlememiz gerekiyor. Daha \u00f6nce olu\u015fturdu\u011fumuz <code>example.com<\/code> sunucu blo\u011fu dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/sites-available\/example.com<\/code><\/pre>\n<p><code>location \/<\/code> blo\u011funda <code>index<\/code> sat\u0131r\u0131na <code>index.php<\/code> ekleyin ve PHP dosyalar\u0131n\u0131 i\u015flemek i\u00e7in bir <code>location ~ \\.php$<\/code> blo\u011fu ekleyin. D\u00fczenlenmi\u015f yap\u0131land\u0131rma \u015fu \u015fekilde g\u00f6r\u00fcnmelidir:<\/p>\n<pre><code>server {\n    listen 80;\n    listen [::]:80;\n\n    root \/var\/www\/example.com\/html;\n    index index.php index.html index.htm index.nginx-debian.html; # index.php'yi ekledik\n\n    server_name example.com www.example.com;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # PHP dosyalar\u0131n\u0131 PHP-FPM'ye iletmek i\u00e7in blok\n    location ~ \\.php$ {\n        include snippets\/fastcgi-php.conf;\n        fastcgi_pass unix:\/run\/php\/php7.0-fpm.sock; # PHP-FPM soket yolu\n    }\n\n    # Hassas dosyalar\u0131n web \u00fczerinden eri\u015fimini engellemek i\u00e7in\n    location ~ \/\\.ht {\n        deny all;\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmada \u00f6nemli noktalar:<\/p>\n<ul>\n<li><code>index index.php<\/code>: Nginx&#8217;e dizin isteklerinde <code>index.php<\/code> dosyas\u0131n\u0131 aramas\u0131n\u0131 s\u00f6yler.<\/li>\n<li><code>location ~ \\.php$<\/code>: Bu blok, URL&#8217;si <code>.php<\/code> ile biten t\u00fcm istekleri yakalar.<\/li>\n<li><code>include snippets\/fastcgi-php.conf;<\/code>: Bu dosya, FastCGI ileti\u015fimini yap\u0131land\u0131rmak i\u00e7in gerekli olan standart ayarlar\u0131 i\u00e7erir.<\/li>\n<li><code>fastcgi_pass unix:\/run\/php\/php7.0-fpm.sock;<\/code>: Bu sat\u0131r, Nginx&#8217;in PHP isteklerini PHP-FPM&#8217;ye iletmek i\u00e7in kulland\u0131\u011f\u0131 Unix soketini belirtir. Ubuntu 16.04&#8217;te genellikle bu yoldad\u0131r.<\/li>\n<\/ul>\n<p>De\u011fi\u015fiklikleri kaydedin ve dosyay\u0131 kapat\u0131n. Nginx yap\u0131land\u0131rman\u0131zda hata olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code>sudo nginx -t<\/code><\/pre>\n<p>E\u011fer &#8220;test is successful&#8221; mesaj\u0131n\u0131 al\u0131rsan\u0131z, Nginx&#8217;i yeniden ba\u015flatarak de\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code>sudo systemctl restart nginx<\/code><\/pre>\n<h3>PHP&#8217;nin \u00c7al\u0131\u015ft\u0131\u011f\u0131n\u0131 Do\u011frulama<\/h3>\n<p>PHP&#8217;nin do\u011fru bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in, web sitenizin k\u00f6k dizinine (<code>\/var\/www\/example.com\/html\/<\/code>) basit bir PHP bilgi dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>sudo nano \/var\/www\/example.com\/html\/info.php<\/code><\/pre>\n<p>Bu dosyaya a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code>&lt;?php\nphpinfo();\n?&gt;<\/code><\/pre>\n<p>Kaydedin ve kapat\u0131n. \u015eimdi web taray\u0131c\u0131n\u0131zdan <code>http:\/\/example.com\/info.php<\/code> adresine gidin (alan ad\u0131n\u0131z\u0131 veya IP adresinizi kullan\u0131n). E\u011fer PHP&#8217;nin t\u00fcm yap\u0131land\u0131rma bilgilerini i\u00e7eren bir sayfa g\u00f6r\u00fcyorsan\u0131z, LEMP stack&#8217;iniz ba\u015far\u0131yla kurulmu\u015f ve \u00e7al\u0131\u015f\u0131yor demektir! Bu sayfa, kurulu PHP s\u00fcr\u00fcm\u00fcn\u00fc, etkin mod\u00fclleri ve di\u011fer yap\u0131land\u0131rma ayr\u0131nt\u0131lar\u0131n\u0131 g\u00f6sterecektir.<\/p>\n<p><strong>\u00d6nemli G\u00fcvenlik Notu:<\/strong> <code>info.php<\/code> dosyas\u0131, sunucunuz hakk\u0131nda hassas bilgiler i\u00e7erir. Kurulumu do\u011frulad\u0131ktan sonra bu dosyay\u0131 sunucunuzdan kald\u0131rman\u0131z veya ad\u0131n\u0131 de\u011fi\u015ftirmeniz \u015fiddetle tavsiye edilir. Aksi takdirde, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131 olu\u015fturabilir:<\/p>\n<pre><code>sudo rm \/var\/www\/example.com\/html\/info.php<\/code><\/pre>\n<p>Tebrikler! LEMP stack&#8217;iniz art\u0131k tamamen i\u015flevseldir. Art\u0131k bu platform \u00fczerinde kendi web uygulamalar\u0131n\u0131z\u0131 veya i\u00e7erik y\u00f6netim sistemlerini (WordPress gibi) kurmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h2>LEMP Stack&#8217;i G\u00fcvenli ve Optimize Etme: Performans ve G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h2>\n<p>LEMP stack&#8217;i kurmak harika bir ba\u015flang\u0131\u00e7t\u0131r, ancak bir web sunucusunun sadece \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 yeterli de\u011fildir. Performans\u0131n\u0131 optimize etmek ve g\u00fcvenli\u011fini sa\u011flamak, uzun vadeli ba\u015far\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu b\u00f6l\u00fcmde, LEMP stack&#8217;inizi daha h\u0131zl\u0131, daha g\u00fcvenli ve daha kararl\u0131 hale getirmek i\u00e7in baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131 ve yap\u0131land\u0131rmalar ele al\u0131nacakt\u0131r.<\/p>\n<h3>HTTPS ile SSL\/TLS \u015eifrelemesi Ekleme (Certbot ile Let&#8217;s Encrypt)<\/h3>\n<p>Web sitenizde SSL\/TLS \u015fifrelemesi kullanmak, kullan\u0131c\u0131 verilerini korumak, SEO s\u0131ralamalar\u0131n\u0131 iyile\u015ftirmek ve genel g\u00fcveni art\u0131rmak i\u00e7in olmazsa olmazd\u0131r. Let&#8217;s Encrypt, \u00fccretsiz SSL sertifikalar\u0131 sa\u011flayan harika bir giri\u015fimdir ve Certbot arac\u0131 ile kolayca kurulabilir. Ubuntu 16.04 i\u00e7in Certbot&#8217;u kurup Nginx ile entegre edelim:<\/p>\n<pre><code>sudo apt update\nsudo apt install software-properties-common -y\nsudo add-apt-repository ppa:certbot\/certbot -y\nsudo apt update\nsudo apt install python-certbot-nginx -y<\/code><\/pre>\n<p>Certbot&#8217;u kurduktan sonra, Nginx i\u00e7in SSL sertifikas\u0131 almak ve otomatik olarak yap\u0131land\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code>sudo certbot --nginx -d example.com -d www.example.com<\/code><\/pre>\n<p><code>example.com<\/code> ve <code>www.example.com<\/code> yerine kendi alan adlar\u0131n\u0131z\u0131 yaz\u0131n. Certbot, e-posta adresinizi isteyecek, hizmet \u015fartlar\u0131n\u0131 kabul etmenizi isteyecek ve sertifikay\u0131 otomatik olarak yap\u0131land\u0131racakt\u0131r. Ayr\u0131ca, HTTP trafi\u011fini HTTPS&#8217;e y\u00f6nlendirip y\u00f6nlendirmeyece\u011finizi de soracakt\u0131r. Genellikle &#8220;2: Redirect&#8221; se\u00e7ene\u011fini se\u00e7mek iyi bir uygulamad\u0131r. Bu i\u015flem tamamland\u0131\u011f\u0131nda, Nginx yap\u0131land\u0131rman\u0131z otomatik olarak g\u00fcncellenecek ve web siteniz HTTPS \u00fczerinden eri\u015filebilir olacakt\u0131r. Certbot ayr\u0131ca sertifikalar\u0131n otomatik yenilenmesini de yap\u0131land\u0131racakt\u0131r.<\/p>\n<h3>Nginx Optimizasyonlar\u0131<\/h3>\n<p>Nginx&#8217;in performans\u0131n\u0131 art\u0131rmak i\u00e7in baz\u0131 temel yap\u0131land\u0131rma de\u011fi\u015fiklikleri yapabiliriz. Ana Nginx yap\u0131land\u0131rma dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/nginx.conf<\/code><\/pre>\n<p><code>http { ... }<\/code> blo\u011funun i\u00e7ine a\u015fa\u011f\u0131daki ayarlar\u0131 ekleyebilir veya d\u00fczenleyebilirsiniz:<\/p>\n<pre><code>user www-data; # Nginx'in hangi kullan\u0131c\u0131yla \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirler\nworker_processes auto; # CPU \u00e7ekirdek say\u0131n\u0131za g\u00f6re otomatik ayarlan\u0131r\npid \/run\/nginx.pid;\ninclude \/etc\/nginx\/modules-enabled\/*.conf;\n\nevents {\n    worker_connections 1024; # Her worker'\u0131n i\u015fleyebilece\u011fi maksimum ba\u011flant\u0131 say\u0131s\u0131\n    # multi_accept on; # Yeni ba\u011flant\u0131lar\u0131 daha h\u0131zl\u0131 kabul eder (iste\u011fe ba\u011fl\u0131)\n}\n\nhttp {\n    sendfile on; # Dosya g\u00f6nderme performans\u0131n\u0131 art\u0131r\u0131r\n    tcp_nopush on; # Veri paketlerini optimize eder\n    tcp_nodelay on; # K\u00fc\u00e7\u00fck paketleri hemen g\u00f6nderir\n    keepalive_timeout 65; # Ba\u011flant\u0131n\u0131n ne kadar s\u00fcre a\u00e7\u0131k kalaca\u011f\u0131n\u0131 belirler\n    types_hash_max_size 2048;\n\n    include \/etc\/nginx\/mime.types;\n    default_type application\/octet-stream;\n\n    # Gzip s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131 etkinle\u015ftirme\n    gzip on;\n    gzip_vary on;\n    gzip_proxied any;\n    gzip_comp_level 6;\n    gzip_buffers 16 8k;\n    gzip_http_version 1.1;\n    gzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;\n\n    # Hata g\u00fcnl\u00fcklerini kapatma veya seviyesini ayarlama (prod ortam\u0131 i\u00e7in)\n    # error_log \/var\/log\/nginx\/error.log crit;\n\n    # ... di\u011fer ayarlar ...\n}<\/code><\/pre>\n<p><code>worker_processes auto;<\/code> ayar\u0131, Nginx&#8217;in CPU \u00e7ekirdek say\u0131n\u0131za g\u00f6re en iyi performans\u0131 sa\u011flamas\u0131na yard\u0131mc\u0131 olur. <code>gzip on;<\/code> ayar\u0131, web sitenizin i\u00e7eri\u011fini s\u0131k\u0131\u015ft\u0131rarak daha h\u0131zl\u0131 y\u00fcklenmesini sa\u011flar. De\u011fi\u015fiklikleri kaydettikten sonra Nginx&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl restart nginx<\/code><\/pre>\n<h3>PHP-FPM Optimizasyonlar\u0131<\/h3>\n<p>PHP-FPM havuz yap\u0131land\u0131rmas\u0131, PHP uygulaman\u0131z\u0131n performans\u0131n\u0131 do\u011frudan etkiler. Ana PHP-FPM havuz dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/php\/7.0\/fpm\/pool.d\/www.conf<\/code><\/pre>\n<p>Bu dosyada, <code>pm<\/code> (process manager) ile ilgili ayarlar\u0131 d\u00fczenleyebilirsiniz:<\/p>\n<ul>\n<li><code>pm = dynamic<\/code>: \u0130\u015flem y\u00f6neticisinin dinamik olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar (varsay\u0131lan). Di\u011fer se\u00e7enekler <code>static<\/code> (sabit say\u0131da \u00e7ocuk s\u00fcreci) veya <code>ondemand<\/code> (istek \u00fczerine \u00e7ocuk s\u00fcreci olu\u015fturur).<\/li>\n<li><code>pm.max_children<\/code>: Olu\u015fturulabilecek maksimum \u00e7ocuk s\u00fcreci say\u0131s\u0131. Sunucunuzun RAM&#8217;ine ba\u011fl\u0131d\u0131r.<\/li>\n<li><code>pm.start_servers<\/code>: Ba\u015flang\u0131\u00e7ta olu\u015fturulacak \u00e7ocuk s\u00fcreci say\u0131s\u0131.<\/li>\n<li><code>pm.min_spare_servers<\/code>: Minimum bo\u015fta bekleyen \u00e7ocuk s\u00fcreci say\u0131s\u0131.<\/li>\n<li><code>pm.max_spare_servers<\/code>: Maksimum bo\u015fta bekleyen \u00e7ocuk s\u00fcreci say\u0131s\u0131.<\/li>\n<\/ul>\n<p>Bu de\u011ferleri sunucunuzun RAM&#8217;ine ve beklenen trafik y\u00fck\u00fcne g\u00f6re ayarlaman\u0131z gerekir. \u00d6rne\u011fin, 4GB RAM&#8217;e sahip bir sunucu i\u00e7in \u015fu \u015fekilde bir ba\u015flang\u0131\u00e7 yapabilirsiniz:<\/p>\n<pre><code>pm = dynamic\npm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 15<\/code><\/pre>\n<p>Ayr\u0131ca, <code>php.ini<\/code> dosyas\u0131nda da baz\u0131 \u00f6nemli ayarlar bulunur:<\/p>\n<pre><code>sudo nano \/etc\/php\/7.0\/fpm\/php.ini<\/code><\/pre>\n<p>Burada <code>memory_limit<\/code>, <code>upload_max_filesize<\/code>, <code>post_max_size<\/code> gibi de\u011ferleri uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re ayarlayabilirsiniz. \u00d6rne\u011fin, WordPress gibi bir CMS kullan\u0131yorsan\u0131z, bu de\u011ferleri art\u0131rman\u0131z gerekebilir:<\/p>\n<pre><code>memory_limit = 256M\nupload_max_filesize = 64M\npost_max_size = 64M\nmax_execution_time = 300<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra PHP-FPM&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl restart php7.0-fpm<\/code><\/pre>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: PHP-FPM <code>pm<\/code> ayarlar\u0131n\u0131 yaparken, <code>pm.max_children<\/code> de\u011ferini \u00e7ok y\u00fcksek tutmaktan ka\u00e7\u0131n\u0131n. Her PHP \u00e7ocuk s\u00fcreci RAM t\u00fcketir ve \u00e7ok fazla \u00e7ocuk s\u00fcreci, sunucunuzun belle\u011fini t\u00fcketerek performans\u0131 d\u00fc\u015f\u00fcrebilir veya sunucuyu \u00e7\u00f6kertir. Sunucunuzun RAM&#8217;ini g\u00f6z \u00f6n\u00fcnde bulundurarak dikkatli bir denge kurun.\n<\/div>\n<h3>MySQL Optimizasyonlar\u0131<\/h3>\n<p>MySQL performans\u0131, web uygulaman\u0131z\u0131n h\u0131z\u0131nda \u00f6nemli bir rol oynar. MySQL yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenleyerek baz\u0131 temel optimizasyonlar yapabiliriz:<\/p>\n<pre><code>sudo nano \/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code><\/pre>\n<p>Bu dosyada, \u00f6zellikle <code>[mysqld]<\/code> blo\u011funun alt\u0131nda a\u015fa\u011f\u0131daki ayarlar\u0131 kontrol edebilir veya ekleyebilirsiniz:<\/p>\n<pre><code># Ba\u011flant\u0131 ayarlar\u0131\nmax_connections = 200 # Maksimum e\u015f zamanl\u0131 ba\u011flant\u0131 say\u0131s\u0131\nwait_timeout = 60 # Ba\u011flant\u0131lar\u0131n ne kadar s\u00fcre aktif kalaca\u011f\u0131\n\n# Bellek ayarlar\u0131 (RAM'inize g\u00f6re ayarlay\u0131n)\ninnodb_buffer_pool_size = 1G # InnoDB verileri ve indeksleri i\u00e7in ayr\u0131lan RAM (Toplam RAM'in %50-70'i)\nkey_buffer_size = 128M # MyISAM indeksleri i\u00e7in ayr\u0131lan RAM (e\u011fer MyISAM kullan\u0131l\u0131yorsa)\nquery_cache_size = 64M # Tekrar eden sorgular i\u00e7in \u00f6nbellek boyutu (MySQL 8+ s\u00fcr\u00fcmlerinde kald\u0131r\u0131lm\u0131\u015ft\u0131r)\ntmp_table_size = 64M\nmax_heap_table_size = 64M\n\n# G\u00fcnl\u00fck ayarlar\u0131 (iste\u011fe ba\u011fl\u0131, hata ay\u0131klama i\u00e7in)\n# log_error = \/var\/log\/mysql\/error.log\n# slow_query_log = 1\n# slow_query_log_file = \/var\/log\/mysql\/mysql-slow.log\n# long_query_time = 1<\/code><\/pre>\n<p><code>innodb_buffer_pool_size<\/code> ayar\u0131 \u00f6zellikle \u00f6nemlidir ve sunucunuzun RAM&#8217;inin %50-70&#8217;i kadar bir de\u011fer olarak ayarlanmas\u0131 \u00f6nerilir. Bu, veritaban\u0131 performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. De\u011fi\u015fiklikleri kaydettikten sonra MySQL&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl restart mysql<\/code><\/pre>\n<p>Bu optimizasyonlar, LEMP stack&#8217;inizin daha verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacak ve web projelerinizin daha iyi bir performans sunmas\u0131na yard\u0131mc\u0131 olacakt\u0131r. Ancak unutmay\u0131n, optimizasyon s\u00fcrekli bir s\u00fcre\u00e7tir ve sunucunuzun kaynaklar\u0131n\u0131 ve uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131n\u0131 d\u00fczenli olarak izlemeniz gerekir.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: WordPress Kurulumu ve Y\u00f6netimi<\/h2>\n<p>LEMP stack&#8217;inizi kurduktan ve optimize ettikten sonra, bu g\u00fc\u00e7l\u00fc altyap\u0131 \u00fczerinde bir web uygulamas\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131n zaman\u0131 geldi. En pop\u00fcler i\u00e7erik y\u00f6netim sistemlerinden biri olan WordPress&#8217;i LEMP stack \u00fczerinde kurmak, bu yetenekleri sergilemek i\u00e7in harika bir ger\u00e7ek d\u00fcnya senaryosudur. Bu b\u00f6l\u00fcmde, WordPress&#8217;i nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve temel y\u00f6netim ipu\u00e7lar\u0131n\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>WordPress \u0130\u00e7in Veritaban\u0131 Olu\u015fturma<\/h3>\n<p>WordPress&#8217;in \u00e7al\u0131\u015fmas\u0131 i\u00e7in bir veritaban\u0131na ihtiyac\u0131 vard\u0131r. Daha \u00f6nce MySQL i\u00e7in bir kullan\u0131c\u0131 olu\u015fturmu\u015ftuk, \u015fimdi WordPress i\u00e7in \u00f6zel bir veritaban\u0131 ve gerekirse yeni bir kullan\u0131c\u0131 olu\u015ftural\u0131m. MySQL komut istemine ba\u011flan\u0131n:<\/p>\n<pre><code>sudo mysql -u root -p<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki komutlar\u0131 kullanarak WordPress i\u00e7in bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturun:<\/p>\n<pre><code>CREATE DATABASE wordpress_db;\nCREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'cokguclu_wordpress_parolasi';\nGRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<p><code>wordpress_db<\/code>, <code>wordpress_user<\/code> ve <code>cokguclu_wordpress_parolasi<\/code> de\u011ferlerini kendi tercihinize g\u00f6re de\u011fi\u015ftirdi\u011finizden emin olun.<\/p>\n<h3>WordPress Dosyalar\u0131n\u0131 \u0130ndirme ve Yap\u0131land\u0131rma<\/h3>\n<p>\u015eimdi WordPress dosyalar\u0131n\u0131 sunucunuza indirelim. Web sitenizin k\u00f6k dizinine gidin (\u00f6rne\u011fin, <code>\/var\/www\/example.com\/html<\/code>) ve WordPress&#8217;in en son s\u00fcr\u00fcm\u00fcn\u00fc indirin:<\/p>\n<pre><code>cd \/var\/www\/example.com\/html\nsudo wget https:\/\/wordpress.org\/latest.tar.gz\nsudo tar -xvzf latest.tar.gz\nsudo mv wordpress\/* .\nsudo rm -rf wordpress latest.tar.gz<\/code><\/pre>\n<p>Bu komutlar, WordPress&#8217;i indirir, s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f dosyay\u0131 a\u00e7ar, i\u00e7eri\u011fini mevcut dizine ta\u015f\u0131r ve gereksiz dosyalar\u0131 temizler. \u015eimdi, WordPress&#8217;in yap\u0131land\u0131rma dosyas\u0131n\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>sudo cp wp-config-sample.php wp-config.php\nsudo nano wp-config.php<\/code><\/pre>\n<p><code>wp-config.php<\/code> dosyas\u0131n\u0131 a\u00e7t\u0131ktan sonra, veritaban\u0131 bilgilerinizi a\u015fa\u011f\u0131daki gibi g\u00fcncelleyin:<\/p>\n<pre><code>\/\/ <strong> MySQL settings - You can get this info from your web host <\/strong> \/\/\n\/** The name of the database for WordPress *\/\ndefine('DB_NAME', 'wordpress_db');\n\n\/** MySQL database username *\/\ndefine('DB_USER', 'wordpress_user');\n\n\/** MySQL database password *\/\ndefine('DB_PASSWORD', 'cokguclu_wordpress_parolasi');\n\n\/** MySQL hostname *\/\ndefine('DB_HOST', 'localhost');<\/code><\/pre>\n<p>Ayr\u0131ca, g\u00fcvenlik anahtarlar\u0131n\u0131 (Authentication Unique Keys and Salts) g\u00fcncellemek i\u00e7in <a href=\"https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/\">https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/<\/a> adresinden yeni anahtarlar olu\u015fturup <code>wp-config.php<\/code> dosyan\u0131za yap\u0131\u015ft\u0131r\u0131n. Bu, WordPress kurulumunuzun g\u00fcvenli\u011fini art\u0131racakt\u0131r.<\/p>\n<h3>Dosya \u0130zinlerini Ayarlama<\/h3>\n<p>WordPress&#8217;in do\u011fru \u00e7al\u0131\u015fmas\u0131 ve dosya y\u00fcklemeleri gibi i\u015flemler yapabilmesi i\u00e7in do\u011fru dosya izinlerine sahip olmas\u0131 gerekir:<\/p>\n<pre><code>sudo chown -R www-data:www-data \/var\/www\/example.com\/html\nsudo find \/var\/www\/example.com\/html -type d -exec chmod 755 {} \\;\nsudo find \/var\/www\/example.com\/html -type f -exec chmod 644 {} \\;<\/code><\/pre>\n<p>Bu komutlar, <code>www-data<\/code> kullan\u0131c\u0131s\u0131na (Nginx ve PHP-FPM&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131) dosyalar\u0131n sahipli\u011fini verir ve dizinler i\u00e7in 755, dosyalar i\u00e7in 644 izinlerini ayarlar. Bu, hem g\u00fcvenlik hem de i\u015flevsellik i\u00e7in \u00f6nemlidir.<\/p>\n<h3>WordPress Kurulumunu Tamamlama<\/h3>\n<p>T\u00fcm bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, web taray\u0131c\u0131n\u0131zdan alan ad\u0131n\u0131z\u0131 (\u00f6rne\u011fin, <code>http:\/\/example.com<\/code> veya <code>https:\/\/example.com<\/code>) ziyaret edin. WordPress&#8217;in ho\u015f geldiniz ekran\u0131n\u0131 g\u00f6rmelisiniz. Buradan dil se\u00e7iminizi yap\u0131p site ba\u015fl\u0131\u011f\u0131, y\u00f6netici kullan\u0131c\u0131 ad\u0131, parola ve e-posta adresi gibi bilgileri girerek WordPress kurulumunu tamamlayabilirsiniz.<\/p>\n<h3>WordPress Y\u00f6netimi ve Bak\u0131m\u0131 \u0130\u00e7in \u0130pu\u00e7lar\u0131<\/h3>\n<ul>\n<li><strong>D\u00fczenli G\u00fcncellemeler:<\/strong> WordPress \u00e7ekirde\u011fini, temalar\u0131n\u0131 ve eklentilerini d\u00fczenli olarak g\u00fcncelleyerek g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131n ve yeni \u00f6zelliklerden faydalan\u0131n.<\/li>\n<li><strong>Yedeklemeler:<\/strong> Veritaban\u0131n\u0131z\u0131 ve WordPress dosyalar\u0131n\u0131z\u0131 d\u00fczenli olarak yedekleyin. Herhangi bir felaket durumunda verilerinizi kurtarabilmek i\u00e7in bu kritik \u00f6neme sahiptir.<\/li>\n<li><strong>G\u00fcvenlik Eklentileri:<\/strong> Wordfence veya Sucuri gibi g\u00fcvenlik eklentileri kullanarak sitenizi k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131mlara ve sald\u0131r\u0131lara kar\u015f\u0131 koruyun.<\/li>\n<li><strong>\u00d6nbellekleme Eklentileri:<\/strong> WP Super Cache veya W3 Total Cache gibi \u00f6nbellekleme eklentileri kullanarak sitenizin y\u00fcklenme h\u0131z\u0131n\u0131 art\u0131r\u0131n ve sunucu \u00fczerindeki y\u00fck\u00fc azalt\u0131n.<\/li>\n<li><strong>PHP S\u00fcr\u00fcm\u00fc:<\/strong> M\u00fcmk\u00fcn oldu\u011funca en g\u00fcncel ve desteklenen PHP s\u00fcr\u00fcm\u00fcn\u00fc kullan\u0131n. WordPress, daha yeni PHP s\u00fcr\u00fcmlerinde daha h\u0131zl\u0131 ve g\u00fcvenli \u00e7al\u0131\u015f\u0131r.<\/li>\n<\/ul>\n<p>Bu ad\u0131mlar\u0131 takip ederek LEMP stack&#8217;iniz \u00fczerinde g\u00fc\u00e7l\u00fc, g\u00fcvenli ve performansl\u0131 bir WordPress sitesi \u00e7al\u0131\u015ft\u0131rabilirsiniz. Ger\u00e7ek d\u00fcnya senaryolar\u0131nda bu t\u00fcr kurulumlar, geli\u015ftiricilere ve i\u015fletmelere b\u00fcy\u00fck esneklik ve kontrol sa\u011flar.<\/p>\n<h2>Sonu\u00e7: LEMP Stack ile G\u00fc\u00e7l\u00fc Bir Ba\u015flang\u0131\u00e7<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, Ubuntu 16.04 \u00fczerinde Linux, Nginx, MySQL ve PHP&#8217;den olu\u015fan LEMP stack&#8217;i ba\u015far\u0131yla kurmay\u0131 ve yap\u0131land\u0131rmay\u0131 \u00f6\u011frendiniz. Sunucunuzu haz\u0131rlamaktan ba\u015flayarak, her bir bile\u015fenin kurulumuna, temel yap\u0131land\u0131rmalar\u0131na, g\u00fcvenlik ayarlar\u0131na ve performans optimizasyonlar\u0131na kadar her ad\u0131m\u0131 detayl\u0131ca inceledik. Ayr\u0131ca, ger\u00e7ek d\u00fcnya senaryosu olarak pop\u00fcler WordPress platformunu LEMP stack \u00fczerinde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 da g\u00f6rd\u00fcn\u00fcz.<\/p>\n<p>LEMP stack, modern web uygulamalar\u0131 ve y\u00fcksek trafikli web siteleri i\u00e7in e\u015fsiz bir performans, esneklik ve kararl\u0131l\u0131k sunar. Nginx&#8217;in olay tabanl\u0131 mimarisi, MySQL&#8217;in g\u00fcvenilir veritaban\u0131 y\u00f6netimi ve PHP-FPM&#8217;nin verimli dinamik i\u00e7erik i\u015fleme yetenekleri bir araya geldi\u011finde, projeleriniz i\u00e7in sa\u011flam bir temel olu\u015fturur. Bu rehberdeki bilgileri uygulayarak, web projelerinizi hayata ge\u00e7irmek i\u00e7in gerekli olan temel altyap\u0131y\u0131 g\u00fcvenle kurabilirsiniz. Unutmay\u0131n, sunucu y\u00f6netimi s\u00fcrekli bir \u00f6\u011frenme ve iyile\u015ftirme s\u00fcrecidir. D\u00fczenli g\u00fcncellemeler, g\u00fcvenlik denetimleri ve performans izleme, web sunucunuzun uzun vadeli sa\u011fl\u0131\u011f\u0131 i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p><strong>1. Ubuntu 16.04 yerine daha yeni bir Ubuntu s\u00fcr\u00fcm\u00fc kullanabilir miyim?<\/strong><\/p>\n<p>Evet, kesinlikle! Bu rehber Ubuntu 16.04&#8217;e odaklanm\u0131\u015f olsa da, LEMP stack kurulumu ad\u0131mlar\u0131 Ubuntu 18.04, 20.04 veya 22.04 gibi daha yeni s\u00fcr\u00fcmlerde de benzerdir. Yaln\u0131zca PHP s\u00fcr\u00fcm numaralar\u0131 (\u00f6rne\u011fin, <code>php7.0-fpm<\/code> yerine <code>php7.4-fpm<\/code> veya <code>php8.1-fpm<\/code>) ve baz\u0131 paket adlar\u0131nda k\u00fc\u00e7\u00fck farkl\u0131l\u0131klar olabilir. Her zaman en g\u00fcncel LTS (Long Term Support) s\u00fcr\u00fcm\u00fcn\u00fc kullanman\u0131z tavsiye edilir, \u00e7\u00fcnk\u00fc daha uzun s\u00fcreli g\u00fcvenlik g\u00fcncellemeleri ve daha yeni yaz\u0131l\u0131m paketleri sunarlar.<\/p>\n<p><strong>2. Nginx yerine Apache kullanabilir miyim?<\/strong><\/p>\n<p>Evet, kullanabilirsiniz. E\u011fer web sunucusu olarak Apache&#8217;yi tercih ederseniz, bu durumda stack&#8217;iniz LAMP (Linux, Apache, MySQL, PHP) olarak adland\u0131r\u0131l\u0131r. Apache, Nginx&#8217;e g\u00f6re daha fazla mod\u00fcl esnekli\u011fi ve <code>.htaccess<\/code> dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla dizin baz\u0131nda yap\u0131land\u0131rma imkan\u0131 sunar. Ancak Nginx, \u00f6zellikle y\u00fcksek e\u015f zamanl\u0131 ba\u011flant\u0131 say\u0131lar\u0131 ve statik i\u00e7erik sunumu konusunda genellikle daha performansl\u0131d\u0131r. Kurulum ad\u0131mlar\u0131, Apache ve PHP&#8217;nin Apache mod\u00fcl\u00fc (<code>libapache2-mod-php<\/code>) olarak kurulmas\u0131n\u0131 gerektirecektir.<\/p>\n<p><strong>3. MySQL yerine ba\u015fka bir veritaban\u0131 sistemi kullanabilir miyim?<\/strong><\/p>\n<p>Evet, MySQL yerine PostgreSQL veya MariaDB gibi alternatif veritaban\u0131 y\u00f6netim sistemlerini kullanabilirsiniz. MariaDB, MySQL&#8217;in topluluk taraf\u0131ndan geli\u015ftirilen bir fork&#8217;udur ve genellikle MySQL ile y\u00fcksek d\u00fczeyde uyumludur, ancak baz\u0131 performans iyile\u015ftirmeleri ve ek \u00f6zellikler sunar. PostgreSQL ise daha karma\u015f\u0131k veri yap\u0131lar\u0131 ve kurumsal d\u00fczeyde uygulamalar i\u00e7in g\u00fc\u00e7l\u00fc bir alternatiftir. Se\u00e7iminiz, projenizin \u00f6zel gereksinimlerine ve tercihlerinize ba\u011fl\u0131 olacakt\u0131r.<\/p>\n<p><strong>4. Kurulum s\u0131ras\u0131nda bir hata al\u0131rsam ne yapmal\u0131y\u0131m?<\/strong><\/p>\n<p>Kurulum s\u0131ras\u0131nda bir hata al\u0131rsan\u0131z, \u00f6ncelikle hata mesaj\u0131n\u0131 dikkatlice okuyun. Genellikle hata mesaj\u0131, sorunun k\u00f6keni hakk\u0131nda ipu\u00e7lar\u0131 verir. \u015eunlar\u0131 deneyebilirsiniz:<\/p>\n<ul>\n<li>Komutlar\u0131 do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun.<\/li>\n<li>\u0130nternet ba\u011flant\u0131n\u0131z\u0131n aktif oldu\u011fundan emin olun.<\/li>\n<li><code>sudo apt update<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131rarak paket listelerinizi g\u00fcncelleyin.<\/li>\n<li>Hata mesaj\u0131n\u0131 kopyalay\u0131p arama motorlar\u0131nda (Google, Stack Overflow vb.) aray\u0131n. B\u00fcy\u00fck olas\u0131l\u0131kla ba\u015fkalar\u0131 da benzer sorunlarla kar\u015f\u0131la\u015fm\u0131\u015ft\u0131r ve \u00e7\u00f6z\u00fcmleri mevcuttur.<\/li>\n<li>Servislerin durumunu kontrol edin (<code>systemctl status nginx<\/code>, <code>systemctl status mysql<\/code>, <code>systemctl status php7.0-fpm<\/code>).<\/li>\n<li>Log dosyalar\u0131n\u0131 kontrol edin (<code>\/var\/log\/nginx\/error.log<\/code>, <code>\/var\/log\/mysql\/error.log<\/code>, <code>\/var\/log\/php7.0-fpm.log<\/code>).<\/li>\n<\/ul>\n<p><strong>5. LEMP stack&#8217;i kurduktan sonra web siteme nas\u0131l eri\u015febilirim?<\/strong><\/p>\n<p>E\u011fer bir alan ad\u0131n\u0131z varsa ve DNS kay\u0131tlar\u0131n\u0131z\u0131 sunucunuzun IP adresine y\u00f6nlendirdiyseniz, taray\u0131c\u0131n\u0131za <code>http:\/\/alanadiniz.com<\/code> veya <code>https:\/\/alanadiniz.com<\/code> yazarak eri\u015febilirsiniz. E\u011fer bir alan ad\u0131n\u0131z yoksa veya DNS hen\u00fcz g\u00fcncellenmediyse, do\u011frudan sunucunuzun genel IP adresini (\u00f6rne\u011fin, <code>http:\/\/YOUR_SERVER_IP<\/code>) taray\u0131c\u0131n\u0131za yazarak web sitenize eri\u015febilirsiniz. Nginx yap\u0131land\u0131rman\u0131zda <code>server_name<\/code> y\u00f6nergesini do\u011fru bir \u015fekilde ayarlad\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04&#8217;te LEMP Stack Kurulumu: Ad\u0131m Ad\u0131m Rehber Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu&hellip;","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":[1],"tags":[],"class_list":{"0":"post-39219","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?<\/title>\n<meta name=\"description\" content=\"Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack&#039;i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.\" \/>\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\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?\" \/>\n<meta property=\"og:description\" content=\"Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack&#039;i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-16T17:21:19+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=\"34 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?\",\"datePublished\":\"2026-02-16T17:21:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\"},\"wordCount\":5763,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\",\"name\":\"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-16T17:21:19+00:00\",\"description\":\"Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack'i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?\"}]},{\"@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":"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?","description":"Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack'i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.","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\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?","og_description":"Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack'i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.","og_url":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-16T17:21:19+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"34 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?","datePublished":"2026-02-16T17:21:19+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/"},"wordCount":5763,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/","name":"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-16T17:21:19+00:00","description":"Web sitenizi veya uygulaman\u0131z\u0131 y\u00fcksek performansla yay\u0131nlamak m\u0131 istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack'i kurmak, bu hedefe ula\u015fman\u0131n en etkili yollar\u0131ndan biridir. Bu kapsaml\u0131 rehber, LEMP kurulumunu ba\u015ftan sona ad\u0131m ad\u0131m a\u00e7\u0131klayarak web projenizi hayata ge\u00e7irmenize yard\u0131mc\u0131 olacak.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/giris-web-projeleriniz-icin-neden-lemp-stack-tercih-etmelisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Giri\u015f: Web Projeleriniz \u0130\u00e7in Neden LEMP Stack Tercih Etmelisiniz?"}]},{"@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\/39219","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=39219"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39219\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}