{"id":33325,"date":"2025-11-01T15:41:08","date_gmt":"2025-11-01T12:41:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33325"},"modified":"2025-11-01T15:41:08","modified_gmt":"2025-11-01T12:41:08","slug":"laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","title":{"rendered":"Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Modern web geli\u015ftirmenin vazge\u00e7ilmez ara\u00e7lar\u0131ndan biri haline gelen Laravel, g\u00fc\u00e7l\u00fc ve zarif s\u00f6zdizimi sayesinde PHP ile web uygulamalar\u0131 geli\u015ftirmeyi olduk\u00e7a kolayla\u015ft\u0131ran pop\u00fcler bir PHP framework&#8217;\u00fcd\u00fcr. Y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir uygulamalar olu\u015fturmak i\u00e7in ideal bir se\u00e7enektir. Bu makalede, Laravel 8&#8217;i Ubuntu 18.04 i\u015fletim sistemi \u00fczerinde Nginx web sunucusu, MySQL veritaban\u0131 ve PHP (LEMP y\u0131\u011f\u0131n\u0131) ile nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<p>LEMP (Linux, Nginx, MySQL, PHP) y\u0131\u011f\u0131n\u0131, \u00f6zellikle y\u00fcksek trafikli web uygulamalar\u0131 i\u00e7in performans, g\u00fcvenlik ve esneklik sunan g\u00fc\u00e7l\u00fc bir kombinasyondur. Nginx, hafif yap\u0131s\u0131 ve olay tabanl\u0131 mimarisi sayesinde e\u015f zamanl\u0131 ba\u011flant\u0131lar\u0131 etkin bir \u015fekilde y\u00f6netebilirken, PHP-FFPM (FastCGI Process Manager) ile birlikte \u00e7al\u0131\u015farak PHP uygulamalar\u0131na h\u0131zl\u0131 yan\u0131t s\u00fcreleri sa\u011flar. Ubuntu 18.04 LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fc ise kararl\u0131l\u0131\u011f\u0131 ve geni\u015f paket deste\u011fi ile sunucu ortamlar\u0131 i\u00e7in g\u00fcvenilir bir temel sunar.<\/p>\n<p>Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli sistem y\u00f6neticileri i\u00e7in kapsaml\u0131 bir kaynak olmay\u0131 hedeflemektedir. Her ad\u0131m, a\u00e7\u0131k komutlar ve a\u00e7\u0131klamalarla desteklenecek, b\u00f6ylece Laravel uygulaman\u0131z\u0131 sorunsuz bir \u015fekilde yay\u0131na alabileceksiniz.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131n\u0131zdan emin olun:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu:<\/strong> Yeni kurulmu\u015f bir Ubuntu 18.04 LTS i\u015fletim sistemine sahip bir sunucuya (fiziksel, sanal makine veya VPS) ihtiyac\u0131n\u0131z var.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> Sunucuya SSH \u00fczerinden ba\u011flanabilmeniz gerekmektedir.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Kurulumlar\u0131 ger\u00e7ekle\u015ftirmek i\u00e7in <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z olmal\u0131d\u0131r.<br \/>\n*   <strong>Alan Ad\u0131 (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong> Laravel uygulaman\u0131z\u0131 bir alan ad\u0131 \u00fczerinden yay\u0131nlamak istiyorsan\u0131z, alan ad\u0131n\u0131z\u0131n sunucunuzun IP adresine y\u00f6nlendirilmi\u015f olmas\u0131 gerekir. Test ama\u00e7l\u0131 kurulumlar i\u00e7in alan ad\u0131 zorunlu de\u011fildir, do\u011frudan IP adresi \u00fczerinden de eri\u015fim sa\u011flayabilirsiniz.<\/p>\n<h3>Ubuntu 18.04 Sistemini G\u00fcncelleme<\/h3>\n<p>Kurulum i\u015flemine ba\u015flamadan \u00f6nce, sunucunuzdaki paket listelerini ve y\u00fckl\u00fc paketleri en g\u00fcncel s\u00fcr\u00fcmlerine y\u00fckseltmek her zaman iyi bir uygulamad\u0131r. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve yaz\u0131l\u0131m uyumsuzluklar\u0131n\u0131 \u00f6nler.<\/p>\n<p>SSH \u00fczerinden sunucunuza ba\u011flan\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y\nsudo apt dist-upgrade -y\nsudo apt autoremove -y<\/code><\/pre>\n<p>*   <code>sudo apt update<\/code>: Paket listelerini g\u00fcnceller.<br \/>\n*   <code>sudo apt upgrade -y<\/code>: Y\u00fckl\u00fc paketleri g\u00fcncel listelere g\u00f6re y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verir.<br \/>\n*   <code>sudo apt dist-upgrade -y<\/code>: Yeni ba\u011f\u0131ml\u0131l\u0131klar\u0131 veya de\u011fi\u015fen ba\u011f\u0131ml\u0131l\u0131klar\u0131 olan paketleri y\u00fckseltir.<br \/>\n*   <code>sudo apt autoremove -y<\/code>: Art\u0131k ihtiya\u00e7 duyulmayan ba\u011f\u0131ml\u0131l\u0131k paketlerini kald\u0131r\u0131r.<\/p>\n<p>Bu i\u015flemler tamamland\u0131ktan sonra, sisteminiz g\u00fcncel ve kuruluma haz\u0131r hale gelecektir.<\/p>\n<h3>Nginx Kurulumu<\/h3>\n<p>Nginx, LEMP y\u0131\u011f\u0131n\u0131n\u0131n &#8220;E&#8221; harfini temsil eder ve hafif, y\u00fcksek performansl\u0131 bir web sunucusudur. Laravel uygulamalar\u0131n\u0131z i\u00e7in statik dosyalar\u0131 h\u0131zl\u0131 bir \u015fekilde sunarken, dinamik PHP i\u00e7eri\u011fini PHP-FPM&#8217;ye y\u00f6nlendirecektir.<\/p>\n<p>Nginx&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Nginx servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in durumunu kontrol edebilirsiniz:<\/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, <code>sudo systemctl start nginx<\/code> komutuyla ba\u015flatabilirsiniz.<\/p>\n<p><strong>Firewall (UFW) Yap\u0131land\u0131rmas\u0131:<\/strong><br \/>\nUbuntu&#8217;da varsay\u0131lan olarak gelen UFW (Uncomplicated Firewall) etkinse, Nginx&#8217;in gelen ba\u011flant\u0131lar\u0131 kabul etmesi i\u00e7in firewall&#8217;da izin vermeniz gerekmektedir. Nginx, UFW ile entegre profillerle gelir.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx Full'\nsudo ufw enable # E\u011fer firewall etkin de\u011filse etkinle\u015ftirir\nsudo ufw status # Firewall durumunu kontrol eder<\/code><\/pre>\n<p><code>Nginx Full<\/code> profili, hem HTTP (port 80) hem de HTTPS (port 443) trafi\u011fine izin verir. E\u011fer sadece HTTP kullanacaksan\u0131z <code>Nginx HTTP<\/code> yeterli olacakt\u0131r.<\/p>\n<p>Taray\u0131c\u0131n\u0131zda sunucunuzun IP adresini ziyaret ederek Nginx&#8217;in ba\u015far\u0131yla kuruldu\u011funu do\u011frulayabilirsiniz. &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>MySQL Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>MySQL, Laravel uygulaman\u0131z\u0131n verilerini depolayaca\u011f\u0131 ili\u015fkisel veritaban\u0131 y\u00f6netim sistemidir.<\/p>\n<p>MySQL sunucusunu kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install mysql-server -y<\/code><\/pre>\n<p>Kurulumdan sonra, MySQL&#8217;i daha g\u00fcvenli hale getirmek i\u00e7in <code>mysql_secure_installation<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131rman\u0131z \u015fiddetle tavsiye edilir:<\/p>\n<pre><code class=\"language-bash\">sudo mysql_secure_installation<\/code><\/pre>\n<p>Bu betik size bir dizi soru soracakt\u0131r:<\/p>\n<p>1.  <strong>VALIDATE PASSWORD COMPONENT:<\/strong> G\u00fc\u00e7l\u00fc parola politikas\u0131 bile\u015fenini etkinle\u015ftirmek isteyip istemedi\u011finiz sorulur. Genellikle <code>Y<\/code> se\u00e7ene\u011fiyle etkinle\u015ftirmek iyi bir uygulamad\u0131r. Ard\u0131ndan parolan\u0131z\u0131n karma\u015f\u0131kl\u0131k seviyesini se\u00e7meniz istenir (0, 1 veya 2).<br \/>\n2.  <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 parola belirleyin ve onaylay\u0131n. Bu parola, veritaban\u0131 y\u00f6netimi i\u00e7in kullan\u0131lacakt\u0131r.<br \/>\n3.  <strong>Remove anonymous users? [Y\/n]:<\/strong> <code>Y<\/code> ile anonim kullan\u0131c\u0131lar\u0131 kald\u0131r\u0131n. Bu, g\u00fcvenlik i\u00e7in \u00f6nemlidir.<br \/>\n4.  <strong>Disallow root login remotely? [Y\/n]:<\/strong> <code>Y<\/code> ile root kullan\u0131c\u0131s\u0131n\u0131n uzaktan ba\u011flanmas\u0131n\u0131 engelleyin. Bu da g\u00fcvenlik i\u00e7in \u00f6nemlidir.<br \/>\n5.  <strong>Remove test database and access to it? [Y\/n]:<\/strong> <code>Y<\/code> ile test veritaban\u0131n\u0131 kald\u0131r\u0131n.<br \/>\n6.  <strong>Reload privilege tables now? [Y\/n]:<\/strong> <code>Y<\/code> ile ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fckleyin.<\/p>\n<p><strong>Laravel \u0130\u00e7in Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma:<\/strong><br \/>\nLaravel uygulaman\u0131z i\u00e7in \u00f6zel bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturmak, g\u00fcvenlik ve organizasyon a\u00e7\u0131s\u0131ndan en iyi uygulamad\u0131r.<\/p>\n<p>MySQL kabu\u011funa root kullan\u0131c\u0131s\u0131 olarak ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mysql -u root -p<\/code><\/pre>\n<p>Parolan\u0131z\u0131 girmenizi isteyecektir (\u00f6nceki ad\u0131mda belirledi\u011finiz root parolas\u0131).<\/p>\n<p>\u015eimdi a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak Laravel uygulaman\u0131z i\u00e7in bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturun. <code>laravel_db<\/code>, <code>laravel_user<\/code> ve <code>your_strong_password<\/code> k\u0131s\u0131mlar\u0131n\u0131 kendi tercihlerinize g\u00f6re de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'laravel_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';\nGRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<p>*   <code>CREATE DATABASE<\/code>: Yeni bir veritaban\u0131 olu\u015fturur. <code>utf8mb4<\/code> ve <code>utf8mb4_unicode_ci<\/code> karakter setleri, emoji ve di\u011fer uluslararas\u0131 karakterleri desteklemek i\u00e7in \u00f6nemlidir.<br \/>\n*   <code>CREATE USER<\/code>: Yeni bir kullan\u0131c\u0131 olu\u015fturur. <code>@'localhost'<\/code> ifadesi, kullan\u0131c\u0131n\u0131n yaln\u0131zca yerel sunucudan ba\u011flanabilece\u011fi anlam\u0131na gelir.<br \/>\n*   <code>IDENTIFIED WITH mysql_native_password BY 'your_strong_password'<\/code>: MySQL 8 ve \u00fczeri s\u00fcr\u00fcmlerde varsay\u0131lan kimlik do\u011frulama eklentisi <code>caching_sha2_password<\/code>&#8216;dur. Laravel&#8217;in kulland\u0131\u011f\u0131 PHP MySQL s\u00fcr\u00fcc\u00fcs\u00fc bu eklentiyi desteklemeyebilir. Bu nedenle, <code>mysql_native_password<\/code> kullanmak uyumluluk sorunlar\u0131n\u0131 \u00f6nler.<br \/>\n*   <code>GRANT ALL PRIVILEGES<\/code>: Olu\u015fturulan kullan\u0131c\u0131ya belirli veritaban\u0131 \u00fczerinde tam yetki verir.<br \/>\n*   <code>FLUSH PRIVILEGES<\/code>: Ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fckleyerek de\u011fi\u015fikliklerin hemen etkili olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>EXIT<\/code>: MySQL kabu\u011fundan \u00e7\u0131kar.<\/p>\n<h3>PHP Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Laravel, PHP ile yaz\u0131lm\u0131\u015f bir framework oldu\u011fundan, sunucunuzda PHP&#8217;nin kurulu ve do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekmektedir. Laravel 8, PHP 7.3 veya daha y\u00fcksek bir s\u00fcr\u00fcm\u00fcn\u00fc gerektirir. Ubuntu 18.04 varsay\u0131lan olarak PHP 7.2 ile geldi\u011fi i\u00e7in, daha yeni bir PHP s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin PHP 7.4) kurmak i\u00e7in bir PPA (Personal Package Archive) eklememiz gerekecek.<\/p>\n<p><strong>PPA Ekleme ve PHP 7.4 Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install software-properties-common -y\nsudo add-apt-repository ppa:ondrej\/php -y\nsudo apt update<\/code><\/pre>\n<p>\u015eimdi PHP 7.4&#8217;\u00fc ve Laravel i\u00e7in gerekli olan uzant\u0131lar\u0131 PHP-FPM ile birlikte kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-mbstring php7.4-zip php7.4-bcmath php7.4-gd php7.4-curl php7.4-cli php7.4-json -y<\/code><\/pre>\n<p>*   <code>php7.4-fpm<\/code>: Nginx&#8217;in PHP kodunu i\u015flemesi i\u00e7in gerekli olan FastCGI Process Manager.<br \/>\n*   Di\u011fer uzant\u0131lar: Laravel&#8217;in \u00e7e\u015fitli i\u015flevleri (veritaban\u0131 ba\u011flant\u0131s\u0131, XML i\u015fleme, \u00e7ok baytl\u0131 dizeler, s\u0131k\u0131\u015ft\u0131rma, matematiksel i\u015flemler, g\u00f6rsel i\u015fleme, HTTP istekleri vb.) i\u00e7in gerekli olan uzant\u0131lard\u0131r.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, PHP-FPM servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status php7.4-fpm<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz.<\/p>\n<p><strong>PHP Yap\u0131land\u0131rmas\u0131 (php.ini):<\/strong><br \/>\nLaravel uygulamalar\u0131n\u0131n performans\u0131n\u0131 ve i\u015fleyi\u015fini optimize etmek i\u00e7in <code>php.ini<\/code> dosyas\u0131nda baz\u0131 ayarlar\u0131 d\u00fczenlemek faydal\u0131 olabilir.<\/p>\n<p><code>php.ini<\/code> dosyas\u0131n\u0131 d\u00fczenlemek i\u00e7in nano gibi bir metin d\u00fczenleyici kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/php\/7.4\/fpm\/php.ini<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki ayarlar\u0131 bulun ve de\u011ferlerini projenizin ihtiya\u00e7lar\u0131na g\u00f6re art\u0131r\u0131n (\u00f6rnek de\u011ferler verilmi\u015ftir):<\/p>\n<p>*   <code>upload_max_filesize = 64M<\/code><br \/>\n*   <code>post_max_size = 64M<\/code><br \/>\n*   <code>memory_limit = 256M<\/code><br \/>\n*   <code>max_execution_time = 300<\/code><\/p>\n<p>De\u011fi\u015fiklikleri kaydedin (Ctrl+O, Enter) ve d\u00fczenleyiciden \u00e7\u0131k\u0131n (Ctrl+X).<\/p>\n<p>Yap\u0131lan de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in PHP-FPM servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart php7.4-fpm<\/code><\/pre>\n<h3>Composer Kurulumu<\/h3>\n<p>Composer, PHP i\u00e7in bir ba\u011f\u0131ml\u0131l\u0131k y\u00f6neticisidir. Laravel ve di\u011fer PHP projeleri, ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek i\u00e7in Composer&#8217;\u0131 kullan\u0131r. Laravel&#8217;i kurmak i\u00e7in Composer&#8217;a ihtiyac\u0131m\u0131z var.<\/p>\n<p>Composer&#8217;\u0131 indirmek ve kurmak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">curl -sS https:\/\/getcomposer.org\/installer | php\nsudo mv composer.phar \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>\u0130lk komut, Composer y\u00fckleyicisini indirir ve \u00e7al\u0131\u015ft\u0131r\u0131r. \u0130kinci komut ise indirilen <code>composer.phar<\/code> dosyas\u0131n\u0131 sistem genelinde kullan\u0131labilir hale getirmek i\u00e7in <code>\/usr\/local\/bin\/composer<\/code> konumuna ta\u015f\u0131r.<\/p>\n<p>Composer&#8217;\u0131n ba\u015far\u0131yla kuruldu\u011funu do\u011frulamak i\u00e7in s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin:<\/p>\n<pre><code class=\"language-bash\">composer --version<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da Composer s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6rmelisiniz.<\/p>\n<h3>Laravel 8 Kurulumu<\/h3>\n<p>Art\u0131k t\u00fcm LEMP bile\u015fenleri ve Composer haz\u0131r oldu\u011funa g\u00f6re, Laravel 8 projemizi olu\u015fturabiliriz.<\/p>\n<p><strong>Web K\u00f6k Dizinini Olu\u015fturma:<\/strong><br \/>\nLaravel projenizi bar\u0131nd\u0131racak bir dizin olu\u015fturun. G\u00fcvenlik ve d\u00fczen a\u00e7\u0131s\u0131ndan <code>\/var\/www\/<\/code> dizini alt\u0131nda bir alt dizin olu\u015fturmak iyi bir uygulamad\u0131r. Alan ad\u0131n\u0131z\u0131 kullanarak bir dizin ad\u0131 se\u00e7in, \u00f6rne\u011fin <code>your_domain<\/code>:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/your_domain<\/code><\/pre>\n<p>Ard\u0131ndan, bu dizinin sahibini mevcut SSH kullan\u0131c\u0131n\u0131za atay\u0131n, b\u00f6ylece Laravel dosyalar\u0131n\u0131 olu\u015ftururken izin sorunlar\u0131 ya\u015famazs\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R $USER:$USER \/var\/www\/your_domain<\/code><\/pre>\n<p><strong>Laravel Projesini Olu\u015fturma:<\/strong><br \/>\n\u015eimdi olu\u015fturdu\u011funuz dizine gidin ve Composer kullanarak yeni bir Laravel projesi olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/your_domain\ncomposer create-project laravel\/laravel .<\/code><\/pre>\n<p><code>composer create-project laravel\/laravel .<\/code> komutundaki nokta (<code>.<\/code>) i\u015fareti, Laravel&#8217;in mevcut dizine kurulmas\u0131n\u0131 sa\u011flar. Bu i\u015flem biraz zaman alabilir, Composer gerekli t\u00fcm Laravel ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 indirecektir.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, Laravel projenizin ana dizininde oldu\u011funuzdan emin olun.<\/p>\n<p><strong>Uygulama Anahtar\u0131 Olu\u015fturma:<\/strong><br \/>\nLaravel, oturumlar ve di\u011fer hassas veriler i\u00e7in bir uygulama anahtar\u0131 (application key) gerektirir. Bu anahtar, <code>.env<\/code> dosyas\u0131nda bulunur ve otomatik olarak olu\u015fturulur. E\u011fer olu\u015fturulmad\u0131ysa veya de\u011fi\u015ftirmeniz gerekirse, a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">php artisan key:generate<\/code><\/pre>\n<p>Bu komut, <code>.env<\/code> dosyas\u0131ndaki <code>APP_KEY<\/code> de\u011ferini rastgele bir dizeyle g\u00fcncelleyecektir.<\/p>\n<h3>Nginx Sanal Host Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx&#8217;in Laravel uygulaman\u0131z\u0131 do\u011fru bir \u015fekilde sunabilmesi i\u00e7in bir sanal host (server block) yap\u0131land\u0131rmas\u0131 olu\u015fturman\u0131z gerekmektedir.<\/p>\n<p>Yeni bir Nginx yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun. Yine, alan ad\u0131n\u0131z\u0131 kullanarak bir dosya ad\u0131 se\u00e7mek iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/your_domain<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi dosyaya yap\u0131\u015ft\u0131r\u0131n. <code>your_domain<\/code> ve <code>www.your_domain<\/code> k\u0131s\u0131mlar\u0131n\u0131 kendi alan ad\u0131n\u0131zla, <code>\/var\/www\/your_domain<\/code> k\u0131sm\u0131n\u0131 ise Laravel projenizin diziniyle de\u011fi\u015ftirmeyi unutmay\u0131n:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name your_domain www.your_domain; # Alan ad\u0131n\u0131z\u0131 buraya yaz\u0131n\n    root \/var\/www\/your_domain\/public; # Laravel projenizin public dizini\n\n    add_header X-Frame-Options \"SAMEORIGIN\";\n    add_header X-XSS-Protection \"1; mode=block\";\n    add_header X-Content-Type-Options \"nosniff\";\n\n    index index.php index.html index.htm;\n\n    charset utf-8;\n\n    location \/ {\n        try_files $uri $uri\/ \/index.php?$query_string;\n    }\n\n    location = \/favicon.ico { access_log off; log_not_found off; }\n    location = \/robots.txt  { access_log off; log_not_found off; }\n\n    error_page 404 \/index.php;\n\n    location ~ \\.php$ {\n        fastcgi_pass unix:\/var\/run\/php\/php7.4-fpm.sock; # PHP-FPM soket yolu\n        fastcgi_index index.php;\n        fastcgi_buffers 16 16k;\n        fastcgi_buffer_size 32k;\n        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n\n    location ~ \/\\.(?!well-known).* {\n        deny all;\n    }\n}<\/code><\/pre>\n<p><strong>Yap\u0131land\u0131rma Dosyas\u0131n\u0131n A\u00e7\u0131klamas\u0131:<\/strong><\/p>\n<p>*   <strong><code>listen 80;<\/code><\/strong>: Nginx&#8217;in HTTP trafi\u011fini dinleyece\u011fi portu belirtir.<br \/>\n*   <strong><code>server_name your_domain www.your_domain;<\/code><\/strong>: Bu sanal hostun hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir.<br \/>\n*   <strong><code>root \/var\/www\/your_domain\/public;<\/code><\/strong>: Laravel uygulamas\u0131n\u0131n herkese a\u00e7\u0131k (public) dizinini i\u015faret eder. T\u00fcm web istekleri bu dizin \u00fczerinden kar\u015f\u0131lan\u0131r.<br \/>\n*   <strong><code>add_header ...<\/code><\/strong>: G\u00fcvenlik ama\u00e7l\u0131 HTTP ba\u015fl\u0131klar\u0131 ekler.<br \/>\n*   <strong><code>index index.php ...<\/code><\/strong>: Varsay\u0131lan dizin dosyalar\u0131n\u0131 belirtir.<br \/>\n*   <strong><code>location \/ { ... }<\/code><\/strong>: T\u00fcm istekler i\u00e7in ana yap\u0131land\u0131rma blo\u011fudur. <code>try_files<\/code> y\u00f6nergesi, gelen iste\u011fin \u00f6nce bir dosya, sonra bir dizin olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Hi\u00e7biri bulunamazsa, iste\u011fi <code>index.php<\/code>&#8216;ye y\u00f6nlendirir. Bu, Laravel&#8217;in &#8220;temiz URL&#8221; (clean URL) yap\u0131s\u0131 i\u00e7in hayati \u00f6neme sahiptir.<br \/>\n*   <strong><code>location ~ \\.php$ { ... }<\/code><\/strong>: <code>.php<\/code> uzant\u0131l\u0131 dosyalar i\u00e7in \u00f6zel bir blo\u011fa sahiptir. Bu blok, PHP isteklerini PHP-FPM&#8217;ye (Unix soketi \u00fczerinden) iletir. <code>fastcgi_param SCRIPT_FILENAME<\/code> y\u00f6nergesi, PHP-FPM&#8217;nin do\u011fru dosyay\u0131 i\u015flemesini sa\u011flar.<br \/>\n<em>   <strong><code>location ~ \/\\.(?!well-known).<\/em> { deny all; }<\/code><\/strong>: Gizli dosyalar\u0131n (\u00f6rn. <code>.env<\/code>, <code>.git<\/code>) do\u011frudan eri\u015fimini engeller.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedin (Ctrl+O, Enter) ve d\u00fczenleyiciden \u00e7\u0131k\u0131n (Ctrl+X).<\/p>\n<p><strong>Sanal Hostu Etkinle\u015ftirme:<\/strong><br \/>\nOlu\u015fturdu\u011funuz yap\u0131land\u0131rma dosyas\u0131n\u0131 Nginx&#8217;in etkinle\u015ftirilmi\u015f siteler dizinine sembolik bir ba\u011flant\u0131 (symlink) olu\u015fturarak etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/your_domain \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakman\u0131z da iyi bir fikirdir, b\u00f6ylece \u00e7ak\u0131\u015fmalar\u0131 \u00f6nlersiniz:<\/p>\n<pre><code class=\"language-bash\">sudo unlink \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p><strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Ba\u015flatma:<\/strong><br \/>\nDe\u011fi\u015fiklikleri uygulamadan \u00f6nce Nginx yap\u0131land\u0131rman\u0131z\u0131n s\u00f6zdizimsel olarak do\u011fru oldu\u011funu test edin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>test is successful<\/code> mesaj\u0131n\u0131 g\u00f6r\u00fcrseniz, Nginx servisini yeniden ba\u015flatarak yeni yap\u0131land\u0131rmay\u0131 y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>Art\u0131k taray\u0131c\u0131n\u0131zda alan ad\u0131n\u0131z\u0131 (veya sunucunuzun IP adresini) ziyaret etti\u011finizde, Laravel&#8217;in varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Laravel \u0130zinlerini Ayarlama<\/h3>\n<p>Laravel, baz\u0131 dizinlerine web sunucusunun (Nginx&#8217;in alt\u0131nda \u00e7al\u0131\u015fan <code>www-data<\/code> kullan\u0131c\u0131s\u0131) yazma iznine sahip olmas\u0131n\u0131 gerektirir. Bu dizinler <code>storage<\/code> ve <code>bootstrap\/cache<\/code>&#8216;dir.<\/p>\n<p>A\u015fa\u011f\u0131daki komutlarla gerekli izinleri ayarlay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/your_domain\nsudo chmod -R 775 \/var\/www\/your_domain\/storage\nsudo chmod -R 775 \/var\/www\/your_domain\/bootstrap\/cache<\/code><\/pre>\n<p>*   <code>sudo chown -R www-data:www-data \/var\/www\/your_domain<\/code>: Laravel projesinin t\u00fcm dizin ve dosyalar\u0131n\u0131n sahibini ve grubunu <code>www-data<\/code> olarak de\u011fi\u015ftirir. Bu, Nginx&#8217;in bu dosyalara eri\u015febilmesini sa\u011flar.<br \/>\n*   <code>sudo chmod -R 775 \/var\/www\/your_domain\/storage<\/code>: <code>storage<\/code> dizinine ve alt\u0131ndaki t\u00fcm dosya ve dizinlere <code>775<\/code> izni verir. Bu, sahibin (www-data), grubun (www-data) okuma, yazma, \u00e7al\u0131\u015ft\u0131rma iznine, di\u011fer kullan\u0131c\u0131lar\u0131n ise okuma ve \u00e7al\u0131\u015ft\u0131rma iznine sahip olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>sudo chmod -R 775 \/var\/www\/your_domain\/bootstrap\/cache<\/code>: Ayn\u0131 izinleri <code>bootstrap\/cache<\/code> dizinine de uygular.<\/p>\n<p>Bu izinler, Laravel&#8217;in log dosyalar\u0131n\u0131 yazabilmesi, \u00f6nbellek dosyalar\u0131n\u0131 olu\u015fturabilmesi ve di\u011fer \u00e7al\u0131\u015fma zaman\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirebilmesi i\u00e7in gereklidir.<\/p>\n<h3>Veritaban\u0131 Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Laravel uygulaman\u0131z\u0131n MySQL veritaban\u0131n\u0131zla ileti\u015fim kurabilmesi i\u00e7in <code>.env<\/code> dosyas\u0131n\u0131 d\u00fczenlemeniz gerekmektedir. Bu dosya, uygulama ortam\u0131 de\u011fi\u015fkenlerini i\u00e7erir.<\/p>\n<p>Laravel projenizin ana dizininde bulunan <code>.env<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/your_domain\/.env<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki veritaban\u0131 ba\u011flant\u0131 bilgilerini, daha \u00f6nce MySQL kurulumunda olu\u015fturdu\u011funuz veritaban\u0131 ad\u0131, kullan\u0131c\u0131 ad\u0131 ve parolas\u0131yla g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-ini\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=laravel_db\nDB_USERNAME=laravel_user\nDB_PASSWORD=your_strong_password<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedin ve dosyay\u0131 kapat\u0131n.<\/p>\n<p><strong>Veritaban\u0131 Migration&#8217;lar\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rma (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong><br \/>\nE\u011fer Laravel&#8217;in varsay\u0131lan kullan\u0131c\u0131 tablosunu ve di\u011fer migration&#8217;lar\u0131n\u0131 olu\u015fturmak isterseniz, a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<p>Bu komut, <code>.env<\/code> dosyas\u0131ndaki veritaban\u0131 bilgilerini kullanarak veritaban\u0131n\u0131zda gerekli tablolar\u0131 olu\u015fturacakt\u0131r.<\/p>\n<h3>G\u00fcvenlik \u00d6nlemleri (SSL\/TLS &#8211; Let&#8217;s Encrypt)<\/h3>\n<p>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 pop\u00fcler bir hizmettir. Certbot arac\u0131 ile bu sertifikalar\u0131 kolayca al\u0131p yap\u0131land\u0131rabilirsiniz.<\/p>\n<p><strong>Certbot Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install certbot python3-certbot-nginx -y<\/code><\/pre>\n<p><strong>SSL Sertifikas\u0131 Alma:<\/strong><br \/>\nCertbot&#8217;u Nginx ile entegre ederek sertifika almak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n. <code>your_domain<\/code> ve <code>www.your_domain<\/code> k\u0131s\u0131mlar\u0131n\u0131 kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d your_domain -d www.your_domain<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Certbot size baz\u0131 sorular soracakt\u0131r:<\/p>\n<p>1.  E-posta adresinizi girmeniz istenecektir (bildirimler ve kay\u0131p anahtarlar i\u00e7in).<br \/>\n2.  Hizmet \u015fartlar\u0131n\u0131 kabul etmeniz istenecektir.<br \/>\n3.  E-posta adresinizi Let&#8217;s Encrypt ortaklar\u0131yla payla\u015fmak isteyip istemedi\u011finiz sorulacakt\u0131r.<br \/>\n4.  Nginx yap\u0131land\u0131rman\u0131zda HTTP trafi\u011fini otomatik olarak HTTPS&#8217;ye y\u00f6nlendirmek isteyip istemedi\u011finiz sorulacakt\u0131r. Genellikle <code>2<\/code> se\u00e7ene\u011fi (redirect) tercih edilir.<\/p>\n<p>Certbot, sertifikay\u0131 ba\u015far\u0131yla edindikten ve Nginx yap\u0131land\u0131rman\u0131z\u0131 g\u00fcncelledikten sonra bir onay mesaj\u0131 g\u00f6sterecektir.<\/p>\n<p><strong>Otomatik Yenileme Testi:<\/strong><br \/>\nLet&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir ve otomatik olarak yenilenmesi gerekir. Certbot, bu yenilemeyi otomatik olarak halleden bir cronjob olu\u015fturur. Yenileme i\u015fleminin d\u00fczg\u00fcn \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>E\u011fer herhangi bir hata mesaj\u0131 almazsan\u0131z, otomatik yenileme d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<p>Art\u0131k web sitenize <code>https:\/\/your_domain<\/code> adresinden g\u00fcvenli bir \u015fekilde eri\u015febilirsiniz.<\/p>\n<h3>Firewall Yap\u0131land\u0131rmas\u0131 (UFW)<\/h3>\n<p>Sunucunuzun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in UFW (Uncomplicated Firewall) kullanmak \u00f6nemlidir. Daha \u00f6nce Nginx i\u00e7in izinler verdik, ancak genel bir kontrol yapmak faydal\u0131 olacakt\u0131r.<\/p>\n<p>UFW&#8217;nin etkinle\u015ftirildi\u011finden emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>SSH ba\u011flant\u0131s\u0131na izin verin (e\u011fer daha \u00f6nce vermediyseniz, aksi takdirde ba\u011flant\u0131n\u0131z kesilebilir):<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH<\/code><\/pre>\n<p>Nginx i\u00e7in HTTP ve HTTPS trafi\u011fine izin verildi\u011finden emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx Full' # Hem HTTP hem HTTPS i\u00e7in<\/code><\/pre>\n<p>Firewall&#8217;\u0131n mevcut durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da SSH, Nginx HTTP ve Nginx HTTPS (veya Nginx Full) i\u00e7in izinlerin listelendi\u011fini g\u00f6rmelisiniz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Tebrikler! Laravel 8 uygulaman\u0131z\u0131 Ubuntu 18.04 sunucusu \u00fczerinde Nginx (LEMP y\u0131\u011f\u0131n\u0131) ile ba\u015far\u0131yla kurdunuz ve yap\u0131land\u0131rd\u0131n\u0131z. Bu kapsaml\u0131 rehber, sistem g\u00fcncellemelerinden ba\u015flayarak Nginx, MySQL, PHP, Composer ve Laravel kurulumuna, Nginx sanal host yap\u0131land\u0131rmas\u0131na, dosya izinlerinin ayarlanmas\u0131na, veritaban\u0131 ba\u011flant\u0131s\u0131na ve hatta SSL sertifikas\u0131 entegrasyonuna kadar t\u00fcm \u00f6nemli ad\u0131mlar\u0131 i\u00e7ermektedir.<\/p>\n<p>Art\u0131k Laravel projenizi geli\u015ftirmeye ba\u015flayabilir, veritaban\u0131 migration&#8217;lar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilir, controller&#8217;lar, route&#8217;lar ve view&#8217;lar olu\u015fturarak dinamik web uygulamalar\u0131 in\u015fa edebilirsiniz. Unutmay\u0131n ki sunucu y\u00f6netimi s\u00fcrekli bir s\u00fcre\u00e7tir; d\u00fczenli g\u00fcncellemeler yapmak, g\u00fcvenlik yamalar\u0131n\u0131 uygulamak ve yedekleme stratejileri olu\u015fturmak, uygulaman\u0131z\u0131n kararl\u0131l\u0131\u011f\u0131 ve g\u00fcvenli\u011fi i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<p>Bu yap\u0131land\u0131rma, k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli Laravel uygulamalar\u0131 i\u00e7in sa\u011flam bir temel sunar. Daha b\u00fcy\u00fck ve y\u00fcksek trafikli uygulamalar i\u00e7in ek optimizasyonlar (\u00f6nbellekleme, y\u00fck dengeleme, CDN kullan\u0131m\u0131 vb.) ve izleme ara\u00e7lar\u0131 d\u00fc\u015f\u00fcn\u00fclmelidir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\nGiri\u015f\nModern web geli\u015ftirmenin vazge\u00e7ilmez ara\u00e7lar\u0131ndan biri ha","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-33325","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>Laravel 8&#039;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - 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\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel 8&#039;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"Laravel 8&#039;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f Modern web geli\u015ftirmenin vazge\u00e7ilmez ara\u00e7lar\u0131ndan biri ha\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-01T12:41:08+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=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2025-11-01T12:41:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\"},\"wordCount\":2757,\"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\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\",\"name\":\"Laravel 8'i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-01T12:41:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\"}]},{\"@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":"Laravel 8'i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - 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\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Laravel 8'i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131","og_description":"Laravel 8'i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f Modern web geli\u015ftirmenin vazge\u00e7ilmez ara\u00e7lar\u0131ndan biri ha","og_url":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-01T12:41:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131","datePublished":"2025-11-01T12:41:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/"},"wordCount":2757,"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\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","name":"Laravel 8'i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-01T12:41:08+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-8i-nginx-lemp-ile-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel 8&#8217;i Nginx (LEMP) ile Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131"}]},{"@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\/33325","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=33325"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33325\/revisions"}],"predecessor-version":[{"id":33326,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33325\/revisions\/33326"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}