{"id":35042,"date":"2025-11-25T06:40:45","date_gmt":"2025-11-25T03:40:45","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35042"},"modified":"2025-11-25T06:40:45","modified_gmt":"2025-11-25T03:40:45","slug":"laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/","title":{"rendered":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma"},"content":{"rendered":"<p><body><\/p>\n<h2>Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fczde web uygulamalar\u0131n\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131, ba\u015far\u0131l\u0131 bir proje i\u00e7in kritik \u00f6neme sahiptir. Laravel, modern ve g\u00fc\u00e7l\u00fc bir PHP framework&#8217;\u00fc olarak geli\u015ftiricilere karma\u015f\u0131k uygulamalar\u0131 kolayca olu\u015fturma imkan\u0131 sunarken, Nginx y\u00fcksek performansl\u0131 bir web sunucusu olarak bu uygulamalar\u0131n d\u00fcnya genelinde eri\u015filebilir olmas\u0131n\u0131 sa\u011flar. Ubuntu 16.04 ise uzun s\u00fcreli destek (LTS) sunan, kararl\u0131 ve yayg\u0131n olarak kullan\u0131lan bir i\u015fletim sistemi da\u011f\u0131t\u0131m\u0131d\u0131r. Bu makalede, bir Laravel uygulamas\u0131n\u0131 Ubuntu 16.04 i\u015fletim sistemi \u00fczerinde Nginx web sunucusu ve PHP-FPM kullanarak nas\u0131l ad\u0131m ad\u0131m da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<p>Bu rehber, sunucu y\u00f6netimi ve Laravel hakk\u0131nda temel bilgilere sahip oldu\u011funuzu varsaymaktad\u0131r. Amac\u0131m\u0131z, uygulaman\u0131z\u0131 \u00fcretim ortam\u0131na ta\u015f\u0131rken kar\u015f\u0131la\u015fabilece\u011finiz t\u00fcm temel ad\u0131mlar\u0131 ve olas\u0131 sorunlar\u0131 kapsayarak size kapsaml\u0131 bir yol haritas\u0131 sunmakt\u0131r.<\/p>\n<h2>\u00d6n Gereksinimler<\/h2>\n<p>Bu da\u011f\u0131t\u0131m s\u00fcrecine ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimlere sahip oldu\u011funuzdan emin olun:<\/p>\n<p>*   <strong>Ubuntu 16.04 Sunucu:<\/strong> SSH eri\u015fimi olan, root veya sudo yetkilerine sahip bir Ubuntu 16.04 sunucusuna ihtiyac\u0131n\u0131z var. Dijital Ocean, AWS, Google Cloud gibi bulut sa\u011flay\u0131c\u0131lar\u0131ndan veya kendi \u00f6zel sunucunuzdan birini kullanabilirsiniz.<br \/>\n*   <strong>Alan Ad\u0131:<\/strong> Uygulaman\u0131za eri\u015fmek i\u00e7in bir alan ad\u0131 (\u00f6rne\u011fin, <code>ornekuygulama.com<\/code>) ve bu alan ad\u0131n\u0131n sunucunuzun IP adresine y\u00f6nlendirilmi\u015f olmas\u0131 \u00f6nerilir. Bu, \u00f6zellikle SSL\/TLS sertifikas\u0131 kurarken \u00f6nemlidir.<br \/>\n*   <strong>Temel Linux Komut Bilgisi:<\/strong> <code>cd<\/code>, <code>ls<\/code>, <code>mkdir<\/code>, <code>nano<\/code> veya <code>vi<\/code> gibi temel Linux komutlar\u0131na a\u015fina olman\u0131z s\u00fcreci kolayla\u015ft\u0131racakt\u0131r.<br \/>\n*   <strong>Git (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong> Uygulaman\u0131z\u0131 bir Git deposundan (GitHub, GitLab, Bitbucket vb.) klonlamak i\u00e7in Git&#8217;in kurulu olmas\u0131 i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 h\u0131zland\u0131racakt\u0131r.<br \/>\n*   <strong>SSH \u0130stemcisi:<\/strong> Sunucunuza ba\u011flanmak i\u00e7in bir SSH istemcisi (Linux\/macOS i\u00e7in Terminal, Windows i\u00e7in PuTTY veya WSL) gereklidir.<\/p>\n<h2>Sistemi G\u00fcncelleme ve Temel Paketleri Kurma<\/h2>\n<p>Sunucuya ilk ba\u011fland\u0131\u011f\u0131n\u0131zda, sisteminizin g\u00fcncel oldu\u011fundan ve gerekli temel paketlere sahip oldu\u011fundan emin olmak her zaman iyi bir uygulamad\u0131r.<\/p>\n<p>SSH ile sunucunuza ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">ssh kullanici_adi@sunucu_ip_adresi<\/code><\/pre>\n<p>Sistemi g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Bu komutlar, paket listelerini g\u00fcnceller ve mevcut t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir. Ard\u0131ndan, Laravel uygulamas\u0131n\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek ve dosyalar\u0131 i\u015flemek i\u00e7in gerekli olabilecek baz\u0131 temel ara\u00e7lar\u0131 kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y unzip curl git<\/code><\/pre>\n<p>*   <code>unzip<\/code>: S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f dosyalar\u0131 a\u00e7mak i\u00e7in.<br \/>\n*   <code>curl<\/code>: Web istekleri yapmak ve Composer&#8217;\u0131 indirmek i\u00e7in.<br \/>\n*   <code>git<\/code>: Laravel projenizi bir Git deposundan klonlamak i\u00e7in.<\/p>\n<h2>PHP ve Gerekli Uzant\u0131lar\u0131 Kurma<\/h2>\n<p>Laravel bir PHP framework&#8217;\u00fc oldu\u011fu i\u00e7in sunucuda PHP&#8217;nin kurulu olmas\u0131 ve Nginx ile ileti\u015fim kurabilmesi i\u00e7in PHP-FPM (FastCGI Process Manager) kullan\u0131lmas\u0131 gerekmektedir. Ubuntu 16.04 varsay\u0131lan olarak PHP 7.0 s\u00fcr\u00fcm\u00fcn\u00fc destekler. Laravel&#8217;in modern s\u00fcr\u00fcmleri daha yeni PHP s\u00fcr\u00fcmleri gerektirse de, Ubuntu 16.04&#8217;\u00fcn varsay\u0131lan deposundan PHP 7.0\/7.1 kurmak genellikle bu da\u011f\u0131t\u0131m i\u00e7in en stabil se\u00e7enektir. Daha yeni bir PHP s\u00fcr\u00fcm\u00fc i\u00e7in PPA (Personal Package Archive) eklemeniz gerekebilir, ancak bu rehberde Ubuntu 16.04&#8217;\u00fcn varsay\u0131lan depolar\u0131ndaki PHP 7.0&#8217;\u0131 kullanaca\u011f\u0131z.<\/p>\n<h3>PHP-FPM Kurulumu<\/h3>\n<p>A\u015fa\u011f\u0131daki komut ile PHP 7.0 ve Laravel i\u00e7in gerekli olan temel uzant\u0131lar\u0131 kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y php7.0-fpm php7.0-mbstring php7.0-xml php7.0-bcmath php7.0-mysql php7.0-zip php7.0-gd php7.0-cli php7.0-json php7.0-opcache<\/code><\/pre>\n<p>Kurulan uzant\u0131lar\u0131n k\u0131sa a\u00e7\u0131klamalar\u0131:<br \/>\n*   <code>php7.0-fpm<\/code>: Nginx ile PHP kodunu i\u015flemek i\u00e7in ana bile\u015fen.<br \/>\n*   <code>php7.0-mbstring<\/code>: \u00c7ok baytl\u0131 dizeleri i\u015flemek i\u00e7in (Laravel i\u00e7in \u00f6nemli).<br \/>\n*   <code>php7.0-xml<\/code>: XML verilerini i\u015flemek i\u00e7in.<br \/>\n*   <code>php7.0-bcmath<\/code>: Y\u00fcksek hassasiyetli matematik fonksiyonlar\u0131 i\u00e7in.<br \/>\n*   <code>php7.0-mysql<\/code>: MySQL veritaban\u0131 ba\u011flant\u0131s\u0131 i\u00e7in.<br \/>\n*   <code>php7.0-zip<\/code>: Zip dosyalar\u0131n\u0131 okuma\/yazma yetene\u011fi i\u00e7in.<br \/>\n*   <code>php7.0-gd<\/code>: G\u00f6r\u00fcnt\u00fc i\u015fleme k\u00fct\u00fcphanesi (genellikle resim y\u00fcklemeleri i\u00e7in).<br \/>\n*   <code>php7.0-cli<\/code>: Komut sat\u0131r\u0131ndan PHP \u00e7al\u0131\u015ft\u0131rmak i\u00e7in (<code>php artisan<\/code> komutlar\u0131 i\u00e7in).<br \/>\n*   <code>php7.0-json<\/code>: JSON verilerini i\u015flemek i\u00e7in.<br \/>\n*   <code>php7.0-opcache<\/code>: PHP kodunun performans\u0131n\u0131 art\u0131rmak i\u00e7in.<\/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 start php7.0-fpm\nsudo systemctl enable php7.0-fpm\nsudo systemctl status php7.0-fpm<\/code><\/pre>\n<h3>PHP-FPM Ayarlar\u0131<\/h3>\n<p>PHP-FPM&#8217;nin temel ayarlar\u0131n\u0131 <code>php.ini<\/code> dosyas\u0131nda d\u00fczenleyerek uygulaman\u0131z\u0131n gereksinimlerine g\u00f6re optimize edebilirsiniz. Yayg\u0131n olarak de\u011fi\u015ftirilen ayarlar \u015funlard\u0131r: <code>memory_limit<\/code>, <code>upload_max_filesize<\/code>, <code>post_max_size<\/code>, <code>max_execution_time<\/code>.<\/p>\n<p>PHP 7.0 i\u00e7in <code>php.ini<\/code> dosyas\u0131 genellikle <code>\/etc\/php\/7.0\/fpm\/php.ini<\/code> konumundad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/php\/7.0\/fpm\/php.ini<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki de\u011ferleri uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re ayarlay\u0131n:<\/p>\n<pre><code class=\"language-ini\">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 servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart php7.0-fpm<\/code><\/pre>\n<h2>Nginx Kurulumu ve Temel Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Nginx, y\u00fcksek performansl\u0131 ve hafif bir web sunucusudur. Laravel uygulamalar\u0131 i\u00e7in statik dosyalar\u0131 h\u0131zl\u0131 bir \u015fekilde sunarken, dinamik istekleri PHP-FPM&#8217;e y\u00f6nlendirerek m\u00fckemmel bir kombinasyon olu\u015fturur.<\/p>\n<h3>Nginx Kurulumu<\/h3>\n<p>Nginx&#8217;i a\u015fa\u011f\u0131daki komutla kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y nginx<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra Nginx servisinin ba\u015flad\u0131\u011f\u0131ndan ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak \u00e7al\u0131\u015facak \u015fekilde ayarland\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx\nsudo systemctl enable nginx\nsudo systemctl status nginx<\/code><\/pre>\n<h3>Firewall Ayarlar\u0131 (UFW)<\/h3>\n<p>Ubuntu&#8217;da varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall) ile sunucunuzun g\u00fcvenli\u011fini art\u0131rabilirsiniz. Nginx&#8217;in web trafi\u011fini alabilmesi i\u00e7in HTTP (80) ve HTTPS (443) portlar\u0131n\u0131 a\u00e7man\u0131z gerekir. Ayr\u0131ca SSH (22) portunun da a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw allow 'Nginx HTTP'\nsudo ufw allow 'Nginx HTTPS' # E\u011fer SSL kuracaksan\u0131z\nsudo ufw enable\nsudo ufw status<\/code><\/pre>\n<p><code>sudo ufw enable<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, mevcut SSH ba\u011flant\u0131n\u0131z\u0131n kesilebilece\u011fi konusunda bir uyar\u0131 alabilirsiniz. E\u011fer SSH portunu do\u011fru bir \u015fekilde a\u00e7t\u0131\u011f\u0131n\u0131zdan eminseniz <code>y<\/code> yazarak devam edebilirsiniz.<\/p>\n<p>Taray\u0131c\u0131n\u0131zda sunucunuzun IP adresini ziyaret etti\u011finizde &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmeniz gerekir.<\/p>\n<h2>MySQL Veritaban\u0131 Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Laravel uygulamalar\u0131 genellikle verilerini depolamak i\u00e7in bir veritaban\u0131na ihtiya\u00e7 duyar. Bu rehberde MySQL kullanaca\u011f\u0131z.<\/p>\n<h3>MySQL Kurulumu<\/h3>\n<p>MySQL sunucusunu a\u015fa\u011f\u0131daki komutla kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y mysql-server<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda MySQL root kullan\u0131c\u0131s\u0131 i\u00e7in bir \u015fifre belirlemeniz istenebilir. G\u00fc\u00e7l\u00fc bir \u015fifre belirledi\u011finizden emin olun.<\/p>\n<h3>G\u00fcvenli Kurulum<\/h3>\n<p>MySQL kurulumunu daha g\u00fcvenli hale getirmek i\u00e7in <code>mysql_secure_installation<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mysql_secure_installation<\/code><\/pre>\n<p>Bu betik size a\u015fa\u011f\u0131daki sorular\u0131 soracakt\u0131r:<br \/>\n*   <strong>VALIDATE PASSWORD PLUGIN:<\/strong> G\u00fc\u00e7l\u00fc parola eklentisini etkinle\u015ftirmek isteyip istemedi\u011finiz. \u00dcretim ortamlar\u0131 i\u00e7in \u00f6nerilir.<br \/>\n*   <strong>Change the root password?<\/strong>: Daha \u00f6nce belirledi\u011finiz root \u015fifresini de\u011fi\u015ftirmek isteyip istemedi\u011finiz.<br \/>\n*   <strong>Remove anonymous users?<\/strong>: Anonim kullan\u0131c\u0131lar\u0131 kald\u0131rmak. Evet se\u00e7in.<br \/>\n*   <strong>Disallow root login remotely?<\/strong>: Root kullan\u0131c\u0131s\u0131n\u0131n uzaktan ba\u011flanmas\u0131n\u0131 engellemek. Evet se\u00e7in.<br \/>\n*   <strong>Remove test database and access to it?<\/strong>: &#8220;test&#8221; veritaban\u0131n\u0131 kald\u0131rmak. Evet se\u00e7in.<br \/>\n*   <strong>Reload privilege tables now?<\/strong>: Ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fcklemek. Evet se\u00e7in.<\/p>\n<h3>Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma<\/h3>\n<p>Laravel uygulaman\u0131z i\u00e7in \u00f6zel bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturmak iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r. Root kullan\u0131c\u0131 olarak MySQL&#8217;e ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mysql -u root -p<\/code><\/pre>\n<p>\u015eifrenizi girin. Ard\u0131ndan a\u015fa\u011f\u0131daki SQL komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak veritaban\u0131n\u0131z\u0131 ve kullan\u0131c\u0131n\u0131z\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'guclu_sifreniz';\nGRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<p><code>laravel_db<\/code>, <code>laravel_user<\/code> ve <code>guclu_sifreniz<\/code> de\u011ferlerini kendi projenize uygun \u015fekilde de\u011fi\u015ftirin.<\/p>\n<h2>Laravel Uygulamas\u0131n\u0131 Sunucuya Y\u00fckleme ve Haz\u0131rlama<\/h2>\n<p>\u015eimdi Laravel uygulaman\u0131z\u0131 sunucuya ta\u015f\u0131ma ve gerekli ayarlamalar\u0131 yapma zaman\u0131.<\/p>\n<h3>Uygulamay\u0131 Klonlama<\/h3>\n<p>Uygulaman\u0131z\u0131 genellikle <code>\/var\/www<\/code> dizini alt\u0131na da\u011f\u0131tmak iyi bir uygulamad\u0131r. Bu dizini olu\u015fturun ve projenizi buraya klonlay\u0131n (veya SCP ile y\u00fckleyin).<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/ornekuygulama.com\nsudo chown -R $USER:$USER \/var\/www\/ornekuygulama.com\ncd \/var\/www\/ornekuygulama.com\ngit clone https:\/\/github.com\/your_username\/your_laravel_repo.git . # . ile mevcut dizine klonla<\/code><\/pre>\n<p><code>your_username\/your_laravel_repo.git<\/code> k\u0131sm\u0131n\u0131 kendi Git deponuzun URL&#8217;si ile de\u011fi\u015ftirin. E\u011fer projenizi klonlamadan \u00f6nce <code>ornekuygulama.com<\/code> dizini i\u00e7ine girdiyseniz, <code>.<\/code> kullanarak mevcut dizine klonlayabilirsiniz.<\/p>\n<h3>Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Y\u00fckleme (Composer)<\/h3>\n<p>Laravel&#8217;in ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek i\u00e7in Composer&#8217;a ihtiyac\u0131m\u0131z var. E\u011fer Composer sunucunuzda kurulu de\u011filse, a\u015fa\u011f\u0131daki komutlarla kurun:<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/ornekuygulama.com # Proje dizinine gidin\ncurl -sS https:\/\/getcomposer.org\/installer | php\nsudo mv composer.phar \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>\u015eimdi Composer&#8217;\u0131 kullanarak Laravel projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">composer install --no-dev --optimize-autoloader<\/code><\/pre>\n<p><code>--no-dev<\/code> geli\u015ftirme ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 atlar, <code>--optimize-autoloader<\/code> ise daha h\u0131zl\u0131 y\u00fckleme i\u00e7in otomatik y\u00fckleyiciyi optimize eder.<\/p>\n<h3>\u00c7evre De\u011fi\u015fkenlerini Yap\u0131land\u0131rma<\/h3>\n<p>Laravel, uygulama ayarlar\u0131n\u0131 <code>.env<\/code> dosyas\u0131nda tutar. Bu dosyay\u0131 projenizin k\u00f6k dizininde olu\u015fturman\u0131z ve yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">cp .env.example .env\nnano .env<\/code><\/pre>\n<p><code>.env<\/code> dosyas\u0131n\u0131 a\u00e7t\u0131ktan sonra a\u015fa\u011f\u0131daki temel ayarlar\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-ini\">APP_NAME=LaravelApp\nAPP_ENV=production\nAPP_KEY= # A\u015fa\u011f\u0131daki komutla olu\u015fturulacak\nAPP_DEBUG=false\nAPP_URL=http:\/\/ornekuygulama.com\n\nDB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=laravel_db\nDB_USERNAME=laravel_user\nDB_PASSWORD=guclu_sifreniz<\/code><\/pre>\n<p><code>APP_URL<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirin. <code>DB_DATABASE<\/code>, <code>DB_USERNAME<\/code>, <code>DB_PASSWORD<\/code> de\u011ferlerini MySQL kurulumu s\u0131ras\u0131nda belirledi\u011finiz bilgilerle doldurun.<\/p>\n<p><code>APP_KEY<\/code> de\u011ferini olu\u015fturmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">php artisan key:generate<\/code><\/pre>\n<h3>Dizin \u0130zinlerini Ayarlama<\/h3>\n<p>Laravel, <code>storage<\/code> ve <code>bootstrap\/cache<\/code> dizinlerine yazma eri\u015fimi gerektirir. Nginx ve PHP-FPM&#8217;nin bu dizinlere eri\u015febilmesi i\u00e7in do\u011fru izinleri ayarlaman\u0131z \u00e7ok \u00f6nemlidir. Genellikle, web sunucusunun (Nginx) ve PHP-FPM&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131n\u0131n (Ubuntu&#8217;da <code>www-data<\/code>) bu dizinlere sahip olmas\u0131 veya yazma iznine sahip olmas\u0131 gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/ornekuygulama.com\/storage\nsudo chown -R www-data:www-data \/var\/www\/ornekuygulama.com\/bootstrap\/cache\nsudo chmod -R 775 \/var\/www\/ornekuygulama.com\/storage\nsudo chmod -R 775 \/var\/www\/ornekuygulama.com\/bootstrap\/cache<\/code><\/pre>\n<p>Bu komutlar, <code>storage<\/code> ve <code>bootstrap\/cache<\/code> dizinlerinin sahipli\u011fini <code>www-data<\/code> kullan\u0131c\u0131s\u0131na ve grubuna verir ve onlara okuma\/yazma\/\u00e7al\u0131\u015ft\u0131rma izni sa\u011flar.<\/p>\n<h3>Veritaban\u0131 Migrasyonlar\u0131 ve Seed (\u0130ste\u011fe Ba\u011fl\u0131)<\/h3>\n<p>Veritaban\u0131 tablolar\u0131n\u0131z\u0131 olu\u015fturmak ve varsa ba\u015flang\u0131\u00e7 verilerini eklemek i\u00e7in Laravel&#8217;in Artisan komutlar\u0131n\u0131 kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">php artisan migrate --force\n<h2>php artisan db:seed # E\u011fer ba\u015flang\u0131\u00e7 verileriniz varsa<\/code><\/pre>\n<\/h2>\n<p><code>--force<\/code> bayra\u011f\u0131, \u00fcretim ortam\u0131nda migrasyonlar\u0131 \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce onay istemini atlar.<\/p>\n<h3>Depolama Ba\u011flant\u0131s\u0131 Olu\u015fturma<\/h3>\n<p>E\u011fer uygulaman\u0131zda <code>public\/storage<\/code> dizinine sembolik bir ba\u011flant\u0131 gerekiyorsa (\u00f6rne\u011fin, <code>storage<\/code> klas\u00f6r\u00fcne y\u00fcklenen kullan\u0131c\u0131 dosyalar\u0131 i\u00e7in), a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">php artisan storage:link<\/code><\/pre>\n<h2>Nginx ile Laravel \u0130\u00e7in Sanal Host Yap\u0131land\u0131rmas\u0131<\/h2>\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 gerekir.<\/p>\n<h3>Yeni Bir Sunucu Blo\u011fu Olu\u015fturma<\/h3>\n<p>Nginx yap\u0131land\u0131rma dosyalar\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bulunur. Yeni bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/ornekuygulama.com<\/code><\/pre>\n<h3>Nginx Yap\u0131land\u0131rma \u0130\u00e7eri\u011fi<\/h3>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi dosyaya yap\u0131\u015ft\u0131r\u0131n. <code>ornekuygulama.com<\/code> ve <code>\/var\/www\/ornekuygulama.com\/public<\/code> yollar\u0131n\u0131 kendi projenize g\u00f6re g\u00fcncelleyin.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name ornekuygulama.com www.ornekuygulama.com;\n    root \/var\/www\/ornekuygulama.com\/public;\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.0-fpm.sock; # PHP-FPM soket yolu\n        fastcgi_index index.php;\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>A\u00e7\u0131klamalar:<\/strong><br \/>\n*   <code>listen 80<\/code>: Nginx&#8217;in 80 numaral\u0131 HTTP portunu dinlemesini sa\u011flar.<br \/>\n*   <code>server_name<\/code>: Alan ad\u0131n\u0131z\u0131 belirtir. Birden fazla alan ad\u0131 veya alt alan ad\u0131 ekleyebilirsiniz.<br \/>\n*   <code>root<\/code>: Laravel uygulaman\u0131z\u0131n <code>public<\/code> dizinini i\u015faret eder. Nginx, web&#8217;den eri\u015filebilen dosyalar\u0131 buradan sunar.<br \/>\n*   <code>location \/<\/code>: T\u00fcm gelen istekler i\u00e7in Laravel&#8217;in <code>index.php<\/code> dosyas\u0131n\u0131 kullan\u0131r. Bu, Laravel&#8217;in URL y\u00f6nlendirme mekanizmas\u0131 i\u00e7in \u00f6nemlidir (<code>try_files<\/code> direktifi).<br \/>\n*   <code>location ~ \\.php$<\/code>: PHP dosyalar\u0131na gelen istekleri PHP-FPM&#8217;e y\u00f6nlendirir. <code>fastcgi_pass unix:\/var\/run\/php\/php7.0-fpm.sock;<\/code> k\u0131sm\u0131, PHP-FPM ile Nginx aras\u0131ndaki ileti\u015fimi sa\u011flayan soket dosyas\u0131n\u0131n yolunu belirtir. Ubuntu 16.04&#8217;te bu yol genellikle <code>\/var\/run\/php\/php7.0-fpm.sock<\/code> \u015feklindedir.<\/p>\n<h3>Yap\u0131land\u0131rmay\u0131 Etkinle\u015ftirme ve Test Etme<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra, bunu <code>sites-enabled<\/code> dizinine sembolik bir ba\u011flant\u0131 olu\u015fturarak etkinle\u015ftirin. Ayr\u0131ca, varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/ornekuygulama.com \/etc\/nginx\/sites-enabled\/\nsudo 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 class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>test is successful<\/code> mesaj\u0131n\u0131 al\u0131rsan\u0131z, Nginx servisini yeniden ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>\u015eimdi taray\u0131c\u0131n\u0131zdan <code>http:\/\/ornekuygulama.com<\/code> adresine giderek Laravel uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz.<\/p>\n<h2>G\u00fcvenlik \u0130yile\u015ftirmeleri<\/h2>\n<p>Uygulaman\u0131z\u0131 canl\u0131ya ald\u0131ktan sonra g\u00fcvenlik her zaman \u00f6ncelikli olmal\u0131d\u0131r.<\/p>\n<h3>UFW ile Port G\u00fcvenli\u011fi<\/h3>\n<p>Daha \u00f6nce UFW&#8217;yi etkinle\u015ftirdik ve temel portlar\u0131 a\u00e7t\u0131k. \u0130htiya\u00e7 duymad\u0131\u011f\u0131n\u0131z portlar\u0131 kapal\u0131 tutmak iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r. <code>sudo ufw status<\/code> komutuyla a\u00e7\u0131k portlar\u0131 kontrol edebilirsiniz.<\/p>\n<h3>SSH G\u00fcvenli\u011fi<\/h3>\n<p>*   <strong>Root Giri\u015fini Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong> <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek <code>PermitRootLogin no<\/code> olarak ayarlay\u0131n ve SSH servisini yeniden ba\u015flat\u0131n.<br \/>\n*   <strong>Parola Kimlik Do\u011frulamas\u0131n\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong> Anahtar tabanl\u0131 kimlik do\u011frulamas\u0131n\u0131 kullan\u0131n ve <code>PasswordAuthentication no<\/code> olarak ayarlay\u0131n.<br \/>\n*   <strong>Varsay\u0131lan SSH Portunu De\u011fi\u015ftirme:<\/strong> 22 numaral\u0131 port yerine farkl\u0131 bir port kullanmak, otomatik sald\u0131r\u0131lar\u0131 azaltabilir.<\/p>\n<h3>SSL\/TLS \u015eifrelemesi (Let&#8217;s Encrypt ile)<\/h3>\n<p>Web sitenizin g\u00fcvenli\u011fini art\u0131rmak ve SEO s\u0131ralamalar\u0131n\u0131 iyile\u015ftirmek i\u00e7in HTTPS kullanmak \u015fartt\u0131r. Let&#8217;s Encrypt, \u00fccretsiz SSL\/TLS sertifikalar\u0131 sa\u011flar ve Certbot arac\u0131yla kolayca kurulabilir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y software-properties-common\nsudo add-apt-repository ppa:certbot\/certbot\nsudo apt update\nsudo apt install -y python-certbot-nginx<\/code><\/pre>\n<p>Certbot&#8217;u Nginx ile \u00e7al\u0131\u015facak \u015fekilde kurun:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d ornekuygulama.com -d www.ornekuygulama.com<\/code><\/pre>\n<p>Certbot, e-posta adresi isteyecek ve hizmet \u015fartlar\u0131n\u0131 kabul etmenizi isteyecektir. Ard\u0131ndan, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak HTTPS&#8217;ye y\u00f6nlendirecek \u015fekilde g\u00fcncelleyecektir. Sertifika otomatik olarak yenilenecek \u015fekilde ayarlanacakt\u0131r.<\/p>\n<p>Sertifika kurulumundan sonra <code>APP_URL<\/code> de\u011ferini <code>.env<\/code> dosyas\u0131nda <code>https:\/\/ornekuygulama.com<\/code> olarak g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Da\u011f\u0131t\u0131m s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h3>Dizin \u0130zinleri Hatalar\u0131<\/h3>\n<p>*   <strong>Sorun:<\/strong> Uygulama hatalar\u0131, log dosyalar\u0131na yaz\u0131lamamas\u0131, resim y\u00fckleme sorunlar\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>storage<\/code> ve <code>bootstrap\/cache<\/code> dizinlerinin <code>www-data<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan yaz\u0131labilir oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/ornekuygulama.com\/storage\n    sudo chown -R www-data:www-data \/var\/www\/ornekuygulama.com\/bootstrap\/cache\n    sudo chmod -R 775 \/var\/www\/ornekuygulama.com\/storage\n    sudo chmod -R 775 \/var\/www\/ornekuygulama.com\/bootstrap\/cache<\/code><\/pre>\n<p>    Bazen t\u00fcm proje dizini i\u00e7in sahiplik ve izinleri ayarlamak gerekebilir, ancak dikkatli olun:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/ornekuygulama.com\n    sudo find \/var\/www\/ornekuygulama.com -type f -exec chmod 664 {} \\;\n    sudo find \/var\/www\/ornekuygulama.com -type d -exec chmod 775 {} \\;<\/code><\/pre>\n<h3>Nginx 502 Bad Gateway<\/h3>\n<p>*   <strong>Sorun:<\/strong> Nginx, PHP-FPM ile ileti\u015fim kuram\u0131yor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   PHP-FPM servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>sudo systemctl status php7.0-fpm<\/code>. \u00c7al\u0131\u015fm\u0131yorsa <code>sudo systemctl start php7.0-fpm<\/code> ile ba\u015flat\u0131n.<br \/>\n    *   Nginx sanal host yap\u0131land\u0131rman\u0131zdaki <code>fastcgi_pass<\/code> yolunun (\u00f6rne\u011fin <code>unix:\/var\/run\/php\/php7.0-fpm.sock;<\/code>) do\u011fru oldu\u011fundan ve PHP-FPM&#8217;nin bu soket dosyas\u0131n\u0131 olu\u015fturdu\u011fundan emin olun.<\/p>\n<h3>Nginx 403 Forbidden<\/h3>\n<p>*   <strong>Sorun:<\/strong> Nginx, istenen kayna\u011fa eri\u015fim iznine sahip de\u011fil.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Nginx sanal host yap\u0131land\u0131rman\u0131zdaki <code>root<\/code> direktifinin Laravel uygulaman\u0131z\u0131n <code>public<\/code> dizinini do\u011fru bir \u015fekilde i\u015faret etti\u011finden emin olun.<br \/>\n    *   Proje dizininin ve alt dizinlerinin <code>www-data<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan emin olun.<\/p>\n<h3>Nginx 404 Not Found<\/h3>\n<p>*   <strong>Sorun:<\/strong> Nginx, istenen dosyay\u0131 veya URL&#8217;yi bulam\u0131yor. Laravel&#8217;in y\u00f6nlendirmeleri \u00e7al\u0131\u015fm\u0131yor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Nginx sanal host yap\u0131land\u0131rman\u0131zdaki <code>location \/<\/code> blo\u011funun <code>try_files $uri $uri\/ \/index.php?$query_string;<\/code> sat\u0131r\u0131n\u0131 i\u00e7erdi\u011finden emin olun. Bu, Laravel&#8217;in t\u00fcm istekleri <code>index.php<\/code> \u00fczerinden i\u015flemesini sa\u011flar.<br \/>\n    *   <code>root<\/code> direktifinin do\u011fru oldu\u011fundan emin olun.<\/p>\n<h3>Veritaban\u0131 Ba\u011flant\u0131 Hatalar\u0131<\/h3>\n<p>*   <strong>Sorun:<\/strong> Laravel uygulamas\u0131 veritaban\u0131na ba\u011flanam\u0131yor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <code>.env<\/code> dosyas\u0131ndaki <code>DB_HOST<\/code>, <code>DB_PORT<\/code>, <code>DB_DATABASE<\/code>, <code>DB_USERNAME<\/code>, <code>DB_PASSWORD<\/code> bilgilerinin do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   MySQL servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>sudo systemctl status mysql<\/code>. \u00c7al\u0131\u015fm\u0131yorsa <code>sudo systemctl start mysql<\/code> ile ba\u015flat\u0131n.<br \/>\n    *   MySQL&#8217;e <code>mysql -u laravel_user -p<\/code> komutuyla ba\u011flanarak kullan\u0131c\u0131n\u0131n ve veritaban\u0131n\u0131n do\u011fru bir \u015fekilde olu\u015fturuldu\u011funu ve eri\u015filebilir oldu\u011funu do\u011frulay\u0131n.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu kapsaml\u0131 rehberde, bir Laravel uygulamas\u0131n\u0131 Ubuntu 16.04 sunucusu \u00fczerinde Nginx ve PHP-FPM kullanarak da\u011f\u0131tma s\u00fcrecini ad\u0131m ad\u0131m ele ald\u0131k. Sistem g\u00fcncellemelerinden ba\u015flayarak, PHP, Nginx ve MySQL kurulumlar\u0131na, Laravel uygulamas\u0131n\u0131n haz\u0131rlanmas\u0131ndan Nginx sanal host yap\u0131land\u0131rmas\u0131na ve g\u00fcvenlik iyile\u015ftirmelerine kadar her detay\u0131 inceledik. Ayr\u0131ca, da\u011f\u0131t\u0131m s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlara ve \u00e7\u00f6z\u00fcmlerine de de\u011findik.<\/p>\n<p>Art\u0131k Laravel uygulaman\u0131z\u0131n \u00fcretim ortam\u0131nda g\u00fcvenli ve performansl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olabilirsiniz. Da\u011f\u0131t\u0131m s\u00fcreci tamamland\u0131ktan sonra, uygulaman\u0131z\u0131n performans\u0131n\u0131 izlemek, loglar\u0131 d\u00fczenli olarak kontrol etmek ve g\u00fcvenlik g\u00fcncellemelerini takip etmek gibi ek ad\u0131mlar da uygulaman\u0131z\u0131n uzun vadeli sa\u011fl\u0131\u011f\u0131 i\u00e7in kritik \u00f6neme sahiptir. Unutmay\u0131n, DevOps s\u00fcrekli bir s\u00fcre\u00e7tir ve bu rehber size sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sunar.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma\nGiri\u015f\nG\u00fcn\u00fcm\u00fczde web uygulamalar\u0131n\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde da\u011f\u0131t","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-35042","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 Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma - 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-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma\" \/>\n<meta property=\"og:description\" content=\"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma Giri\u015f G\u00fcn\u00fcm\u00fczde web uygulamalar\u0131n\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde da\u011f\u0131t\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-25T03:40:45+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=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma\",\"datePublished\":\"2025-11-25T03:40:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\"},\"wordCount\":2451,\"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-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\",\"name\":\"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-25T03:40:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma\"}]},{\"@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 Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma - 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-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/","og_locale":"tr_TR","og_type":"article","og_title":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma","og_description":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma Giri\u015f G\u00fcn\u00fcm\u00fczde web uygulamalar\u0131n\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde da\u011f\u0131t","og_url":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-25T03:40:45+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma","datePublished":"2025-11-25T03:40:45+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/"},"wordCount":2451,"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-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/","url":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/","name":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-25T03:40:45+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-uygulamasini-nginx-ile-ubuntu-16-04-uzerine-dagitma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel Uygulamas\u0131n\u0131 Nginx ile Ubuntu 16.04 \u00dczerine Da\u011f\u0131tma"}]},{"@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\/35042","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=35042"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35042\/revisions"}],"predecessor-version":[{"id":35043,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35042\/revisions\/35043"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}