{"id":37948,"date":"2026-01-19T11:41:00","date_gmt":"2026-01-19T08:41:00","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37948"},"modified":"2026-01-19T11:41:00","modified_gmt":"2026-01-19T08:41:00","slug":"ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/","title":{"rendered":"Ghost&#8217;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Ghost&#8217;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>CentOS 7, sunucu ortamlar\u0131nda kararl\u0131l\u0131\u011f\u0131 ve g\u00fcvenilirli\u011fi ile bilinen pop\u00fcler bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Ghost ise, modern ve a\u00e7\u0131k kaynakl\u0131 bir yay\u0131nc\u0131l\u0131k platformu olup, blog yazarlar\u0131 ve yay\u0131nc\u0131lar i\u00e7in temiz, h\u0131zl\u0131 ve kullan\u0131c\u0131 dostu bir deneyim sunar. Node.js tabanl\u0131 olmas\u0131, Markdown deste\u011fi ve g\u00fc\u00e7l\u00fc API&#8217;leri ile dikkat \u00e7eker. Bu makalede, Ghost blog platformunu CentOS 7 i\u015fletim sistemi \u00fczerine ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde anlataca\u011f\u0131z.<\/p>\n<h3>Giri\u015f<\/h3>\n<p>\u0130nternet d\u00fcnyas\u0131nda i\u00e7erik \u00fcretimi ve payla\u015f\u0131m\u0131 her ge\u00e7en g\u00fcn daha da \u00f6nem kazanmaktad\u0131r. Bloglar, ki\u015fisel veya kurumsal markalar\u0131n seslerini duyurabildikleri, bilgi ve deneyimlerini payla\u015fabildikleri g\u00fc\u00e7l\u00fc platformlard\u0131r. Ghost, bu ihtiyaca y\u00f6nelik olarak geli\u015ftirilmi\u015f, minimalist ancak g\u00fc\u00e7l\u00fc \u00f6zelliklere sahip bir yay\u0131nc\u0131l\u0131k arac\u0131d\u0131r. Geleneksel blog platformlar\u0131na k\u0131yasla daha modern bir teknoloji y\u0131\u011f\u0131n\u0131na (Node.js) sahiptir ve performans ile kullan\u0131c\u0131 deneyimini \u00f6n planda tutar.<\/p>\n<h4>Ghost Nedir?<\/h4>\n<p>Ghost, 2013 y\u0131l\u0131nda piyasaya s\u00fcr\u00fclen, a\u00e7\u0131k kaynakl\u0131 bir blog ve yay\u0131nc\u0131l\u0131k platformudur. Amac\u0131, sadece yazmaya odaklanabilmeniz i\u00e7in karma\u015f\u0131kl\u0131\u011f\u0131 ortadan kald\u0131rmakt\u0131r. Node.js \u00fczerinde \u00e7al\u0131\u015f\u0131r, \u00f6n u\u00e7ta Handlebars \u015fablon motorunu kullan\u0131r ve veri depolama i\u00e7in MySQL veya SQLite&#8217;\u0131 destekler. Temiz bir y\u00f6netim paneli, Markdown tabanl\u0131 i\u00e7erik d\u00fczenleyici, g\u00fc\u00e7l\u00fc SEO yetenekleri ve esnek tema sistemi ile \u00f6ne \u00e7\u0131kar. Geli\u015ftiriciler i\u00e7in de zengin bir API sunarak \u00f6zel entegrasyonlara olanak tan\u0131r.<\/p>\n<h4>Neden CentOS 7?<\/h4>\n<p>CentOS 7, Red Hat Enterprise Linux (RHEL) tabanl\u0131, kurumsal d\u00fczeyde bir i\u015fletim sistemidir. Sa\u011flaml\u0131\u011f\u0131, uzun s\u00fcreli deste\u011fi (EOL 2024 Haziran), g\u00fcvenli\u011fi ve geni\u015f topluluk deste\u011fi sayesinde sunucu ortamlar\u0131nda yayg\u0131n olarak tercih edilir. Ghost gibi bir uygulaman\u0131n kararl\u0131 ve g\u00fcvenli bir ortamda \u00e7al\u0131\u015fmas\u0131 gerekti\u011finden, CentOS 7 bu t\u00fcr bir da\u011f\u0131t\u0131m i\u00e7in ideal bir se\u00e7imdir. Ayr\u0131ca, paket y\u00f6neticisi <code>yum<\/code> ve <code>systemd<\/code> gibi ara\u00e7lar, kurulum ve y\u00f6netim s\u00fcre\u00e7lerini kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu makalede, Ghost&#8217;un kurulumu i\u00e7in gerekli olan Node.js, MySQL, Nginx gibi ba\u011f\u0131ml\u0131l\u0131klar\u0131n CentOS 7 \u00fczerine nas\u0131l kurulaca\u011f\u0131n\u0131 ve yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Amac\u0131m\u0131z, makalenin sonunda \u00e7al\u0131\u015fan ve g\u00fcvenli bir Ghost bloguna sahip olman\u0131z\u0131 sa\u011flamakt\u0131r.<\/p>\n<h3>\u00d6nko\u015fullar<\/h3>\n<p>Ghost kurulumuna ba\u015flamadan \u00f6nce sunucunuzun belirli gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan ve baz\u0131 temel yap\u0131land\u0131rmalar\u0131n yap\u0131ld\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<h4>Sistem Gereksinimleri<\/h4>\n<p>*   <strong>\u0130\u015fletim Sistemi:<\/strong> CentOS 7 (64-bit)<br \/>\n*   <strong>RAM:<\/strong> Minimum 1 GB (2 GB veya \u00fczeri \u00f6nerilir)<br \/>\n*   <strong>CPU:<\/strong> En az 1 \u00e7ekirdekli i\u015flemci<br \/>\n*   <strong>Depolama:<\/strong> Minimum 20 GB bo\u015f disk alan\u0131<br \/>\n*   <strong>Eri\u015fim:<\/strong> Root veya sudo yetkilerine sahip bir kullan\u0131c\u0131<br \/>\n*   <strong>Alan Ad\u0131:<\/strong> Ghost blogunuz i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f bir alan ad\u0131 (\u00f6rn: <code>blog.example.com<\/code>). Bu alan ad\u0131n\u0131n DNS kay\u0131tlar\u0131n\u0131n sunucunuzun IP adresine i\u015faret etti\u011finden emin olun.<\/p>\n<h4>Sudo Yetkili Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>G\u00fcvenlik nedenleriyle, root kullan\u0131c\u0131s\u0131 yerine sudo yetkilerine sahip standart bir kullan\u0131c\u0131 ile \u00e7al\u0131\u015fmak her zaman \u00f6nerilir. E\u011fer zaten sudo yetkili bir kullan\u0131c\u0131n\u0131z varsa bu ad\u0131m\u0131 atlayabilirsiniz.<\/p>\n<pre><code class=\"language-bash\"># Yeni bir kullan\u0131c\u0131 olu\u015fturun (\u00f6rn: ghost_user)\nsudo adduser ghost_user\n\n<h2>Kullan\u0131c\u0131ya \u015fifre atay\u0131n<\/h2>\nsudo passwd ghost_user\n\n<h2>Kullan\u0131c\u0131y\u0131 'wheel' grubuna ekleyerek sudo yetkileri verin<\/h2>\nsudo usermod -aG wheel ghost_user\n\n<h2>Yeni kullan\u0131c\u0131ya ge\u00e7i\u015f yap\u0131n<\/h2>\nsu - ghost_user<\/code><\/pre>\n<p>Bundan sonraki t\u00fcm komutlar\u0131 bu kullan\u0131c\u0131 \u00fczerinden <code>sudo<\/code> \u00f6nekiyle \u00e7al\u0131\u015ft\u0131raca\u011f\u0131z.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (FirewallD)<\/h4>\n<p>CentOS 7, varsay\u0131lan olarak <code>firewalld<\/code> g\u00fcvenlik duvar\u0131 servisini kullan\u0131r. Nginx ve Let&#8217;s Encrypt&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in HTTP (80) ve HTTPS (443) portlar\u0131n\u0131n a\u00e7\u0131k olmas\u0131 gerekmektedir. SSH (22) portunun da a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\"># G\u00fcvenlik duvar\u0131n\u0131n durumunu kontrol edin\nsudo firewall-cmd --state\n\n<h2>HTTP ve HTTPS servislerini kal\u0131c\u0131 olarak ekleyin<\/h2>\nsudo firewall-cmd --permanent --add-service=http\nsudo firewall-cmd --permanent --add-service=https\n\n<h2>SSH servisinin a\u00e7\u0131k oldu\u011fundan emin olun (genellikle varsay\u0131lan olarak a\u00e7\u0131kt\u0131r)<\/h2>\nsudo firewall-cmd --permanent --add-service=ssh\n\n<h2>De\u011fi\u015fiklikleri uygulamak i\u00e7in g\u00fcvenlik duvar\u0131n\u0131 yeniden y\u00fckleyin<\/h2>\nsudo firewall-cmd --reload\n\n<h2>A\u00e7\u0131k servisleri kontrol edin<\/h2>\nsudo firewall-cmd --list-all<\/code><\/pre>\n<h3>Sistem G\u00fcncellemesi ve Temel Ba\u011f\u0131ml\u0131l\u0131klar\u0131n Kurulumu<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce sisteminizin g\u00fcncel oldu\u011fundan ve gerekli temel paketlerin y\u00fckl\u00fc oldu\u011fundan emin olmak \u00f6nemlidir. Bu, olas\u0131 uyumluluk sorunlar\u0131n\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\"># Sistemdeki t\u00fcm paketleri g\u00fcncelleyin\nsudo yum update -y\nsudo yum upgrade -y\n\n<h2>EPEL (Extra Packages for Enterprise Linux) deposunu ekleyin.<\/h2>\n<h2>Bu depo, baz\u0131 gerekli paketleri i\u00e7erir (\u00f6rn: Nginx, Certbot).<\/h2>\nsudo yum install epel-release -y\n\n<h2>Gerekli temel ara\u00e7lar\u0131 y\u00fckleyin<\/h2>\nsudo yum install curl wget git unzip -y<\/code><\/pre>\n<h3>Node.js Kurulumu<\/h3>\n<p>Ghost, Node.js \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in sunucunuza Node.js ve npm&#8217;i (Node.js Paket Y\u00f6neticisi) kurman\u0131z gerekmektedir. Ghost, belirli Node.js LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcmlerini gerektirir. Bu makale yaz\u0131ld\u0131\u011f\u0131 s\u0131rada Node.js 16.x veya 18.x \u00f6nerilmektedir. Burada Node.js 18.x s\u00fcr\u00fcm\u00fcn\u00fc kuraca\u011f\u0131z.<\/p>\n<h4>NodeSource Deposu Ekleme<\/h4>\n<p>CentOS&#8217;un varsay\u0131lan depolar\u0131nda genellikle g\u00fcncel Node.js s\u00fcr\u00fcmleri bulunmaz. Bu nedenle, NodeSource deposunu eklememiz gerekmektedir.<\/p>\n<pre><code class=\"language-bash\"># Node.js 18.x s\u00fcr\u00fcm\u00fc i\u00e7in NodeSource deposunu ekleyin\ncurl -sL https:\/\/rpm.nodesource.com\/setup_18.x | sudo bash -<\/code><\/pre>\n<p>Bu komut, NodeSource GPG anahtar\u0131n\u0131 sisteminize ekleyecek ve Node.js paketlerini i\u00e7eren yeni bir yum deposu yap\u0131land\u0131rma dosyas\u0131 olu\u015fturacakt\u0131r.<\/p>\n<h4>Node.js ve npm Kurulumu<\/h4>\n<p>Depo eklendikten sonra Node.js ve npm&#8217;i kolayca kurabiliriz.<\/p>\n<pre><code class=\"language-bash\"># Node.js'yi kurun. Bu, npm'i de otomatik olarak kuracakt\u0131r.\nsudo yum install nodejs -y<\/code><\/pre>\n<h4>S\u00fcr\u00fcm Do\u011frulama<\/h4>\n<p>Kurulumun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in Node.js ve npm s\u00fcr\u00fcmlerini do\u011frulay\u0131n.<\/p>\n<pre><code class=\"language-bash\">node -v\nnpm -v<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 olarak Node.js ve npm&#8217;in y\u00fckl\u00fc s\u00fcr\u00fcmlerini g\u00f6rmelisiniz (\u00f6rn: <code>v18.x.x<\/code> ve <code>8.x.x<\/code>).<\/p>\n<h3>MySQL Veritaban\u0131 Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Ghost, i\u00e7erik ve ayarlar\u0131n\u0131 depolamak i\u00e7in bir veritaban\u0131na ihtiya\u00e7 duyar. Bu makalede MySQL&#8217;i kullanaca\u011f\u0131z.<\/p>\n<h4>MySQL Topluluk Deposu Ekleme<\/h4>\n<p>CentOS&#8217;un varsay\u0131lan depolar\u0131nda eski MySQL s\u00fcr\u00fcmleri bulunabilir. MySQL&#8217;in g\u00fcncel bir s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6rn: MySQL 8.0) kurmak i\u00e7in MySQL Topluluk Deposunu eklememiz gerekmektedir.<\/p>\n<pre><code class=\"language-bash\"># MySQL 8.0 topluluk deposunu ekleyin\nsudo yum install https:\/\/dev.mysql.com\/get\/mysql80-community-release-el7-1.noarch.rpm -y\n\n<h2>MySQL 8.0 deposunun etkinle\u015ftirildi\u011finden emin olmak i\u00e7in kontrol edin<\/h2>\nsudo yum repolist enabled | grep \"mysql.<em>-community.<\/em>\"<\/code><\/pre>\n<h4>MySQL Sunucusu Kurulumu<\/h4>\n<p>Depo eklendikten sonra MySQL sunucusunu kurabiliriz.<\/p>\n<pre><code class=\"language-bash\"># MySQL sunucusunu kurun\nsudo yum install mysql-community-server -y\n\n<h2>MySQL servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin<\/h2>\nsudo systemctl start mysqld\nsudo systemctl enable mysqld<\/code><\/pre>\n<h4>MySQL G\u00fcvenlik Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>MySQL kurulumundan sonra, varsay\u0131lan olarak g\u00fc\u00e7l\u00fc bir root parolas\u0131 atanmaz ve baz\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131 bulunabilir. <code>mysql_secure_installation<\/code> beti\u011fi ile bu g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 gidermeniz \u00f6nemlidir. \u0130lk root parolas\u0131 <code>mysqld<\/code> log dosyas\u0131nda bulunur.<\/p>\n<pre><code class=\"language-bash\"># Ge\u00e7ici root parolas\u0131n\u0131 bulun\nsudo grep 'temporary password' \/var\/log\/mysqld.log\n\n<h2>G\u00fcvenlik yap\u0131land\u0131rma beti\u011fini \u00e7al\u0131\u015ft\u0131r\u0131n<\/h2>\nsudo mysql_secure_installation<\/code><\/pre>\n<p>Betik \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda sizden a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 tamamlaman\u0131z\u0131 isteyecektir:<br \/>\n*   Ge\u00e7ici parolay\u0131 girin.<br \/>\n*   Yeni ve g\u00fc\u00e7l\u00fc bir root parolas\u0131 belirleyin. Parola politikas\u0131 i\u00e7in &#8220;Y&#8221; veya &#8220;y&#8221; tu\u015funa basarak Strong (G\u00fc\u00e7l\u00fc) se\u00e7ene\u011fini se\u00e7meniz \u00f6nerilir.<br \/>\n*   Anonim kullan\u0131c\u0131lar\u0131 kald\u0131rmak i\u00e7in &#8220;Y&#8221; veya &#8220;y&#8221; tu\u015funa bas\u0131n.<br \/>\n*   Root kullan\u0131c\u0131s\u0131n\u0131n uzaktan giri\u015f yapmas\u0131n\u0131 engellemek i\u00e7in &#8220;Y&#8221; veya &#8220;y&#8221; tu\u015funa bas\u0131n.<br \/>\n*   Test veritaban\u0131n\u0131 kald\u0131rmak i\u00e7in &#8220;Y&#8221; veya &#8220;y&#8221; tu\u015funa bas\u0131n.<br \/>\n*   Ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fcklemek i\u00e7in &#8220;Y&#8221; veya &#8220;y&#8221; tu\u015funa bas\u0131n.<\/p>\n<h4>Ghost \u0130\u00e7in Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>Ghost i\u00e7in ayr\u0131 bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturmak, g\u00fcvenlik a\u00e7\u0131s\u0131ndan iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\"># MySQL'e root kullan\u0131c\u0131s\u0131 olarak giri\u015f yap\u0131n\nsudo mysql -u root -p\n\n<h2>MySQL root parolan\u0131z\u0131 girin<\/h2>\n\n<h2>Ghost i\u00e7in bir veritaban\u0131 olu\u015fturun (\u00f6rn: ghost_db)<\/h2>\nCREATE DATABASE ghost_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n\n<h2>Ghost i\u00e7in bir kullan\u0131c\u0131 olu\u015fturun ve g\u00fc\u00e7l\u00fc bir parola atay\u0131n (\u00f6rn: ghost_user)<\/h2>\nCREATE USER 'ghost_user'@'localhost' IDENTIFIED BY 'YOUR_STRONG_PASSWORD';\n\n<h2>Olu\u015fturulan kullan\u0131c\u0131ya veritaban\u0131 \u00fczerinde t\u00fcm ayr\u0131cal\u0131klar\u0131 verin<\/h2>\nGRANT ALL PRIVILEGES ON ghost_db.* TO 'ghost_user'@'localhost';\n\n<h2>Ayr\u0131cal\u0131klar\u0131 g\u00fcncelleyin<\/h2>\nFLUSH PRIVILEGES;\n\n<h2>MySQL'den \u00e7\u0131k\u0131n<\/h2>\nEXIT;<\/code><\/pre>\n<p><code>YOUR_STRONG_PASSWORD<\/code> k\u0131sm\u0131n\u0131 kendi g\u00fc\u00e7l\u00fc parolan\u0131zla de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<h3>Nginx Web Sunucusu Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx, y\u00fcksek performansl\u0131 bir web sunucusu ve ters proxy&#8217;dir. Ghost&#8217;u bir Node.js uygulamas\u0131 olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in Nginx&#8217;i ters proxy olarak kullanaca\u011f\u0131z. Bu sayede Nginx, gelen HTTP\/HTTPS isteklerini Ghost&#8217;un \u00e7al\u0131\u015ft\u0131\u011f\u0131 Node.js s\u00fcrecine y\u00f6nlendirecektir.<\/p>\n<h4>Nginx Kurulumu<\/h4>\n<p>Nginx, EPEL deposunda bulunur, bu depoyu daha \u00f6nce eklemi\u015ftik.<\/p>\n<pre><code class=\"language-bash\"># Nginx'i kurun\nsudo yum install nginx -y\n\n<h2>Nginx servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin<\/h2>\nsudo systemctl start nginx\nsudo systemctl enable nginx<\/code><\/pre>\n<h4>Nginx G\u00fcvenlik Duvar\u0131 Kurallar\u0131<\/h4>\n<p>Daha \u00f6nce HTTP ve HTTPS servislerini g\u00fcvenlik duvar\u0131na eklemi\u015ftik. Nginx&#8217;in bu portlar \u00fczerinden eri\u015filebilir oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\"># G\u00fcvenlik duvar\u0131n\u0131 yeniden y\u00fckleyin (e\u011fer Nginx kurulumundan \u00f6nce eklemediyseniz)\nsudo firewall-cmd --reload<\/code><\/pre>\n<h4>Nginx Sanal Host Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Nginx&#8217;in Ghost&#8217;a gelen istekleri do\u011fru \u015fekilde y\u00f6nlendirmesi i\u00e7in bir sanal host (server block) yap\u0131land\u0131rmas\u0131 olu\u015fturmam\u0131z gerekiyor.<\/p>\n<pre><code class=\"language-bash\"># Varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131 yedekleyin (iste\u011fe ba\u011fl\u0131)\nsudo mv \/etc\/nginx\/nginx.conf \/etc\/nginx\/nginx.conf.bak\n\n<h2>Yeni bir Nginx yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun<\/h2>\nsudo nano \/etc\/nginx\/nginx.conf<\/code><\/pre>\n<p><code>nginx.conf<\/code> dosyas\u0131n\u0131n i\u00e7eri\u011fini a\u015fa\u011f\u0131daki gibi g\u00fcncelleyin veya yeni bir dosya olarak kaydedin. Bu temel bir yap\u0131land\u0131rmad\u0131r. <code>http<\/code> blo\u011funun i\u00e7ine a\u015fa\u011f\u0131daki <code>include<\/code> sat\u0131r\u0131n\u0131 ekledi\u011finizden emin olun:<\/p>\n<pre><code class=\"language-nginx\">user nginx;\nworker_processes auto;\nerror_log \/var\/log\/nginx\/error.log;\npid \/run\/nginx.pid;\n\ninclude \/usr\/share\/nginx\/modules\/*.conf;\n\nevents {\n    worker_connections 1024;\n}\n\nhttp {\n    log_format  main  '$remote_addr - $remote_user [$time_local] \"$request\" '\n                      '$status $body_bytes_sent \"$http_referer\" '\n                      '\"$http_user_agent\" \"$http_x_forwarded_for\"';\n\n    access_log  \/var\/log\/nginx\/access.log  main;\n\n    sendfile            on;\n    tcp_nopush          on;\n    tcp_nodelay         on;\n    keepalive_timeout   65;\n    types_hash_max_size 2048;\n\n    include             \/etc\/nginx\/mime.types;\n    default_type        application\/octet-stream;\n\n    # Load modular configuration files from the \/etc\/nginx\/conf.d directory.\n    # See http:\/\/nginx.org\/en\/docs\/ngx_core_module.html#include\n    # for more information.\n    include \/etc\/nginx\/conf.d\/*.conf;\n\n    # Varsay\u0131lan sunucu blo\u011funu kald\u0131r\u0131n veya devre d\u0131\u015f\u0131 b\u0131rak\u0131n\n    # server {\n    #     listen       80 default_server;\n    #     listen       [::]:80 default_server;\n    #     server_name  _;\n    #     root         \/usr\/share\/nginx\/html;\n    #\n    #     include \/etc\/nginx\/default.d\/*.conf;\n    #\n    #     location \/ {\n    #     }\n    #\n    #     error_page 404 \/404.html;\n    #         location = \/40x.html {\n    #     }\n    #\n    #     error_page 500 502 503 504 \/50x.html;\n    #         location = \/50x.html {\n    #     }\n    # }\n}<\/code><\/pre>\n<p>\u015eimdi Ghost i\u00e7in bir yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m. <code>yourdomain.com<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/conf.d\/yourdomain.com.conf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi dosyaya yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n\n    server_name yourdomain.com www.yourdomain.com;\n    root \/var\/www\/ghost; # Bu dizin Ghost CLI taraf\u0131ndan olu\u015fturulacakt\u0131r\n\n    location \/ {\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header Host $http_host;\n        proxy_pass http:\/\/127.0.0.1:2368; # Ghost'un varsay\u0131lan portu\n    }\n\n    # Let's Encrypt sertifika do\u011frulama i\u00e7in gerekli\n    location ~ \/.well-known {\n        allow all;\n    }\n}<\/code><\/pre>\n<p>Nginx yap\u0131land\u0131rmas\u0131n\u0131 test edin ve hatalar\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>syntax is ok<\/code> ve <code>test is successful<\/code> mesajlar\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, Nginx servisini yeniden y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<h3>Ghost CLI Kurulumu<\/h3>\n<p>Ghost CLI (Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc), Ghost kurulumunu, yap\u0131land\u0131rmas\u0131n\u0131 ve y\u00f6netimini kolayla\u015ft\u0131ran bir ara\u00e7t\u0131r. Node.js&#8217;nin npm paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla global olarak kurulur.<\/p>\n<pre><code class=\"language-bash\"># Ghost CLI'yi global olarak kurun\nsudo npm install ghost-cli@latest -g<\/code><\/pre>\n<p>Kurulumun ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulamak i\u00e7in <code>ghost help<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<h3>Ghost Kurulumu<\/h3>\n<p>Art\u0131k t\u00fcm \u00f6nko\u015fullar haz\u0131r oldu\u011funa g\u00f6re, Ghost&#8217;u kurmaya ba\u015flayabiliriz. Ghost CLI, kurulum s\u00fcrecinin b\u00fcy\u00fck bir k\u0131sm\u0131n\u0131 otomatikle\u015ftirir.<\/p>\n<h4>Ghost \u0130\u00e7in Dizin Olu\u015fturma<\/h4>\n<p>Ghost&#8217;u kurmak i\u00e7in \u00f6zel bir dizin olu\u015fturmak iyi bir uygulamad\u0131r. Genellikle <code>\/var\/www\/ghost<\/code> yolu tercih edilir.<\/p>\n<pre><code class=\"language-bash\"># Ghost i\u00e7in dizin olu\u015fturun\nsudo mkdir -p \/var\/www\/ghost\n\n<h2>Dizin sahibini daha \u00f6nce olu\u015fturdu\u011fumuz sudo kullan\u0131c\u0131s\u0131na atay\u0131n (\u00f6rn: ghost_user)<\/h2>\nsudo chown ghost_user:ghost_user \/var\/www\/ghost\n\n<h2>Dizin izinlerini ayarlay\u0131n (sudo kullan\u0131c\u0131s\u0131n\u0131n yazma iznine sahip olmas\u0131 i\u00e7in)<\/h2>\nsudo chmod 775 \/var\/www\/ghost\n\n<h2>Ghost dizinine ge\u00e7i\u015f yap\u0131n<\/h2>\ncd \/var\/www\/ghost<\/code><\/pre>\n<h4>Ghost Kurulum Sihirbaz\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rma<\/h4>\n<p>\u015eimdi Ghost CLI&#8217;y\u0131 kullanarak kurulum sihirbaz\u0131n\u0131 ba\u015flatabiliriz.<\/p>\n<pre><code class=\"language-bash\">ghost install<\/code><\/pre>\n<p><code>ghost install<\/code> komutu size birka\u00e7 soru soracakt\u0131r:<\/p>\n<p>1.  <strong>Enter your blog URL:<\/strong> <code>https:\/\/yourdomain.com<\/code> veya <code>http:\/\/yourdomain.com<\/code> (SSL&#8217;i daha sonra yap\u0131land\u0131racaksak HTTP ile ba\u015flayabiliriz, ancak CLI genellikle SSL kurulumunu da entegre eder). E\u011fer SSL kullanacaksan\u0131z <code>https<\/code> ile ba\u015flamak daha iyidir.<br \/>\n2.  <strong>Enter your MySQL hostname:<\/strong> <code>localhost<\/code><br \/>\n3.  <strong>Enter your MySQL username:<\/strong> <code>ghost_user<\/code> (daha \u00f6nce olu\u015fturdu\u011funuz kullan\u0131c\u0131 ad\u0131)<br \/>\n4.  <strong>Enter your MySQL password:<\/strong> <code>YOUR_STRONG_PASSWORD<\/code> (daha \u00f6nce belirledi\u011finiz parola)<br \/>\n5.  <strong>Enter your Ghost database name:<\/strong> <code>ghost_db<\/code> (daha \u00f6nce olu\u015fturdu\u011funuz veritaban\u0131 ad\u0131)<br \/>\n6.  <strong>Do you wish to set up Nginx?<\/strong> <code>Yes<\/code> (Bu, Nginx yap\u0131land\u0131rma dosyas\u0131n\u0131 otomatik olarak olu\u015fturacak veya g\u00fcncelleyecektir.)<br \/>\n7.  <strong>Do you wish to set up SSL?<\/strong> <code>Yes<\/code> (Bu, Let&#8217;s Encrypt kullanarak SSL sertifikas\u0131 alacak ve Nginx&#8217;i HTTPS i\u00e7in yap\u0131land\u0131racakt\u0131r. Bu ad\u0131m i\u00e7in ge\u00e7erli bir alan ad\u0131na ve DNS ayarlar\u0131na sahip olman\u0131z gerekir.)<br \/>\n    *   <strong>Enter your email (used for Let&#8217;s Encrypt notifications):<\/strong> <code>your_email@example.com<\/code><br \/>\n8.  <strong>Do you wish to set up Systemd?<\/strong> <code>Yes<\/code> (Bu, Ghost&#8217;u bir sistem servisi olarak \u00e7al\u0131\u015ft\u0131racak ve sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flayacakt\u0131r.)<br \/>\n9.  <strong>Do you wish to start Ghost?<\/strong> <code>Yes<\/code><\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda Ghost CLI, Ghost&#8217;u indirecek, ba\u011f\u0131ml\u0131l\u0131klar\u0131 kuracak, veritaban\u0131n\u0131 yap\u0131land\u0131racak, Nginx sanal hostunu g\u00fcncelleyecek (SSL ile birlikte), bir systemd servisi olu\u015fturacak ve Ghost&#8217;u ba\u015flatacakt\u0131r. Bu i\u015flem biraz zaman alabilir.<\/p>\n<h3>Ghost Yap\u0131land\u0131rmas\u0131<\/h3>\n<p><code>ghost install<\/code> komutu \u00e7o\u011fu yap\u0131land\u0131rmay\u0131 otomatik olarak halleder. Ancak, gerekirse Ghost&#8217;un yap\u0131land\u0131rma dosyas\u0131n\u0131 manuel olarak d\u00fczenleyebilirsiniz. Bu dosya, Ghost kurulum dizininizin <code>current<\/code> klas\u00f6r\u00fcnde bulunur: <code>\/var\/www\/ghost\/current\/config.production.json<\/code>.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/ghost\/current\/config.production.json<\/code><\/pre>\n<p>Bu dosyada, <code>url<\/code>, <code>server<\/code> (port), <code>database<\/code> ba\u011flant\u0131 bilgileri ve <code>mail<\/code> ayarlar\u0131 gibi \u00f6nemli parametreler bulunur. \u00d6zellikle e-posta g\u00f6nderme i\u015flevselli\u011fi i\u00e7in <code>mail<\/code> b\u00f6l\u00fcm\u00fcn\u00fc yap\u0131land\u0131rman\u0131z gerekebilir. \u00d6rne\u011fin, bir SMTP hizmeti kullanmak i\u00e7in:<\/p>\n<pre><code class=\"language-json\">{\n  \"url\": \"https:\/\/yourdomain.com\",\n  \"server\": {\n    \"port\": 2368,\n    \"host\": \"127.0.0.1\"\n  },\n  \"database\": {\n    \"client\": \"mysql\",\n    \"connection\": {\n      \"host\": \"localhost\",\n      \"user\": \"ghost_user\",\n      \"password\": \"YOUR_STRONG_PASSWORD\",\n      \"database\": \"ghost_db\"\n    }\n  },\n  \"mail\": {\n    \"transport\": \"SMTP\",\n    \"options\": {\n      \"service\": \"Mailgun\", \/\/ veya \"Gmail\", \"Outlook365\" vb.\n      \"auth\": {\n        \"user\": \"postmaster@mg.yourdomain.com\",\n        \"pass\": \"YOUR_MAILGUN_API_KEY\"\n      }\n    }\n  },\n  \"logging\": {\n    \"transports\": [\n      \"file\",\n      \"stdout\"\n    ]\n  },\n  \"process\": \"systemd\",\n  \"paths\": {\n    \"contentPath\": \"\/var\/www\/ghost\/content\"\n  }\n}<\/code><\/pre>\n<p>E-posta ayarlar\u0131n\u0131 yap\u0131land\u0131rd\u0131ktan sonra veya herhangi bir manuel de\u011fi\u015fiklik yapt\u0131ktan sonra Ghost&#8217;u yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/ghost\nghost restart<\/code><\/pre>\n<h3>Ghost&#8217;u Sistem Servisi Olarak \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>Ghost CLI, kurulum s\u0131ras\u0131nda Ghost i\u00e7in otomatik olarak bir <code>systemd<\/code> servisi olu\u015fturur. Bu, Ghost&#8217;un arka planda s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 ve sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Ghost CLI taraf\u0131ndan olu\u015fturulan servis dosyas\u0131n\u0131n ad\u0131 genellikle <code>ghost-yourdomain-com.service<\/code> \u015feklindedir ve <code>\/lib\/systemd\/system\/<\/code> dizininde bulunur.<\/p>\n<pre><code class=\"language-bash\"># Ghost servisinin durumunu kontrol edin\nsudo systemctl status ghost_yourdomain_com\n\n<h2>E\u011fer servis \u00e7al\u0131\u015fm\u0131yorsa ba\u015flat\u0131n<\/h2>\nsudo systemctl start ghost_yourdomain_com\n\n<h2>Servisin sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin<\/h2>\nsudo systemctl enable ghost_yourdomain_com\n\n<h2>Ghost loglar\u0131n\u0131 takip etmek i\u00e7in<\/h2>\njournalctl -u ghost_yourdomain_com -f<\/code><\/pre>\n<p><code>ghost_yourdomain_com<\/code> k\u0131sm\u0131n\u0131 Ghost CLI&#8217;n\u0131n olu\u015fturdu\u011fu servis ad\u0131yla de\u011fi\u015ftirmeyi unutmay\u0131n (genellikle alan ad\u0131n\u0131z\u0131n tirelerle ayr\u0131lm\u0131\u015f halidir, \u00f6rn: <code>ghost-blog-example-com<\/code>).<\/p>\n<h3>Nginx ile SSL\/TLS Yap\u0131land\u0131rmas\u0131 (Let&#8217;s Encrypt)<\/h3>\n<p><code>ghost install<\/code> komutu s\u0131ras\u0131nda SSL kurulumunu se\u00e7tiyseniz, Ghost CLI bu ad\u0131m\u0131 sizin i\u00e7in otomatik olarak halletmi\u015f olmal\u0131d\u0131r. Bu durumda, Let&#8217;s Encrypt sertifikalar\u0131 al\u0131nm\u0131\u015f ve Nginx yap\u0131land\u0131rman\u0131z HTTPS trafi\u011fini y\u00f6netecek \u015fekilde g\u00fcncellenmi\u015f olacakt\u0131r.<\/p>\n<p>E\u011fer manuel olarak veya kurulum s\u0131ras\u0131nda SSL&#8217;i atlad\u0131ysan\u0131z, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 takip ederek Let&#8217;s Encrypt ile \u00fccretsiz SSL sertifikalar\u0131 alabilir ve Nginx&#8217;i yap\u0131land\u0131rabilirsiniz.<\/p>\n<h4>Certbot Kurulumu<\/h4>\n<p>Certbot, Let&#8217;s Encrypt sertifikalar\u0131n\u0131 kolayca alman\u0131z\u0131 ve y\u00f6netmenizi sa\u011flayan bir ara\u00e7t\u0131r.<\/p>\n<pre><code class=\"language-bash\"># Certbot ve Nginx eklentisini kurun\nsudo yum install certbot python2-certbot-nginx -y<\/code><\/pre>\n<h4>SSL Sertifikas\u0131 Alma<\/h4>\n<p>Certbot&#8217;u Nginx eklentisi ile \u00e7al\u0131\u015ft\u0131rarak alan ad\u0131n\u0131z i\u00e7in sertifika alabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com<\/code><\/pre>\n<p>Bu komut, Certbot&#8217;u \u00e7al\u0131\u015ft\u0131racak ve sizden e-posta adresinizi (acil durum bildirimleri i\u00e7in) ve Let&#8217;s Encrypt hizmet \u015fartlar\u0131n\u0131 kabul etmenizi isteyecektir. Ayr\u0131ca HTTP trafi\u011fini HTTPS&#8217;ye y\u00f6nlendirmek isteyip istemedi\u011finizi soracakt\u0131r; genellikle bu se\u00e7ene\u011fi (<code>2: Redirect<\/code>) se\u00e7mek iyi bir uygulamad\u0131r.<\/p>\n<p>Certbot, Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 otomatik olarak g\u00fcncelleyecek ve SSL sertifikalar\u0131n\u0131 y\u00fckleyecektir.<\/p>\n<h4>Otomatik Yenilemeyi Ayarlama<\/h4>\n<p>Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Certbot, bu sertifikalar\u0131 otomatik olarak yenilemek i\u00e7in bir cron job veya systemd timer olu\u015fturur. Yenilemenin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in kuru \u00e7al\u0131\u015ft\u0131rma yapabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>E\u011fer herhangi bir hata almazsan\u0131z, otomatik yenileme d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<h4>Nginx Sanal Host Dosyas\u0131n\u0131 \u0130nceleme<\/h4>\n<p>Certbot&#8217;un Nginx yap\u0131land\u0131rman\u0131z\u0131 nas\u0131l g\u00fcncelledi\u011fini g\u00f6rmek i\u00e7in <code>\/etc\/nginx\/conf.d\/yourdomain.com.conf<\/code> dosyas\u0131n\u0131 inceleyebilirsiniz. Art\u0131k hem 80 hem de 443 portlar\u0131n\u0131 dinleyen iki <code>server<\/code> blo\u011funa sahip olmal\u0131 veya 80 portundan 443&#8217;e y\u00f6nlendirme yapan bir yap\u0131ya sahip olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-nginx\"># \u00d6rnek Certbot taraf\u0131ndan g\u00fcncellenmi\u015f Nginx yap\u0131land\u0131rmas\u0131\nserver {\n    listen 80;\n    listen [::]:80;\n    server_name yourdomain.com www.yourdomain.com;\n\n    # HTTP'den HTTPS'ye y\u00f6nlendirme (Certbot taraf\u0131ndan eklenir)\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n    server_name yourdomain.com www.yourdomain.com;\n\n    root \/var\/www\/ghost;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/yourdomain.com\/fullchain.pem;\n    ssl_certificate_key \/etc\/letsencrypt\/live\/yourdomain.com\/privkey.pem;\n    include \/etc\/letsencrypt\/options-ssl-nginx.conf;\n    ssl_dhparam \/etc\/letsencrypt\/ssl-dhparams.pem;\n\n    location \/ {\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header Host $http_host;\n        proxy_pass http:\/\/127.0.0.1:2368;\n    }\n\n    location ~ \/.well-known {\n        allow all;\n    }\n}<\/code><\/pre>\n<p>Yap\u0131land\u0131rmay\u0131 kontrol edin ve Nginx&#8217;i yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<h3>Ghost Y\u00f6netim Paneline Eri\u015fim<\/h3>\n<p>T\u00fcm kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 tamamland\u0131ktan sonra Ghost blogunuza web taray\u0131c\u0131n\u0131zdan eri\u015febilirsiniz.<\/p>\n<p>Taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve blogunuzun URL&#8217;sine <code>\/ghost<\/code> ekleyerek y\u00f6netim paneline gidin:<\/p>\n<p><code>https:\/\/yourdomain.com\/ghost<\/code><\/p>\n<p>Bu, sizi Ghost&#8217;un ilk kurulum sayfas\u0131na y\u00f6nlendirecektir. Burada:<\/p>\n<p>1.  <strong>Create your account:<\/strong> Blogunuzun sahibi (owner) i\u00e7in bir hesap olu\u015fturman\u0131z istenir. E-posta adresinizi, ad\u0131n\u0131z\u0131 ve g\u00fc\u00e7l\u00fc bir parola girin.<br \/>\n2.  <strong>Invite your team:<\/strong> \u0130ste\u011fe ba\u011fl\u0131 olarak di\u011fer yazarlar\u0131 veya edit\u00f6rleri davet edebilirsiniz. Bu ad\u0131m\u0131 atlay\u0131p daha sonra y\u00f6netim panelinden de yapabilirsiniz.<br \/>\n3.  <strong>Explore your site:<\/strong> Hesab\u0131n\u0131z\u0131 olu\u015fturduktan sonra Ghost y\u00f6netim paneline y\u00f6nlendirileceksiniz. Buradan yaz\u0131lar\u0131n\u0131z\u0131 olu\u015fturabilir, temalar\u0131 y\u00f6netebilir, ayarlar\u0131 yap\u0131land\u0131rabilir ve blogunuzu \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<p>Y\u00f6netim panelinde, i\u00e7erik olu\u015fturma, SEO ayarlar\u0131, tema \u00f6zelle\u015ftirme, navigasyon y\u00f6netimi ve daha fazlas\u0131 gibi bir\u00e7ok se\u00e7enek bulacaks\u0131n\u0131z.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ghost blog platformunu CentOS 7 i\u015fletim sistemi \u00fczerine kurma ve yap\u0131land\u0131rma s\u00fcrecini ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde ele ald\u0131k. Node.js, MySQL ve Nginx gibi temel ba\u011f\u0131ml\u0131l\u0131klar\u0131n kurulumundan, Ghost CLI kullanarak blogun ba\u015flat\u0131lmas\u0131na ve Let&#8217;s Encrypt ile SSL\/TLS g\u00fcvenli\u011finin sa\u011flanmas\u0131na kadar t\u00fcm \u00f6nemli ad\u0131mlar\u0131 tamamlad\u0131k.<\/p>\n<p>Art\u0131k CentOS 7 sunucunuzda \u00e7al\u0131\u015fan, g\u00fcvenli ve modern bir Ghost bloguna sahipsiniz. Blogunuzu \u00f6zelle\u015ftirmek, i\u00e7erik yay\u0131nlamak ve d\u00fcnya ile payla\u015fmak i\u00e7in y\u00f6netim panelini ke\u015ffetmeye ba\u015flayabilirsiniz.<\/p>\n<p>Unutmay\u0131n ki sunucu y\u00f6netimi s\u00fcrekli bir s\u00fcre\u00e7tir. Sistem g\u00fcncellemelerini d\u00fczenli olarak yapmak, g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 g\u00f6zden ge\u00e7irmek, veritaban\u0131 yedeklerini almak ve Ghost s\u00fcr\u00fcm\u00fcn\u00fcz\u00fc g\u00fcncel tutmak, blogunuzun sorunsuz ve g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmaya devam etmesi i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Ghost CLI (<code>ghost update<\/code>) ve <code>yum<\/code> paket y\u00f6neticisi (<code>sudo yum update<\/code>) bu s\u00fcre\u00e7lerde size yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p>Ba\u015far\u0131l\u0131 bir blogculuk deneyimi dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ghost&#8217;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\nCentOS 7, sunucu ortamlar\u0131nda kararl\u0131l\u0131\u011f\u0131 ve g\u00fcvenilirli\u011fi ile bilinen pop\u00fcler bir Li","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-37948","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>Ghost&#039;u CentOS 7 \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\/ghostu-centos-7-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=\"Ghost&#039;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"Ghost&#039;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 CentOS 7, sunucu ortamlar\u0131nda kararl\u0131l\u0131\u011f\u0131 ve g\u00fcvenilirli\u011fi ile bilinen pop\u00fcler bir Li\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-19T08:41:00+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ghost&#8217;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2026-01-19T08:41:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/\"},\"wordCount\":2507,\"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\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/\",\"name\":\"Ghost'u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-19T08:41:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ghost&#8217;u CentOS 7 \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":"Ghost'u CentOS 7 \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\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ghost'u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131","og_description":"Ghost'u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 CentOS 7, sunucu ortamlar\u0131nda kararl\u0131l\u0131\u011f\u0131 ve g\u00fcvenilirli\u011fi ile bilinen pop\u00fcler bir Li","og_url":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-19T08:41:00+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ghost&#8217;u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131","datePublished":"2026-01-19T08:41:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/"},"wordCount":2507,"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\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/","name":"Ghost'u CentOS 7 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-19T08:41:00+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ghostu-centos-7-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ghost&#8217;u CentOS 7 \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\/37948","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=37948"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37948\/revisions"}],"predecessor-version":[{"id":37949,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37948\/revisions\/37949"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37948"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37948"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}