{"id":38328,"date":"2026-01-28T22:40:44","date_gmt":"2026-01-28T19:40:44","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38328"},"modified":"2026-01-28T22:40:44","modified_gmt":"2026-01-28T19:40:44","slug":"mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/","title":{"rendered":"MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Modern web uygulamalar\u0131 geli\u015ftirmek, h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve bak\u0131m\u0131 kolay \u00e7\u00f6z\u00fcmler gerektirir. Bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak \u00fczere ortaya \u00e7\u0131kan teknolojilerden biri de MEAN Stack&#8217;tir. MEAN, MongoDB, Express.js, AngularJS ve Node.js teknolojilerinin ba\u015f harflerinden olu\u015fan bir k\u0131saltmad\u0131r. Bu y\u0131\u011f\u0131n, geli\u015ftiricilere tek bir dil (JavaScript) kullanarak tam y\u0131\u011f\u0131n (full-stack) uygulamalar olu\u015fturma imkan\u0131 sunar. Bu makalede, MEAN Stack&#8217;in ne oldu\u011funu, neden tercih edildi\u011fini ve MEAN.JS boilerplate&#8217;ini kullanarak CentOS 7 i\u015fletim sistemi \u00fczerinde nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<p>CentOS 7, kararl\u0131l\u0131\u011f\u0131 ve g\u00fcvenlik \u00f6zellikleriyle bilinen, kurumsal d\u00fczeyde bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. MEAN Stack uygulamalar\u0131n\u0131 bar\u0131nd\u0131rmak i\u00e7in sa\u011flam bir temel sunar. MEAN.JS ise, MEAN Stack uygulamalar\u0131 i\u00e7in \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f bir iskelet (boilerplate) sa\u011flayarak geli\u015ftirme s\u00fcrecini h\u0131zland\u0131ran ve best practice&#8217;leri uygulayan bir projedir. Bu sayede, temel kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 atlayarak do\u011frudan uygulama geli\u015ftirmeye odaklanabilirsiniz.<\/p>\n<p>Bu kapsaml\u0131 rehberde, bir CentOS 7 sunucusu \u00fczerinde Node.js \u00e7al\u0131\u015fma zaman\u0131n\u0131, npm paket y\u00f6neticisini, MongoDB veritaban\u0131n\u0131 ve MEAN.JS projesini kurmak i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131 ele alaca\u011f\u0131z. Ayr\u0131ca, kurulum sonras\u0131 uygulaman\u0131z\u0131 ba\u015flatma, g\u00fcvenlik \u00f6nlemleri ve temel sorun giderme ipu\u00e7lar\u0131na da de\u011finece\u011fiz. Bu rehberin sonunda, kendi MEAN Stack uygulaman\u0131z\u0131 geli\u015ftirmeye haz\u0131r, tam i\u015flevsel bir ortam\u0131n\u0131z olacakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>MEAN Stack kurulumuna ba\u015flamadan \u00f6nce, baz\u0131 temel gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131n\u0131zdan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>CentOS 7 Sunucusu:<\/strong> En az 1 GB RAM ve 20 GB depolama alan\u0131na sahip, temiz bir CentOS 7 sunucusu. Minimal kurulum yeterlidir.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Sunucuda root olmayan ancak sudo yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z olmal\u0131d\u0131r. T\u00fcm komutlar\u0131 bu kullan\u0131c\u0131 ile \u00e7al\u0131\u015ft\u0131raca\u011f\u0131z.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Sunucunun paketleri indirebilmesi i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131 gereklidir.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 (CLI) kullan\u0131m\u0131 hakk\u0131nda temel bilgi sahibi olmak faydal\u0131 olacakt\u0131r.<br \/>\n*   <strong>A\u00e7\u0131k Portlar:<\/strong> Uygulaman\u0131n ve veritaban\u0131n\u0131n d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in g\u00fcvenlik duvar\u0131nda belirli portlar\u0131n a\u00e7\u0131lmas\u0131 gerekebilir.<\/p>\n<p>Bu gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131n\u0131zda, MEAN Stack kurulumuna ge\u00e7meye haz\u0131rs\u0131n\u0131z demektir.<\/p>\n<h3>Ad\u0131m 1: Sistem G\u00fcncellemesi ve Temel Ara\u00e7lar\u0131n Kurulumu<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan ve gerekli temel ara\u00e7lar\u0131n kurulu oldu\u011fundan emin olmak en iyi uygulamad\u0131r. Bu, potansiyel uyumluluk sorunlar\u0131n\u0131 \u00f6nler ve en son g\u00fcvenlik yamalar\u0131n\u0131 alman\u0131z\u0131 sa\u011flar.<\/p>\n<h4>Sistem G\u00fcncellemesi<\/h4>\n<p>\u00d6ncelikle, CentOS 7 sisteminizdeki t\u00fcm y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine g\u00fcncellemek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo yum update -y<\/code><\/pre>\n<p>Bu komut, sistemdeki t\u00fcm paket depolar\u0131n\u0131 kontrol eder ve g\u00fcncel olmayan paketleri indirip kurar. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm onay sorular\u0131na otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar. Bu i\u015flem biraz zaman alabilir.<\/p>\n<h4>EPEL Deposunun Kurulumu<\/h4>\n<p>Baz\u0131 yaz\u0131l\u0131m paketleri varsay\u0131lan CentOS depolar\u0131nda bulunmayabilir. Extra Packages for Enterprise Linux (EPEL) deposu, RHEL tabanl\u0131 sistemler i\u00e7in ek ve y\u00fcksek kaliteli paketler sa\u011flayan pop\u00fcler bir \u00fc\u00e7\u00fcnc\u00fc taraf deposudur. Node.js gibi baz\u0131 ara\u00e7lar\u0131n daha kolay kurulumu i\u00e7in bu depoyu eklemek faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y epel-release<\/code><\/pre>\n<h4>Temel Geli\u015ftirme Ara\u00e7lar\u0131n\u0131n Kurulumu<\/h4>\n<p>MEAN Stack kurulumu ve uygulamalar\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in Git, wget, curl gibi baz\u0131 temel geli\u015ftirme ara\u00e7lar\u0131na ve a\u011f yard\u0131mc\u0131 programlar\u0131na ihtiyac\u0131m\u0131z olacak.<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y git wget curl net-tools policycoreutils-python3<\/code><\/pre>\n<p>*   <strong>git:<\/strong> MEAN.JS boilerplate&#8217;ini GitHub&#8217;dan klonlamak i\u00e7in gereklidir.<br \/>\n*   <strong>wget ve curl:<\/strong> Dosyalar\u0131 indirmek ve web istekleri yapmak i\u00e7in kullan\u0131l\u0131r. \u00d6zellikle Node Version Manager (NVM) kurulumu i\u00e7in curl gereklidir.<br \/>\n*   <strong>net-tools:<\/strong> A\u011f yap\u0131land\u0131rmas\u0131n\u0131 kontrol etmek i\u00e7in <code>ifconfig<\/code> gibi komutlar\u0131 sa\u011flar.<br \/>\n*   <strong>policycoreutils-python3:<\/strong> SELinux ile ilgili baz\u0131 i\u015flemleri y\u00f6netmek i\u00e7in gereklidir, \u00f6zellikle MongoDB kurulumunda veya di\u011fer servis yap\u0131land\u0131rmalar\u0131nda kar\u015f\u0131n\u0131za \u00e7\u0131kabilir.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, sisteminiz MEAN Stack bile\u015fenlerini kurmaya haz\u0131r hale gelecektir.<\/p>\n<h3>Ad\u0131m 2: Node.js ve npm Kurulumu<\/h3>\n<p>Node.js, sunucu taraf\u0131nda JavaScript kodu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan bir \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131d\u0131r ve MEAN Stack&#8217;in &#8220;N&#8221; harfini temsil eder. npm (Node Package Manager) ise Node.js paketlerini y\u00f6netmek i\u00e7in kullan\u0131lan standart paket y\u00f6neticisidir. MEAN.JS uygulamalar\u0131, Node.js \u00fczerinde \u00e7al\u0131\u015f\u0131r ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 npm arac\u0131l\u0131\u011f\u0131yla y\u00f6netir.<\/p>\n<p>Node.js&#8217;in farkl\u0131 s\u00fcr\u00fcmleri aras\u0131nda kolayca ge\u00e7i\u015f yapabilmek ve sisteminizi karma\u015fadan korumak i\u00e7in Node Version Manager (NVM) kullanman\u0131z\u0131 \u015fiddetle tavsiye ederiz.<\/p>\n<h4>NVM (Node Version Manager) Kurulumu<\/h4>\n<p>NVM, birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc ayn\u0131 sistemde y\u00f6netmenizi sa\u011flayan bir komut dosyas\u0131d\u0131r. Bu, farkl\u0131 projeler i\u00e7in farkl\u0131 Node.js s\u00fcr\u00fcmlerine ihtiya\u00e7 duydu\u011funuzda olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>NVM&#8217;yi kurmak i\u00e7in a\u015fa\u011f\u0131daki curl komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.1\/install.sh | bash<\/code><\/pre>\n<p><strong>Not:<\/strong> <code>v0.39.1<\/code> yerine NVM&#8217;nin en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc kontrol edip kullanman\u0131z \u00f6nerilir. GitHub deposunu ziyaret ederek g\u00fcncel s\u00fcr\u00fcm\u00fc bulabilirsiniz.<\/p>\n<p>Kurulum beti\u011fi tamamland\u0131ktan sonra, NVM&#8217;nin kabuk ortam\u0131n\u0131za y\u00fcklenmesi i\u00e7in terminali kapat\u0131p yeniden a\u00e7man\u0131z veya a\u015fa\u011f\u0131daki komutlardan birini \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">source ~\/.bashrc\n<h2>Veya<\/h2>\nsource ~\/.bash_profile\n<h2>Veya<\/h2>\nsource ~\/.zshrc # E\u011fer zsh kullan\u0131yorsan\u0131z<\/code><\/pre>\n<p>\u015eimdi NVM&#8217;nin do\u011fru bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">nvm --version<\/code><\/pre>\n<p>E\u011fer bir s\u00fcr\u00fcm numaras\u0131 g\u00f6r\u00fcyorsan\u0131z, NVM ba\u015far\u0131yla kurulmu\u015ftur.<\/p>\n<h4>Node.js Kurulumu<\/h4>\n<p>NVM arac\u0131l\u0131\u011f\u0131yla Node.js&#8217;in en son LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">nvm install --lts<\/code><\/pre>\n<p>Bu komut, NVM&#8217;nin Node.js&#8217;in en son LTS s\u00fcr\u00fcm\u00fcn\u00fc indirip kurmas\u0131n\u0131 ve varsay\u0131lan olarak ayarlamas\u0131n\u0131 sa\u011flar. Belirli bir s\u00fcr\u00fcm\u00fc kurmak isterseniz (\u00f6rne\u011fin, Node.js 16):<\/p>\n<pre><code class=\"language-bash\">nvm install 16<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Node.js ve npm&#8217;in do\u011fru bir \u015fekilde kuruldu\u011funu ve PATH&#8217;inizde oldu\u011funu do\u011frulamak i\u00e7in s\u00fcr\u00fcm numaralar\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">node -v\nnpm -v<\/code><\/pre>\n<p>Her iki komut da s\u00fcr\u00fcm numaralar\u0131n\u0131 g\u00f6stermelidir.<\/p>\n<h4>Alternatif: NodeSource Deposu ile Kurulum (\u0130ste\u011fe Ba\u011fl\u0131)<\/h4>\n<p>E\u011fer NVM kullanmak istemiyorsan\u0131z, NodeSource depolar\u0131n\u0131 kullanarak Node.js&#8217;i do\u011frudan <code>yum<\/code> ile kurabilirsiniz. Ancak bu y\u00f6ntem, farkl\u0131 Node.js s\u00fcr\u00fcmleri aras\u0131nda ge\u00e7i\u015f yapma esnekli\u011fi sunmaz.<\/p>\n<p>\u00d6rne\u011fin, Node.js 16&#8217;y\u0131 kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">curl -sL https:\/\/rpm.nodesource.com\/setup_16.x | sudo bash -\nsudo yum install -y nodejs<\/code><\/pre>\n<p>Bu komutlar, NodeSource deposunu sisteminize ekler ve ard\u0131ndan Node.js paketini kurar. Ancak bu rehberde NVM y\u00f6ntemini takip etmeye devam edece\u011fiz.<\/p>\n<h3>Ad\u0131m 3: MongoDB Kurulumu<\/h3>\n<p>MongoDB, MEAN Stack&#8217;in &#8220;M&#8221; harfini temsil eden, belgesel tabanl\u0131 (document-oriented) bir NoSQL veritaban\u0131d\u0131r. JSON benzeri belgeler kullanarak verileri depolar, bu da Node.js ve JavaScript tabanl\u0131 uygulamalarla do\u011fal bir uyum sa\u011flar.<\/p>\n<p>CentOS 7 \u00fczerinde MongoDB&#8217;yi kurmak i\u00e7in, MongoDB&#8217;nin kendi <code>yum<\/code> deposunu sistemimize eklememiz gerekir.<\/p>\n<h4>MongoDB Deposunun Eklenmesi<\/h4>\n<p>MongoDB&#8217;nin en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in (\u00f6rne\u011fin, MongoDB 5.0), a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek bir <code>.repo<\/code> dosyas\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/yum.repos.d\/mongodb-org-5.0.repo<\/code><\/pre>\n<p>A\u00e7\u0131lan edit\u00f6re a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-\">[mongodb-org-5.0]\nname=MongoDB Repository\nbaseurl=https:\/\/repo.mongodb.org\/yum\/redhat\/$releasever\/mongodb-org\/5.0\/x86_64\/\ngpgcheck=1\nenabled=1\ngpgkey=https:\/\/www.mongodb.org\/static\/pgp\/server-5.0.asc<\/code><\/pre>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Nano&#8217;da <code>Ctrl+X<\/code>, <code>Y<\/code> ve <code>Enter<\/code>).<\/p>\n<p><strong>Not:<\/strong> <code>$releasever<\/code> de\u011fi\u015fkeni, CentOS 7 i\u00e7in <code>7<\/code> olarak otomatik olarak \u00e7\u00f6z\u00fcmlenecektir. E\u011fer daha yeni bir MongoDB s\u00fcr\u00fcm\u00fc kurmak isterseniz, <code>5.0<\/code> yerine ilgili s\u00fcr\u00fcm numaras\u0131n\u0131 (\u00f6rne\u011fin, <code>6.0<\/code> veya <code>7.0<\/code>) ve <code>gpgkey<\/code> URL&#8217;sini g\u00fcncellemeniz gerekir. MongoDB&#8217;nin resmi dok\u00fcmantasyonunu kontrol ederek en g\u00fcncel bilgiyi edinebilirsiniz.<\/p>\n<h4>MongoDB Kurulumu<\/h4>\n<p>Depo eklendikten sonra, MongoDB&#8217;yi ve ilgili ara\u00e7lar\u0131 kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y mongodb-org<\/code><\/pre>\n<p>Bu komut, <code>mongodb-org<\/code> paketi ile birlikte <code>mongod<\/code> (veritaban\u0131 sunucusu), <code>mongos<\/code> (sharding router), <code>mongo<\/code> (kabuk), <code>mongodump<\/code>, <code>mongorestore<\/code> gibi yard\u0131mc\u0131 programlar\u0131 da kuracakt\u0131r.<\/p>\n<h4>MongoDB Servisinin Ba\u015flat\u0131lmas\u0131 ve Etkinle\u015ftirilmesi<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, MongoDB servisini ba\u015flatmal\u0131 ve sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirmelisiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start mongod\nsudo systemctl enable mongod<\/code><\/pre>\n<p>Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mongod<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>MongoDB varsay\u0131lan olarak 27017 numaral\u0131 portu kullan\u0131r. E\u011fer uygulaman\u0131z veya harici bir ara\u00e7 sunucunun d\u0131\u015f\u0131ndan MongoDB&#8217;ye eri\u015fecekse, bu portu g\u00fcvenlik duvar\u0131n\u0131zda a\u00e7man\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --add-port=27017\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Bu komutlar, 27017 portunu kal\u0131c\u0131 olarak TCP trafi\u011fine a\u00e7ar ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 yeniden y\u00fckler.<\/p>\n<h4>Temel MongoDB G\u00fcvenli\u011fi (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nemli)<\/h4>\n<p>\u00dcretim ortamlar\u0131 i\u00e7in MongoDB&#8217;yi varsay\u0131lan ayarlarla b\u0131rakmak g\u00fcvenlik riski ta\u015f\u0131r. En az\u0131ndan a\u015fa\u011f\u0131daki \u00f6nlemleri alman\u0131z \u00f6nerilir:<\/p>\n<p>*   <strong>Ba\u011flant\u0131y\u0131 Sadece Yerel Adrese K\u0131s\u0131tlama:<\/strong> Varsay\u0131lan olarak <code>mongod<\/code> sadece <code>127.0.0.1<\/code> adresini dinler. E\u011fer yap\u0131land\u0131rma dosyas\u0131nda (<code>\/etc\/mongod.conf<\/code>) <code>bindIp<\/code> ayar\u0131 de\u011fi\u015ftirilmi\u015fse, bunu tekrar <code>127.0.0.1<\/code> veya sadece uygulaman\u0131z\u0131n eri\u015fece\u011fi IP adresleriyle s\u0131n\u0131rlay\u0131n.<br \/>\n*   <strong>Kimlik Do\u011frulama Etkinle\u015ftirme:<\/strong> MongoDB&#8217;de kullan\u0131c\u0131lar olu\u015fturup kimlik do\u011frulamay\u0131 etkinle\u015ftirmek, yetkisiz eri\u015fimi engeller. Bunun i\u00e7in <code>\/etc\/mongod.conf<\/code> dosyas\u0131nda <code>security.authorization: enabled<\/code> sat\u0131r\u0131n\u0131 etkinle\u015ftirmeli ve <code>mongo<\/code> kabu\u011fu \u00fczerinden kullan\u0131c\u0131lar olu\u015fturmal\u0131s\u0131n\u0131z.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, MongoDB veritaban\u0131n\u0131z MEAN Stack uygulaman\u0131z i\u00e7in haz\u0131r olacakt\u0131r.<\/p>\n<h3>Ad\u0131m 4: Git Kurulumu<\/h3>\n<p>Git, da\u011f\u0131t\u0131lm\u0131\u015f bir versiyon kontrol sistemidir ve yaz\u0131l\u0131m geli\u015ftirme projelerinde kod de\u011fi\u015fikliklerini takip etmek ve y\u00f6netmek i\u00e7in kullan\u0131l\u0131r. MEAN.JS boilerplate&#8217;ini GitHub&#8217;dan klonlamak i\u00e7in Git&#8217;e ihtiyac\u0131m\u0131z var. Bu ad\u0131m\u0131 &#8220;Ad\u0131m 1&#8243;de zaten ger\u00e7ekle\u015ftirmi\u015f olmal\u0131y\u0131z, ancak emin olmak i\u00e7in tekrar kontrol edebiliriz.<\/p>\n<p>E\u011fer daha \u00f6nce kurmad\u0131ysan\u0131z veya emin de\u011filseniz, a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak Git&#8217;i kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y git<\/code><\/pre>\n<p>Kurulumun ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulamak i\u00e7in Git s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin:<\/p>\n<pre><code class=\"language-bash\">git --version<\/code><\/pre>\n<p>Bir s\u00fcr\u00fcm numaras\u0131 g\u00f6rmelisiniz. Art\u0131k MEAN.JS projesini klonlamaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h3>Ad\u0131m 5: MEAN.JS Uygulamas\u0131n\u0131n Kurulumu ve \u00c7al\u0131\u015ft\u0131r\u0131lmas\u0131<\/h3>\n<p>MEAN.JS, MEAN Stack uygulamalar\u0131 i\u00e7in \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f bir iskelet (boilerplate) sunar. Bu iskelet, mod\u00fcler bir yap\u0131, kimlik do\u011frulama, \u00f6rnek CRUD i\u015flemleri ve geli\u015ftirme i\u00e7in Grunt gibi ara\u00e7lar\u0131 i\u00e7erir. Bu sayede, s\u0131f\u0131rdan ba\u015flamak yerine sa\u011flam bir temel \u00fczerine in\u015fa edebilirsiniz.<\/p>\n<h4>MEAN.JS Boilerplate&#8217;ini Klonlama<\/h4>\n<p>\u00d6ncelikle, MEAN.JS projesini GitHub deposundan sunucunuza klonlaman\u0131z gerekiyor. Uygulaman\u0131z i\u00e7in uygun bir dizine gidin (\u00f6rne\u011fin, <code>\/opt<\/code> veya kullan\u0131c\u0131n\u0131z\u0131n ana dizini) ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">cd ~\ngit clone https:\/\/github.com\/meanjs\/mean.git meanjs-app<\/code><\/pre>\n<p>Bu komut, <code>meanjs-app<\/code> ad\u0131nda yeni bir dizin olu\u015fturacak ve MEAN.JS boilerplate&#8217;ini bu dizine klonlayacakt\u0131r.<\/p>\n<h4>Proje Dizinine Gitme ve Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Y\u00fckleme<\/h4>\n<p>Klonlama tamamland\u0131ktan sonra, yeni olu\u015fturulan <code>meanjs-app<\/code> dizinine gidin:<\/p>\n<pre><code class=\"language-bash\">cd meanjs-app<\/code><\/pre>\n<p>\u015eimdi, projenin t\u00fcm Node.js ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fcklemek i\u00e7in <code>npm install<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">npm install<\/code><\/pre>\n<p>Bu i\u015flem, <code>package.json<\/code> dosyas\u0131nda belirtilen t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 (Express.js, Mongoose, Angular, Passport.js vb.) indirip <code>node_modules<\/code> dizinine kuracakt\u0131r. Bu i\u015flem, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ba\u011fl\u0131 olarak biraz zaman alabilir.<\/p>\n<h4>Grunt CLI Kurulumu (Gerekirse)<\/h4>\n<p>MEAN.JS, geli\u015ftirme g\u00f6revlerini otomatikle\u015ftirmek i\u00e7in Grunt.js g\u00f6rev \u00e7al\u0131\u015ft\u0131r\u0131c\u0131s\u0131n\u0131 kullan\u0131r. Grunt komutlar\u0131n\u0131 global olarak kullanabilmek i\u00e7in Grunt CLI&#8217;yi kurman\u0131z gerekebilir:<\/p>\n<pre><code class=\"language-bash\">npm install -g grunt-cli<\/code><\/pre>\n<p>Bu, Grunt komutlar\u0131n\u0131 terminalinizden do\u011frudan \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 sa\u011flar.<\/p>\n<h4>MEAN.JS Uygulamas\u0131n\u0131 Ba\u015flatma<\/h4>\n<p>Art\u0131k t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar y\u00fcklendi\u011fine g\u00f6re, MEAN.JS uygulamas\u0131n\u0131 ba\u015flatabilirsiniz. Uygulamay\u0131 geli\u015ftirme modunda ba\u015flatmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">npm start<\/code><\/pre>\n<p>Veya Grunt kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">grunt<\/code><\/pre>\n<p>Uygulama ba\u015far\u0131yla ba\u015flad\u0131\u011f\u0131nda, terminalde genellikle <code>MEAN.JS application started on port 3000<\/code> veya benzeri bir mesaj g\u00f6rmelisiniz. Bu, uygulaman\u0131z\u0131n varsay\u0131lan olarak 3000 numaral\u0131 portta dinledi\u011fi anlam\u0131na gelir.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (Uygulama Portu)<\/h4>\n<p>E\u011fer uygulaman\u0131za sunucunun d\u0131\u015f\u0131ndan (web taray\u0131c\u0131n\u0131zdan) eri\u015fmek istiyorsan\u0131z, 3000 numaral\u0131 portu g\u00fcvenlik duvar\u0131n\u0131zda a\u00e7man\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --add-port=3000\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<h4>Uygulamaya Eri\u015fim<\/h4>\n<p>\u015eimdi web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve sunucunuzun IP adresini veya alan ad\u0131n\u0131 kullanarak uygulamaya eri\u015fin:<\/p>\n<pre><code class=\"language-\">http:\/\/your_server_ip:3000<\/code><\/pre>\n<p>MEAN.JS kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu sayfa, uygulaman\u0131z\u0131n ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Art\u0131k MEAN Stack uygulaman\u0131z\u0131 geli\u015ftirmeye ba\u015flayabilirsiniz!<\/p>\n<h3>Ad\u0131m 6: Geli\u015ftirme Ortam\u0131 ve Uygulama Y\u00f6netimi<\/h3>\n<p>Uygulamay\u0131 <code>npm start<\/code> ile ba\u015flatmak, terminal oturumu a\u00e7\u0131k kald\u0131\u011f\u0131 s\u00fcrece \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Ancak, sunucuyu kapat\u0131rsan\u0131z veya terminali kapatt\u0131\u011f\u0131n\u0131zda uygulama durur. \u00dcretim ortam\u0131nda veya arka planda s\u00fcrekli \u00e7al\u0131\u015fmas\u0131 gereken uygulamalar i\u00e7in bir proses y\u00f6neticisi kullanmak \u00f6nemlidir.<\/p>\n<h4>PM2 ile Uygulama Y\u00f6netimi<\/h4>\n<p>PM2, Node.js uygulamalar\u0131 i\u00e7in pop\u00fcler bir \u00fcretim proses y\u00f6neticisidir. Uygulamalar\u0131n s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar, yeniden ba\u015flatmalar\u0131n\u0131 y\u00f6netir, loglar\u0131 tutar ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamalar\u0131n\u0131 yap\u0131land\u0131rabilir.<\/p>\n<p>PM2&#8217;yi global olarak kurun:<\/p>\n<pre><code class=\"language-bash\">sudo npm install -g pm2<\/code><\/pre>\n<p>MEAN.JS uygulaman\u0131z\u0131 PM2 ile ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">cd ~\/meanjs-app\npm2 start server.js --name meanjs-app<\/code><\/pre>\n<p>*   <code>server.js<\/code>: MEAN.JS uygulamas\u0131n\u0131n ana giri\u015f dosyas\u0131d\u0131r.<br \/>\n*   <code>--name meanjs-app<\/code>: Uygulaman\u0131za kolayca tan\u0131nabilir bir isim verir.<\/p>\n<p>PM2&#8217;nin uygulaman\u0131z\u0131 ba\u015far\u0131yla ba\u015flatt\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">pm2 list<\/code><\/pre>\n<p>Uygulaman\u0131z\u0131n listelendi\u011fini ve <code>status<\/code> s\u00fctununda <code>online<\/code> oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h4>Sistem Ba\u015flang\u0131c\u0131nda Otomatik Ba\u015flatma<\/h4>\n<p>PM2&#8217;nin uygulaman\u0131z\u0131 sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flatmas\u0131n\u0131 sa\u011flamak i\u00e7in <code>startup<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">pm2 startup systemd<\/code><\/pre>\n<p>Bu komut, sisteminize uygun bir ba\u015flang\u0131\u00e7 beti\u011fi (CentOS i\u00e7in <code>systemd<\/code>) olu\u015fturur ve size \u00e7al\u0131\u015ft\u0131rman\u0131z gereken bir komut verir. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-bash\">sudo env PATH=$PATH:\/usr\/bin \/usr\/lib\/node_modules\/pm2\/bin\/pm2 startup systemd -u your_username --hp \/home\/your_username<\/code><\/pre>\n<p>Yukar\u0131daki komutu kendi kullan\u0131c\u0131 ad\u0131n\u0131zla ve ana dizininizle (<code>\/home\/your_username<\/code>) g\u00fcncelleyerek \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<p>Ard\u0131ndan, mevcut PM2 proses listesini kaydetmeniz gerekir, b\u00f6ylece PM2 bunlar\u0131 yeniden ba\u015flatma sonras\u0131nda geri y\u00fckleyebilir:<\/p>\n<pre><code class=\"language-bash\">pm2 save<\/code><\/pre>\n<p>Art\u0131k sunucunuz yeniden ba\u015flat\u0131lsa bile MEAN.JS uygulaman\u0131z otomatik olarak ba\u015flayacakt\u0131r.<\/p>\n<h4>Nginx ile Ters Proxy (\u0130ste\u011fe Ba\u011fl\u0131, \u00dcretim \u0130\u00e7in \u00d6nemli)<\/h4>\n<p>\u00dcretim ortamlar\u0131nda, Node.js uygulaman\u0131z\u0131 do\u011frudan internete a\u00e7mak yerine Nginx gibi bir ters proxy sunucusu kullanmak yayg\u0131n ve \u00f6nerilen bir uygulamad\u0131r. Nginx, statik dosyalar\u0131 daha verimli sunabilir, SSL\/TLS sonland\u0131rmas\u0131 sa\u011flayabilir, y\u00fck dengeleme yapabilir ve Node.js uygulaman\u0131z\u0131 g\u00fcvenlik katman\u0131n\u0131n arkas\u0131na gizleyebilir.<\/p>\n<p>Nginx kurulumu ve yap\u0131land\u0131rmas\u0131 bu makalenin kapsam\u0131n\u0131n \u00f6tesindedir, ancak temel ad\u0131mlar \u015funlard\u0131r:<\/p>\n<p>1.  Nginx&#8217;i kurun: <code>sudo yum install -y nginx<\/code><br \/>\n2.  Nginx servisini ba\u015flat\u0131n ve etkinle\u015ftirin: <code>sudo systemctl start nginx<\/code>, <code>sudo systemctl enable nginx<\/code><br \/>\n3.  Nginx i\u00e7in bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun (\u00f6rne\u011fin, <code>\/etc\/nginx\/conf.d\/meanjs.conf<\/code>) ve gelen istekleri Node.js uygulaman\u0131z\u0131n dinledi\u011fi porta (varsay\u0131lan 3000) y\u00f6nlendirecek \u015fekilde yap\u0131land\u0131r\u0131n.<br \/>\n4.  G\u00fcvenlik duvar\u0131nda 80 (HTTP) ve 443 (HTTPS) portlar\u0131n\u0131 a\u00e7\u0131n.<\/p>\n<p>Bu yap\u0131land\u0131rma, uygulaman\u0131z\u0131n performans\u0131n\u0131 ve g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>Kurulum s\u00fcrecinde veya sonras\u0131nda baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte baz\u0131 ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131 Sorunlar\u0131:<\/strong> Uygulaman\u0131za veya MongoDB&#8217;ye eri\u015femiyorsan\u0131z, ilk kontrol etmeniz gereken yer g\u00fcvenlik duvar\u0131d\u0131r. <code>sudo firewall-cmd --list-all<\/code> komutuyla a\u00e7\u0131k portlar\u0131 kontrol edebilir ve <code>firewall-cmd<\/code> komutlar\u0131yla portlar\u0131 a\u00e7abilirsiniz.<br \/>\n*   <strong>MongoDB Ba\u015flam\u0131yor:<\/strong> <code>sudo systemctl status mongod<\/code> komutunu kontrol edin. Loglar\u0131 incelemek i\u00e7in <code>sudo journalctl -u mongod<\/code> komutunu kullan\u0131n. Genellikle disk alan\u0131 eksikli\u011fi veya yap\u0131land\u0131rma dosyas\u0131 (<code>\/etc\/mongod.conf<\/code>) hatalar\u0131 bu soruna yol a\u00e7ar.<br \/>\n*   <strong>Node.js S\u00fcr\u00fcm \u00c7ak\u0131\u015fmalar\u0131:<\/strong> E\u011fer NVM kullan\u0131yorsan\u0131z, <code>nvm use <version><\/code> komutuyla do\u011fru Node.js s\u00fcr\u00fcm\u00fcn\u00fc kulland\u0131\u011f\u0131n\u0131zdan emin olun. <code>node -v<\/code> ve <code>npm -v<\/code> komutlar\u0131n\u0131n do\u011fru s\u00fcr\u00fcmleri g\u00f6sterdi\u011finden emin olun.<br \/>\n*   <strong><code>npm install<\/code> Hatalar\u0131:<\/strong> Ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklerken hatalar al\u0131yorsan\u0131z, genellikle eksik derleme ara\u00e7lar\u0131 (build tools) veya Python ba\u011f\u0131ml\u0131l\u0131klar\u0131 neden olur. <code>sudo yum groupinstall \"Development Tools\"<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak gerekli derleme ara\u00e7lar\u0131n\u0131 kurmay\u0131 deneyin.<br \/>\n*   <strong>Uygulama Ba\u015flam\u0131yor:<\/strong> <code>npm start<\/code> veya <code>grunt<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra hata mesajlar\u0131n\u0131 dikkatlice okuyun. Genellikle bir portun zaten kullan\u0131l\u0131yor olmas\u0131 veya veritaban\u0131 ba\u011flant\u0131 sorunlar\u0131 bu duruma neden olur.<br \/>\n*   <strong>SELinux Hatalar\u0131:<\/strong> CentOS&#8217;ta SELinux etkin olabilir ve baz\u0131 servislere veya dizinlere eri\u015fimi k\u0131s\u0131tlayabilir. E\u011fer SELinux ile ilgili bir hata al\u0131rsan\u0131z, ge\u00e7ici olarak <code>sudo setenforce 0<\/code> ile devre d\u0131\u015f\u0131 b\u0131rak\u0131p sorunun devam edip etmedi\u011fini kontrol edebilirsiniz. Ancak kal\u0131c\u0131 \u00e7\u00f6z\u00fcm, do\u011fru SELinux politikalar\u0131n\u0131 yap\u0131land\u0131rmakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, MEAN Stack&#8217;i MEAN.JS boilerplate&#8217;i ile CentOS 7 sunucusu \u00fczerine nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. Node.js ve npm&#8217;i NVM arac\u0131l\u0131\u011f\u0131yla kurarak esnek bir geli\u015ftirme ortam\u0131 olu\u015fturdunuz, MongoDB&#8217;yi yap\u0131land\u0131r\u0131p ba\u015flatt\u0131n\u0131z ve son olarak MEAN.JS uygulamas\u0131n\u0131 klonlay\u0131p \u00e7al\u0131\u015ft\u0131rd\u0131n\u0131z. Ayr\u0131ca, uygulaman\u0131z\u0131n s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in PM2 gibi bir proses y\u00f6neticisi kullanman\u0131n \u00f6nemini ve temel sorun giderme ipu\u00e7lar\u0131n\u0131 da ele ald\u0131k.<\/p>\n<p>Art\u0131k tam i\u015flevsel bir MEAN Stack geli\u015ftirme ortam\u0131na sahipsiniz. Bu kurulum, h\u0131zl\u0131 prototipleme ve modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in sa\u011flam bir temel sunar. MEAN Stack&#8217;in JavaScript tabanl\u0131 tek dil yakla\u015f\u0131m\u0131, geli\u015ftirme s\u00fcrecini basitle\u015ftirir ve hem \u00f6n u\u00e7 hem de arka u\u00e7 geli\u015ftirme i\u00e7in ayn\u0131 yetenekleri kullanman\u0131za olanak tan\u0131r. MongoDB&#8217;nin esnekli\u011fi, Express.js&#8217;in hafifli\u011fi, Angular&#8217;\u0131n g\u00fc\u00e7l\u00fc \u00f6n u\u00e7 yetenekleri ve Node.js&#8217;in y\u00fcksek performansl\u0131 sunucu taraf\u0131 \u00e7al\u0131\u015fma zaman\u0131, birlikte \u00f6l\u00e7eklenebilir ve dinamik web uygulamalar\u0131 olu\u015fturman\u0131z i\u00e7in m\u00fckemmel bir kombinasyon sunar.<\/p>\n<p>Bundan sonraki ad\u0131mlar\u0131n\u0131z, MEAN.JS boilerplate&#8217;ini kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u00f6zelle\u015ftirmek, yeni \u00f6zellikler eklemek, kimlik do\u011frulama mekanizmalar\u0131n\u0131 geli\u015ftirmek ve uygulaman\u0131z\u0131 \u00fcretim ortam\u0131na da\u011f\u0131tmak olacakt\u0131r. Unutmay\u0131n, g\u00fcvenlik ve performans optimizasyonlar\u0131 her zaman \u00f6ncelikli olmal\u0131d\u0131r. Ba\u015far\u0131lar dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi\nGiri\u015f\nModern web uygulamalar\u0131 geli\u015ftirmek, h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve bak\u0131m\u0131 kolay","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":[241],"tags":[],"class_list":{"0":"post-38328","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>MEAN Stack&#039;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi - 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\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MEAN Stack&#039;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi\" \/>\n<meta property=\"og:description\" content=\"MEAN Stack&#039;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi Giri\u015f Modern web uygulamalar\u0131 geli\u015ftirmek, h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve bak\u0131m\u0131 kolay\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-28T19:40:44+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\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi\",\"datePublished\":\"2026-01-28T19:40:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\"},\"wordCount\":3105,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\",\"name\":\"MEAN Stack'i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-28T19:40:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi\"}]},{\"@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":"MEAN Stack'i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi - 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\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"MEAN Stack'i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi","og_description":"MEAN Stack'i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi Giri\u015f Modern web uygulamalar\u0131 geli\u015ftirmek, h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve bak\u0131m\u0131 kolay","og_url":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-28T19:40:44+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\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi","datePublished":"2026-01-28T19:40:44+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/"},"wordCount":3105,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/","name":"MEAN Stack'i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-28T19:40:44+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mean-stacki-mean-js-ile-centos-7-uzerine-kurulum-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MEAN Stack&#8217;i MEAN.JS ile CentOS 7 \u00dczerine Kurulum Rehberi"}]},{"@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\/38328","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=38328"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38328\/revisions"}],"predecessor-version":[{"id":38329,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38328\/revisions\/38329"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}