{"id":37326,"date":"2025-12-31T00:40:51","date_gmt":"2025-12-30T21:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37326"},"modified":"2025-12-31T00:40:51","modified_gmt":"2025-12-30T21:40:51","slug":"ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/","title":{"rendered":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber<\/h2>\n<h3>Giri\u015f: Grails ve Ubuntu 12.04 D\u00fcnyas\u0131na Ad\u0131m Atmak<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 prototipleme ve uygulama geli\u015ftirme s\u00fcre\u00e7leri b\u00fcy\u00fck \u00f6nem ta\u015f\u0131maktad\u0131r. Bu ba\u011flamda, Groovy programlama dili \u00fczerine in\u015fa edilmi\u015f, &#8220;convention-over-configuration&#8221; (yap\u0131land\u0131rma yerine kural) prensibini benimseyen a\u00e7\u0131k kaynakl\u0131 bir web uygulama \u00e7at\u0131s\u0131 olan Grails, geli\u015ftiricilere g\u00fc\u00e7l\u00fc bir ara\u00e7 seti sunar. Grails, Spring Framework ve Hibernate gibi kan\u0131tlanm\u0131\u015f teknolojileri temel alarak, RESTful API&#8217;ler, dinamik web siteleri ve kurumsal uygulamalar geli\u015ftirmek i\u00e7in y\u00fcksek verimlilik ve esneklik sa\u011flar. \u00d6zellikle Java ekosistemine a\u015fina olan geli\u015ftiriciler i\u00e7in \u00f6\u011frenmesi kolay ve \u00fcretkenli\u011fi art\u0131ran bir platformdur.<\/p>\n<p>Bu makale, belirli bir senaryoyu ele alarak, Ubuntu 12.04 i\u015fletim sistemi kurulu bir Sanal \u00d6zel Sunucu (VPS) \u00fczerine Grails&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m ve kapsaml\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Ubuntu 12.04 (Precise Pangolin), Nisan 2012&#8217;de piyasaya s\u00fcr\u00fclm\u00fc\u015f ve Nisan 2017&#8217;de \u00f6mr\u00fcn\u00fc tamamlam\u0131\u015f eski bir LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fc olmas\u0131na ra\u011fmen, baz\u0131 eski projeler veya \u00f6zel gereksinimler nedeniyle hala belirli ortamlarda kullan\u0131l\u0131yor olabilir. Bu rehber, bu \u00f6zel duruma odaklanarak, Grails&#8217;in bu platformda sorunsuz bir \u015fekilde nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 g\u00f6stermeyi ama\u00e7lamaktad\u0131r. Bir VPS kullanmak, sunucu \u00fczerinde tam kontrol sa\u011flamas\u0131, \u00f6l\u00e7eklenebilirlik ve maliyet etkinli\u011fi gibi avantajlar sunarak, geli\u015ftirme ve test ortamlar\u0131 i\u00e7in ideal bir \u00e7\u00f6z\u00fcm haline getirir.<\/p>\n<p>Bu rehberin sonunda, Ubuntu 12.04 VPS&#8217;nizde \u00e7al\u0131\u015fan bir Grails ortam\u0131na sahip olacak ve ilk Grails uygulaman\u0131z\u0131 ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131rabileceksiniz. Her ad\u0131m, detayl\u0131 a\u00e7\u0131klamalar ve komut \u00f6rnekleriyle desteklenecek, b\u00f6ylece kurulum s\u00fcreci boyunca kar\u015f\u0131la\u015fabilece\u011finiz olas\u0131 sorunlara kar\u015f\u0131 da haz\u0131rl\u0131kl\u0131 olacaks\u0131n\u0131z.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Grails kurulumuna ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki temel \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olman\u0131z gerekmektedir:<\/p>\n<p>*   <strong>Ubuntu 12.04 Kurulu Bir VPS:<\/strong> Bu rehber, Ubuntu 12.04 i\u015fletim sistemine sahip bir VPS&#8217;i temel almaktad\u0131r. Sunucunuzun internet eri\u015fimine sahip oldu\u011fundan emin olun.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> VPS&#8217;inize Secure Shell (SSH) arac\u0131l\u0131\u011f\u0131yla eri\u015fim sa\u011flaman\u0131z gerekecektir. Bu, komut sat\u0131r\u0131 \u00fczerinden sunucuyla etkile\u015fim kurman\u0131z\u0131 sa\u011flar.<br \/>\n*   <strong><code>sudo<\/code> Yetkisine Sahip Bir Kullan\u0131c\u0131:<\/strong> Kurulum i\u015flemleri s\u0131ras\u0131nda sistem d\u00fczeyinde de\u011fi\u015fiklikler yapman\u0131z gerekece\u011finden, <code>sudo<\/code> (superuser do) komutunu kullanma yetkisine sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z olmal\u0131d\u0131r. G\u00fcvenlik nedeniyle root kullan\u0131c\u0131s\u0131 yerine <code>sudo<\/code> yetkisine sahip normal bir kullan\u0131c\u0131 hesab\u0131 kullan\u0131lmas\u0131 \u00f6nerilir.<br \/>\n*   <strong>Temel Linux Komut Sat\u0131r\u0131 Bilgisi:<\/strong> Temel dosya sistemi navigasyonu (<code>cd<\/code>, <code>ls<\/code>, <code>mkdir<\/code>), dosya d\u00fczenleme (<code>nano<\/code>, <code>vi<\/code>) ve paket y\u00f6netimi (<code>apt-get<\/code>) komutlar\u0131na a\u015fina olman\u0131z, kurulum s\u00fcrecini daha rahat y\u00f6netmenizi sa\u011flayacakt\u0131r.<\/p>\n<h3>Kuruluma Ba\u015flamadan \u00d6nce: Sistem G\u00fcncelleme<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan emin olmak iyi bir pratiktir. Bu, mevcut paketlerin en son g\u00fcvenlik yamalar\u0131na ve hata d\u00fczeltmelerine sahip olmas\u0131n\u0131 sa\u011flar ve olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler.<\/p>\n<p>VPS&#8217;inize SSH arac\u0131l\u0131\u011f\u0131yla ba\u011fland\u0131ktan sonra, a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak paket listelerinizi g\u00fcncelleyin ve y\u00fckl\u00fc paketleri y\u00fckseltin:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get upgrade -y<\/code><\/pre>\n<p>*   <code>sudo apt-get update<\/code>: Bu komut, yerel paket listenizi Ubuntu depolar\u0131ndaki en son bilgilerle senkronize eder. Bu, sisteminizin hangi paketlerin y\u00fckseltilebilece\u011fini veya yeni paketlerin mevcut oldu\u011funu bilmesini sa\u011flar.<br \/>\n*   <code>sudo apt-get upgrade -y<\/code>: Bu komut, sisteminizdeki y\u00fckl\u00fc t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm onay istemlerine otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar, bu da uzun bir y\u00fckseltme listesi oldu\u011funda faydal\u0131d\u0131r. Y\u00fckseltme i\u015flemi biraz zaman alabilir; tamamlanmas\u0131n\u0131 bekleyin.<\/p>\n<p>Sistem g\u00fcncellemeleri tamamland\u0131ktan sonra, Grails kurulumuna ge\u00e7meye haz\u0131r\u0131z.<\/p>\n<h3>Ad\u0131m 1: Java Geli\u015ftirme Kiti (JDK) Kurulumu<\/h3>\n<p>Grails, Java Sanal Makinesi (JVM) \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in sisteminizde bir Java Geli\u015ftirme Kiti (JDK) kurulu olmas\u0131 zorunludur. Ubuntu 12.04 ve bu rehberde \u00f6nerilen Grails 2.x serisi i\u00e7in Oracle JDK 7 en uygun se\u00e7imdir. Oracle JDK, performans ve uyumluluk a\u00e7\u0131s\u0131ndan genellikle OpenJDK&#8217;ya tercih edilir.<\/p>\n<h4>PPA Ekleme (Oracle JDK i\u00e7in)<\/h4>\n<p>Ubuntu 12.04&#8217;e Oracle JDK 7 kurman\u0131n en kolay yollar\u0131ndan biri, <code>webupd8team<\/code> taraf\u0131ndan sa\u011flanan bir PPA (Personal Package Archive) kullanmakt\u0131r. Bu PPA, Oracle&#8217;\u0131n Java y\u00fckleyicisini otomatikle\u015ftiren bir komut dosyas\u0131 i\u00e7erir.<\/p>\n<p>\u0130lk olarak, PPA&#8217;y\u0131 sisteminize ekleyin:<\/p>\n<pre><code class=\"language-bash\">sudo add-apt-repository ppa:webupd8team\/java<\/code><\/pre>\n<p>Bu komutun ard\u0131ndan, PPA&#8217;dan gelen yeni paketleri tan\u0131mak i\u00e7in paket listenizi tekrar g\u00fcncellemeniz gerekecektir:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update<\/code><\/pre>\n<h4>Oracle JDK 7 Kurulumu<\/h4>\n<p>PPA eklendikten ve paket listeleri g\u00fcncellendikten sonra, Oracle JDK 7&#8217;yi kolayca y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install oracle-java7-installer -y<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Oracle&#8217;\u0131n lisans anla\u015fmas\u0131n\u0131 kabul etmeniz istenecektir. Kurulumu tamamlamak i\u00e7in bu anla\u015fmay\u0131 kabul etmeniz gerekmektedir. Y\u00fckleyici, Oracle&#8217;\u0131n web sitesinden JDK dosyalar\u0131n\u0131 otomatik olarak indirip kuracakt\u0131r. Bu i\u015flem, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ba\u011fl\u0131 olarak biraz zaman alabilir.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, sistemin varsay\u0131lan Java s\u00fcr\u00fcm\u00fcn\u00fcn Oracle JDK 7 oldu\u011fundan emin olmak i\u00e7in a\u015fa\u011f\u0131daki paketi de kurman\u0131z \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install oracle-java7-set-default -y<\/code><\/pre>\n<p>Bu paket, <code>update-alternatives<\/code> sistemini kullanarak Oracle JDK 7&#8217;yi sisteminizdeki varsay\u0131lan Java s\u00fcr\u00fcm\u00fc olarak ayarlar.<\/p>\n<h4><code>JAVA_HOME<\/code> Ortam De\u011fi\u015fkenini Ayarlama<\/h4>\n<p>Grails ve di\u011fer bir\u00e7ok Java tabanl\u0131 uygulama, Java kurulum yolunu bulmak i\u00e7in <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkenine ihtiya\u00e7 duyar. Bu de\u011fi\u015fkeni ayarlamak ve sisteminize kal\u0131c\u0131 hale getirmek \u00f6nemlidir. Bunu <code>\/etc\/profile.d\/<\/code> dizini alt\u0131nda \u00f6zel bir betik dosyas\u0131 olu\u015fturarak yapabiliriz. Bu dizindeki betikler, her oturum a\u00e7\u0131ld\u0131\u011f\u0131nda otomatik olarak \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>A\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak <code>java.sh<\/code> adl\u0131 bir dosya olu\u015fturun ve <code>JAVA_HOME<\/code> ile <code>PATH<\/code> de\u011fi\u015fkenlerini ayarlay\u0131n:<\/p>\n<pre><code class=\"language-bash\">echo \"export JAVA_HOME=\/usr\/lib\/jvm\/java-7-oracle\" | sudo tee \/etc\/profile.d\/java.sh\necho \"export PATH=\\$PATH:\\$JAVA_HOME\/bin\" | sudo tee -a \/etc\/profile.d\/java.sh<\/code><\/pre>\n<p>*   <code>echo \"export JAVA_HOME=\/usr\/lib\/jvm\/java-7-oracle\" | sudo tee \/etc\/profile.d\/java.sh<\/code>: Bu komut, <code>JAVA_HOME<\/code> de\u011fi\u015fkenini Oracle JDK 7&#8217;nin kurulum yoluna ayarlar ve bu tan\u0131m\u0131 <code>\/etc\/profile.d\/java.sh<\/code> dosyas\u0131na yazar. <code>tee<\/code> komutu, hem \u00e7\u0131kt\u0131y\u0131 ekrana yans\u0131t\u0131r hem de belirtilen dosyaya yazar. <code>sudo<\/code> ile kullan\u0131lmas\u0131, dosyay\u0131 root yetkileriyle olu\u015fturmay\u0131\/yazmay\u0131 sa\u011flar.<br \/>\n*   <code>echo \"export PATH=\\$PATH:\\$JAVA_HOME\/bin\" | sudo tee -a \/etc\/profile.d\/java.sh<\/code>: Bu komut, Java&#8217;n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyalar\u0131n\u0131n bulundu\u011fu dizini (<code>$JAVA_HOME\/bin<\/code>) sistemin <code>PATH<\/code> de\u011fi\u015fkenine ekler. Bu, <code>java<\/code> veya <code>javac<\/code> gibi komutlar\u0131 herhangi bir dizinden do\u011frudan \u00e7al\u0131\u015ft\u0131rabilmenizi sa\u011flar. <code>-a<\/code> bayra\u011f\u0131, \u00e7\u0131kt\u0131y\u0131 dosyan\u0131n sonuna ekler (append).<\/p>\n<p>De\u011fi\u015fikliklerin ge\u00e7erli olmas\u0131 i\u00e7in, yeni olu\u015fturdu\u011funuz betik dosyas\u0131n\u0131 mevcut oturumunuza kaynak olarak g\u00f6stermeniz veya sunucunuzu yeniden ba\u015flatman\u0131z gerekir. Mevcut oturum i\u00e7in <code>source<\/code> komutunu kullanabiliriz:<\/p>\n<pre><code class=\"language-bash\">source \/etc\/profile.d\/java.sh<\/code><\/pre>\n<h4>Java Kurulumunu Do\u011frulama<\/h4>\n<p>Java&#8217;n\u0131n do\u011fru bir \u015fekilde kuruldu\u011fundan ve ortam de\u011fi\u015fkenlerinin ayarland\u0131\u011f\u0131ndan emin olmak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">java -version\njavac -version\necho $JAVA_HOME<\/code><\/pre>\n<p>Beklenen \u00e7\u0131kt\u0131lar \u015funlara benzer olmal\u0131d\u0131r:<\/p>\n<pre><code class=\"language-\">java version \"1.7.0_XX\"\nJava(TM) SE Runtime Environment (build 1.7.0_XX-bXX)\nJava HotSpot(TM) 64-Bit Server VM (build 24.XX-bXX, mixed mode)\n\njavac 1.7.0_XX\n\n\/usr\/lib\/jvm\/java-7-oracle<\/code><\/pre>\n<p>E\u011fer bu \u00e7\u0131kt\u0131larla kar\u015f\u0131la\u015f\u0131yorsan\u0131z, Java JDK kurulumunuz ba\u015far\u0131yla tamamlanm\u0131\u015ft\u0131r.<\/p>\n<h3>Ad\u0131m 2: Grails&#8217;i \u0130ndirme<\/h3>\n<p>Java ortam\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re, \u015fimdi Grails&#8217;i indirme zaman\u0131. Ubuntu 12.04 ve Oracle JDK 7 ile en iyi uyumlulu\u011fu sa\u011flamak i\u00e7in Grails 2.x serisinden bir s\u00fcr\u00fcm tercih etmeliyiz. Grails 2.5.6, bu serinin son s\u00fcr\u00fcm\u00fc olup, kararl\u0131 ve g\u00fcvenilir bir se\u00e7imdir.<\/p>\n<p>Grails&#8217;i indirmek i\u00e7in genellikle <code>\/opt<\/code> veya <code>\/usr\/local<\/code> gibi sistem genelinde kullan\u0131labilen bir dizin tercih edilir. Bu dizinler, sistem y\u00f6neticileri taraf\u0131ndan kurulan yaz\u0131l\u0131mlar i\u00e7in standart yerlerdir.<\/p>\n<p>\u00d6ncelikle, <code>\/opt<\/code> dizinine ge\u00e7i\u015f yap\u0131n:<\/p>\n<pre><code class=\"language-bash\">cd \/opt<\/code><\/pre>\n<p>Ard\u0131ndan, <code>wget<\/code> komutunu kullanarak Grails 2.5.6&#8217;n\u0131n ZIP ar\u015fivini indirin. Bu s\u00fcr\u00fcm\u00fcn resmi GitHub yay\u0131nlar\u0131 sayfas\u0131ndan veya ba\u015fka bir g\u00fcvenilir kaynaktan indirme ba\u011flant\u0131s\u0131n\u0131 bulman\u0131z gerekecektir. \u00d6rnek bir indirme URL&#8217;si \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">sudo wget https:\/\/github.com\/grails\/grails-core\/releases\/download\/v2.5.6\/grails-2.5.6.zip<\/code><\/pre>\n<p>*   <code>sudo wget ...<\/code>: <code>wget<\/code> komutu, URL&#8217;den dosya indirmek i\u00e7in kullan\u0131l\u0131r. <code>sudo<\/code> ile kullan\u0131lmas\u0131, <code>\/opt<\/code> dizinine yazma yetkisine sahip olman\u0131z\u0131 sa\u011flar.<\/p>\n<p>\u0130ndirme i\u015flemi, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ba\u011fl\u0131 olarak birka\u00e7 dakika s\u00fcrebilir.<\/p>\n<h3>Ad\u0131m 3: Grails&#8217;i \u00c7\u0131kartma<\/h3>\n<p>\u0130ndirilen ZIP ar\u015fivini a\u00e7mak i\u00e7in <code>unzip<\/code> yard\u0131mc\u0131 program\u0131na ihtiyac\u0131m\u0131z var. E\u011fer sisteminizde kurulu de\u011filse, \u00f6nce onu kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install unzip -y<\/code><\/pre>\n<p>\u015eimdi, indirdi\u011finiz Grails ZIP ar\u015fivini \u00e7\u0131kart\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo unzip grails-2.5.6.zip<\/code><\/pre>\n<p>Bu komut, <code>grails-2.5.6<\/code> ad\u0131nda yeni bir dizin olu\u015fturacak ve t\u00fcm Grails dosyalar\u0131n\u0131 buraya \u00e7\u0131kartacakt\u0131r.<\/p>\n<p>Daha d\u00fczenli bir yap\u0131land\u0131rma i\u00e7in, \u00e7\u0131kart\u0131lan dizini daha k\u0131sa ve anla\u015f\u0131l\u0131r bir isme sahip bir dizine ta\u015f\u0131yabilirsiniz, \u00f6rne\u011fin sadece <code>grails<\/code>:<\/p>\n<pre><code class=\"language-bash\">sudo mv grails-2.5.6 \/opt\/grails<\/code><\/pre>\n<p>Bu ad\u0131m, ortam de\u011fi\u015fkenlerini ayarlarken daha k\u0131sa bir yol kullanmam\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Ad\u0131m 4: Grails Ortam De\u011fi\u015fkenlerini Ayarlama<\/h3>\n<p>Java&#8217;da oldu\u011fu gibi, Grails&#8217;in \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyalar\u0131na sistem genelinde eri\u015febilmek i\u00e7in <code>GRAILS_HOME<\/code> ve <code>PATH<\/code> ortam de\u011fi\u015fkenlerini ayarlamam\u0131z gerekir. Bu de\u011fi\u015fkenler, i\u015fletim sistemine Grails kurulum dizininin nerede oldu\u011funu ve Grails komutlar\u0131n\u0131n hangi dizinde bulundu\u011funu bildirir.<\/p>\n<p>Yine, bu de\u011fi\u015fkenleri kal\u0131c\u0131 hale getirmek i\u00e7in <code>\/etc\/profile.d\/<\/code> dizininde yeni bir betik dosyas\u0131 olu\u015fturaca\u011f\u0131z. Bu \u015fekilde, her yeni oturum a\u00e7t\u0131\u011f\u0131n\u0131zda bu de\u011fi\u015fkenler otomatik olarak ayarlanacakt\u0131r.<\/p>\n<p>A\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak <code>grails.sh<\/code> adl\u0131 bir dosya olu\u015fturun ve <code>GRAILS_HOME<\/code> ile <code>PATH<\/code> de\u011fi\u015fkenlerini ayarlay\u0131n:<\/p>\n<pre><code class=\"language-bash\">echo \"export GRAILS_HOME=\/opt\/grails\" | sudo tee \/etc\/profile.d\/grails.sh\necho \"export PATH=\\$PATH:\\$GRAILS_HOME\/bin\" | sudo tee -a \/etc\/profile.d\/grails.sh<\/code><\/pre>\n<p>*   <code>echo \"export GRAILS_HOME=\/opt\/grails\" | sudo tee \/etc\/profile.d\/grails.sh<\/code>: Bu komut, <code>GRAILS_HOME<\/code> de\u011fi\u015fkenini Grails kurulum dizininin yoluna ayarlar.<br \/>\n*   <code>echo \"export PATH=\\$PATH:\\$GRAILS_HOME\/bin\" | sudo tee -a \/etc\/profile.d\/grails.sh<\/code>: Bu komut, Grails&#8217;in \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyalar\u0131n\u0131n bulundu\u011fu dizini (<code>$GRAILS_HOME\/bin<\/code>) sistemin <code>PATH<\/code> de\u011fi\u015fkenine ekler. Bu, <code>grails<\/code> komutunu herhangi bir dizinden do\u011frudan \u00e7al\u0131\u015ft\u0131rabilmenizi sa\u011flar.<\/p>\n<p>De\u011fi\u015fikliklerin mevcut oturumunuzda hemen ge\u00e7erli olmas\u0131 i\u00e7in, olu\u015fturdu\u011funuz betik dosyas\u0131n\u0131 kaynak olarak g\u00f6stermeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">source \/etc\/profile.d\/grails.sh<\/code><\/pre>\n<p>Bu komut, betikte tan\u0131mlanan ortam de\u011fi\u015fkenlerini mevcut kabuk oturumunuza y\u00fckler.<\/p>\n<h3>Ad\u0131m 5: Grails Kurulumunu Do\u011frulama<\/h3>\n<p>Grails&#8217;in ba\u015far\u0131yla kuruldu\u011funu ve ortam de\u011fi\u015fkenlerinin do\u011fru bir \u015fekilde ayarland\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>grails -version<\/code> komutunu kullanabiliriz:<\/p>\n<pre><code class=\"language-bash\">grails -version<\/code><\/pre>\n<p>Beklenen \u00e7\u0131kt\u0131, y\u00fckl\u00fc Grails s\u00fcr\u00fcm\u00fc, Groovy s\u00fcr\u00fcm\u00fc ve kullan\u0131lan JVM s\u00fcr\u00fcm\u00fc hakk\u0131nda bilgi i\u00e7ermelidir:<\/p>\n<pre><code class=\"language-\">| Grails Version: 2.5.6\n| Groovy Version: 2.4.4\n| JVM Version: 1.7.0_XX<\/code><\/pre>\n<p>E\u011fer yukar\u0131daki gibi bir \u00e7\u0131kt\u0131 al\u0131yorsan\u0131z, Grails kurulumunuz ba\u015far\u0131yla tamamlanm\u0131\u015ft\u0131r. E\u011fer <code>grails: command not found<\/code> gibi bir hata al\u0131yorsan\u0131z, <code>PATH<\/code> ve <code>GRAILS_HOME<\/code> ortam de\u011fi\u015fkenlerini kontrol etmeniz gerekecektir.<\/p>\n<h3>Ad\u0131m 6: Basit Bir Grails Uygulamas\u0131 Olu\u015fturma ve \u00c7al\u0131\u015ft\u0131rma (\u015eiddetle \u00d6nerilir)<\/h3>\n<p>Kurulumun tam olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak ve Grails ile temel etkile\u015fimi g\u00f6rmek i\u00e7in basit bir uygulama olu\u015fturup \u00e7al\u0131\u015ft\u0131rmak en iyi yoldur.<\/p>\n<h4>Uygulama Olu\u015fturma<\/h4>\n<p>\u00d6ncelikle, projeleriniz i\u00e7in bir dizin olu\u015fturun ve bu dizine ge\u00e7in:<\/p>\n<pre><code class=\"language-bash\">mkdir ~\/grails_projects\ncd ~\/grails_projects<\/code><\/pre>\n<p>\u015eimdi, <code>create-app<\/code> komutunu kullanarak yeni bir Grails uygulamas\u0131 olu\u015fturun. Uygulaman\u0131za <code>MyFirstApp<\/code> gibi bir isim verebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">grails create-app MyFirstApp<\/code><\/pre>\n<p>Bu komut, <code>MyFirstApp<\/code> ad\u0131nda yeni bir dizin olu\u015fturacak ve Grails projesinin temel iskeletini bu dizine yerle\u015ftirecektir. Projenin olu\u015fturulmas\u0131 biraz zaman alabilir, \u00e7\u00fcnk\u00fc Grails gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 indirir ve proje yap\u0131s\u0131n\u0131 kurar.<\/p>\n<h4>Uygulamay\u0131 \u00c7al\u0131\u015ft\u0131rma<\/h4>\n<p>Uygulama olu\u015fturulduktan sonra, yeni olu\u015fturulan proje dizinine ge\u00e7in:<\/p>\n<pre><code class=\"language-bash\">cd MyFirstApp<\/code><\/pre>\n<p>\u015eimdi, <code>run-app<\/code> komutunu kullanarak uygulamay\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">grails run-app<\/code><\/pre>\n<p>Bu komut, Grails uygulamas\u0131n\u0131 yerle\u015fik bir sunucu (varsay\u0131lan olarak Jetty veya Tomcat) \u00fczerinde ba\u015flatacakt\u0131r. Uygulama ba\u015flat\u0131ld\u0131\u011f\u0131nda, konsolda genellikle uygulaman\u0131n hangi adreste ve portta \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 belirten bir mesaj g\u00f6receksiniz. Genellikle <code>http:\/\/localhost:8080<\/code> adresinde \u00e7al\u0131\u015f\u0131r.<\/p>\n<h4>Taray\u0131c\u0131dan Eri\u015fme<\/h4>\n<p>VPS&#8217;inizde \u00e7al\u0131\u015fan uygulamaya d\u0131\u015far\u0131dan eri\u015febilmek i\u00e7in, web taray\u0131c\u0131n\u0131z\u0131 kullanarak VPS&#8217;inizin IP adresini ve uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 portu (varsay\u0131lan olarak 8080) belirtmeniz gerekir.<\/p>\n<p>Web taray\u0131c\u0131n\u0131zda \u015fu adresi ziyaret edin:<\/p>\n<pre><code class=\"language-\">http:\/\/VPS_IP_ADRESINIZ:8080<\/code><\/pre>\n<p><code>VPS_IP_ADRESINIZ<\/code> yerine kendi sunucunuzun ger\u00e7ek IP adresini yazmay\u0131 unutmay\u0131n. E\u011fer her \u015fey yolundaysa, Grails&#8217;in varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p><strong>G\u00fcvenlik Duvar\u0131 Notu:<\/strong> E\u011fer VPS&#8217;inizde bir g\u00fcvenlik duvar\u0131 (\u00f6rne\u011fin UFW &#8211; Uncomplicated Firewall) etkinse, 8080 numaral\u0131 portun d\u0131\u015far\u0131dan eri\u015fime a\u00e7\u0131k oldu\u011fundan emin olman\u0131z gerekebilir. Aksi takdirde taray\u0131c\u0131n\u0131zdan uygulamaya eri\u015femezsiniz. E\u011fer UFW kullan\u0131yorsan\u0131z, 8080 portunu a\u00e7mak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 8080\/tcp\nsudo ufw enable # E\u011fer g\u00fcvenlik duvar\u0131 etkin de\u011filse<\/code><\/pre>\n<p>Bu komutlar, 8080 numaral\u0131 TCP portunu d\u0131\u015far\u0131dan gelen ba\u011flant\u0131lara a\u00e7ar.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Kurulum veya uygulama \u00e7al\u0131\u015ft\u0131rma s\u0131ras\u0131nda baz\u0131 sorunlarla kar\u015f\u0131la\u015fman\u0131z olas\u0131d\u0131r. \u0130\u015fte en yayg\u0131n sorunlar ve potansiyel \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>1. <code>java: command not found<\/code> veya Yanl\u0131\u015f Java S\u00fcr\u00fcm\u00fc<\/h4>\n<p>*   <strong>Sorun:<\/strong> Java komutunun bulunamamas\u0131 veya Grails&#8217;in bekledi\u011fi Java s\u00fcr\u00fcm\u00fcnden farkl\u0131 bir s\u00fcr\u00fcm\u00fcn kullan\u0131lmas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkeninin do\u011fru ayarland\u0131\u011f\u0131ndan emin olun (<code>echo $JAVA_HOME<\/code>).<br \/>\n    *   <code>PATH<\/code> de\u011fi\u015fkeninin <code>$JAVA_HOME\/bin<\/code> yolunu i\u00e7erdi\u011finden emin olun (<code>echo $PATH<\/code>).<br \/>\n    *   <code>\/etc\/profile.d\/java.sh<\/code> dosyas\u0131n\u0131n do\u011fru i\u00e7eri\u011fe sahip oldu\u011funu ve <code>source \/etc\/profile.d\/java.sh<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z\u0131 do\u011frulay\u0131n.<br \/>\n    *   Birden fazla Java s\u00fcr\u00fcm\u00fc y\u00fckl\u00fcyse, <code>sudo update-alternatives --config java<\/code> komutunu kullanarak Oracle JDK 7&#8217;yi varsay\u0131lan olarak ayarlay\u0131n.<br \/>\n    *   Java kurulum yolunun (<code>\/usr\/lib\/jvm\/java-7-oracle<\/code>) do\u011fru oldu\u011funu kontrol edin.<\/p>\n<h4>2. <code>grails: command not found<\/code><\/h4>\n<p>*   <strong>Sorun:<\/strong> Grails komutunun sistem taraf\u0131ndan tan\u0131nmamas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <code>GRAILS_HOME<\/code> ortam de\u011fi\u015fkeninin do\u011fru ayarland\u0131\u011f\u0131ndan emin olun (<code>echo $GRAILS_HOME<\/code>).<br \/>\n    *   <code>PATH<\/code> de\u011fi\u015fkeninin <code>$GRAILS_HOME\/bin<\/code> yolunu i\u00e7erdi\u011finden emin olun (<code>echo $PATH<\/code>).<br \/>\n    *   <code>\/etc\/profile.d\/grails.sh<\/code> dosyas\u0131n\u0131n do\u011fru i\u00e7eri\u011fe sahip oldu\u011funu ve <code>source \/etc\/profile.d\/grails.sh<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z\u0131 do\u011frulay\u0131n.<br \/>\n    *   Grails&#8217;i <code>\/opt\/grails<\/code> dizinine do\u011fru bir \u015fekilde \u00e7\u0131kartt\u0131\u011f\u0131n\u0131z\u0131 kontrol edin.<\/p>\n<h4>3. \u0130zin Sorunlar\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> Dosya veya dizinlere eri\u015fim veya yazma izinlerinin olmamas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Kurulum ad\u0131mlar\u0131nda <code>sudo<\/code> komutunu kulland\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   E\u011fer bir Grails projesi olu\u015ftururken veya \u00e7al\u0131\u015ft\u0131r\u0131rken izin hatas\u0131 al\u0131yorsan\u0131z, proje dizininin ve i\u00e7eriklerinin do\u011fru kullan\u0131c\u0131ya ait oldu\u011fundan emin olun veya <code>chmod<\/code> komutunu kullanarak izinleri ayarlay\u0131n. \u00d6rne\u011fin: <code>sudo chown -R KULLANICI_ADINIZ:KULLANICI_GRUBUNUZ ~\/grails_projects<\/code>.<\/p>\n<h4>4. A\u011f Ba\u011flant\u0131s\u0131 Sorunlar\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> <code>wget<\/code> ile Grails ar\u015fivini indirememek veya paket g\u00fcncellemelerini yapamamak.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   VPS&#8217;inizin internet ba\u011flant\u0131s\u0131n\u0131 kontrol edin (<code>ping google.com<\/code>).<br \/>\n    *   DNS \u00e7\u00f6z\u00fcmlemesi sorunlar\u0131 ya\u015f\u0131yorsan\u0131z <code>\/etc\/resolv.conf<\/code> dosyas\u0131n\u0131 kontrol edin veya ge\u00e7ici olarak Google DNS (8.8.8.8) gibi genel DNS sunucular\u0131n\u0131 kullanmay\u0131 deneyin.<br \/>\n    *   VPS sa\u011flay\u0131c\u0131n\u0131z\u0131n a\u011f ayarlar\u0131n\u0131 kontrol edin.<\/p>\n<h4>5. Bellek Sorunlar\u0131 (JVM Belle\u011fi)<\/h4>\n<p>*   <strong>Sorun:<\/strong> Grails uygulamas\u0131 ba\u015flat\u0131l\u0131rken veya \u00e7al\u0131\u015f\u0131rken bellek d\u0131\u015f\u0131 (out of memory) hatalar almak, \u00f6zellikle d\u00fc\u015f\u00fck RAM&#8217;e sahip VPS&#8217;lerde.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Grails i\u00e7in ayr\u0131lan JVM belle\u011fini art\u0131rabilirsiniz. Bunu <code>GRAILS_OPTS<\/code> ortam de\u011fi\u015fkenini ayarlayarak yapabilirsiniz. \u00d6rne\u011fin, 512MB ba\u015flang\u0131\u00e7 belle\u011fi ve 1GB maksimum bellek atamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">echo \"export GRAILS_OPTS=\\\"-Xmx1G -Xms512m\\\"\" | sudo tee -a \/etc\/profile.d\/grails.sh\n    source \/etc\/profile.d\/grails.sh<\/code><\/pre>\n<p>    Bu ayarlar\u0131, <code>grails.sh<\/code> dosyas\u0131n\u0131n sonuna ekleyip oturumunuzu yeniden kaynaklaman\u0131z gerekir.<\/p>\n<h4>6. Grails Uygulamas\u0131 Ba\u015flam\u0131yor\/Taray\u0131c\u0131dan Eri\u015filemiyor<\/h4>\n<p>*   <strong>Sorun:<\/strong> <code>grails run-app<\/code> komutu \u00e7al\u0131\u015f\u0131yor gibi g\u00f6r\u00fcnse de, taray\u0131c\u0131dan uygulamaya eri\u015filememesi.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Uygulaman\u0131n ger\u00e7ekten 8080 portunda \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun (konsol \u00e7\u0131kt\u0131s\u0131n\u0131 kontrol edin).<br \/>\n    *   VPS&#8217;inizin g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 kontrol edin (<code>sudo ufw status<\/code> veya benzeri). 8080 portunun a\u00e7\u0131k oldu\u011fundan emin olun (<code>sudo ufw allow 8080<\/code>).<br \/>\n    *   Ba\u015fka bir uygulaman\u0131n 8080 portunu kullan\u0131p kullanmad\u0131\u011f\u0131n\u0131 kontrol edin (<code>sudo netstat -tulnp | grep 8080<\/code>). E\u011fer port me\u015fgulse, Grails uygulamas\u0131n\u0131 farkl\u0131 bir portta ba\u015flatmay\u0131 deneyebilirsiniz: <code>grails run-app -Dserver.port=8090<\/code>.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Bir VPS \u00fczerinde \u00e7al\u0131\u015f\u0131rken g\u00fcvenlik her zaman \u00f6ncelikli olmal\u0131d\u0131r. \u0130\u015fte baz\u0131 temel g\u00fcvenlik ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>SSH Anahtar Tabanl\u0131 Kimlik Do\u011frulama:<\/strong> \u015eifre tabanl\u0131 kimlik do\u011frulama yerine SSH anahtarlar\u0131 kullan\u0131n. Bu, sunucunuza yetkisiz eri\u015fimi \u00f6nemli \u00f6l\u00e7\u00fcde zorla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 (UFW) Yap\u0131land\u0131rmas\u0131:<\/strong> Sadece ihtiya\u00e7 duyulan portlar\u0131 (\u00f6rne\u011fin SSH i\u00e7in 22, web sunucusu i\u00e7in 80\/443, Grails uygulamas\u0131 i\u00e7in 8080) a\u00e7\u0131n ve di\u011fer t\u00fcm portlar\u0131 kapat\u0131n.<br \/>\n*   <strong>Root Kullan\u0131c\u0131s\u0131 Yerine <code>sudo<\/code> Kullan\u0131m\u0131:<\/strong> Root kullan\u0131c\u0131s\u0131yla do\u011frudan oturum a\u00e7maktan ka\u00e7\u0131n\u0131n. Bunun yerine, <code>sudo<\/code> yetkisine sahip standart bir kullan\u0131c\u0131 hesab\u0131 olu\u015fturun ve sistem y\u00f6netimi g\u00f6revleri i\u00e7in <code>sudo<\/code> kullan\u0131n.<br \/>\n*   <strong>D\u00fczenli Sistem G\u00fcncellemeleri:<\/strong> Sistem paketlerinizi d\u00fczenli olarak <code>sudo apt-get update && sudo apt-get upgrade -y<\/code> komutlar\u0131yla g\u00fcncelleyerek en son g\u00fcvenlik yamalar\u0131na sahip oldu\u011funuzdan emin olun.<br \/>\n*   <strong>Zay\u0131f \u015eifrelerden Ka\u00e7\u0131n\u0131n:<\/strong> T\u00fcm kullan\u0131c\u0131 hesaplar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc, karma\u015f\u0131k \u015fifreler kullan\u0131n.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 12.04 VPS \u00fczerine Grails web uygulama \u00e7at\u0131s\u0131n\u0131n ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 \u00f6\u011frendiniz. Java Geli\u015ftirme Kiti&#8217;nin kurulumundan ba\u015flayarak, Grails&#8217;in indirilmesi, ortam de\u011fi\u015fkenlerinin ayarlanmas\u0131 ve son olarak basit bir Grails uygulamas\u0131n\u0131n olu\u015fturulup \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131na kadar t\u00fcm s\u00fcreci ba\u015far\u0131yla tamamlad\u0131n\u0131z. Ayr\u0131ca, kurulum s\u0131ras\u0131nda veya sonras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlara y\u00f6nelik \u00e7\u00f6z\u00fcmler ve genel g\u00fcvenlik ipu\u00e7lar\u0131 da sunuldu.<\/p>\n<p>Art\u0131k Ubuntu 12.04 VPS&#8217;inizde tam i\u015flevsel bir Grails geli\u015ftirme ortam\u0131na sahipsiniz. Bu ortam, web uygulamalar\u0131 olu\u015fturmak, API&#8217;ler geli\u015ftirmek ve Groovy\/Grails yeteneklerinizi sergilemek i\u00e7in bir ba\u015flang\u0131\u00e7 noktas\u0131 olacakt\u0131r. Grails&#8217;in h\u0131zl\u0131 geli\u015ftirme yetenekleri ve Spring ekosistemiyle entegrasyonu sayesinde, fikirlerinizi h\u0131zla ger\u00e7e\u011fe d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<p><strong>Sonraki Ad\u0131mlar:<\/strong><br \/>\n*   <strong>Grails \u00d6\u011frenmeye Devam Edin:<\/strong> Grails&#8217;in resmi belgelerini, \u00f6\u011freticilerini ve topluluk kaynaklar\u0131n\u0131 inceleyerek framework&#8217;\u00fcn t\u00fcm \u00f6zelliklerini ke\u015ffedin.<br \/>\n*   <strong>Veritaban\u0131 Entegrasyonu:<\/strong> Grails&#8217;in GORM (Grails Object Relational Mapping) yeteneklerini kullanarak veritabanlar\u0131yla nas\u0131l etkile\u015fim kuraca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin.<br \/>\n*   <strong>IDE Kullan\u0131m\u0131:<\/strong> IntelliJ IDEA veya Spring Tool Suite (STS) gibi pop\u00fcler IDE&#8217;leri kullanarak Grails geli\u015ftirme deneyiminizi daha da zenginle\u015ftirin.<br \/>\n*   <strong>\u00dcretim Ortam\u0131na Da\u011f\u0131t\u0131m:<\/strong> Geli\u015ftirdi\u011finiz uygulamalar\u0131 \u00fcretim ortam\u0131na nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 (\u00f6rne\u011fin Nginx veya Apache gibi bir proxy sunucusu kullanarak) ara\u015ft\u0131r\u0131n.<\/p>\n<p>Bu rehberin, Grails ile web geli\u015ftirme yolculu\u011funuzda size sa\u011flam bir temel sa\u011flamas\u0131n\u0131 umuyoruz. Ba\u015far\u0131lar dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\nGiri\u015f: Grails ve Ubuntu 12.04 D\u00fcnyas\u0131na Ad\u0131m Atmak\nG\u00fcn\u00fcm\u00fcz web geli\u015ft","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-37326","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>Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - 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\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber Giri\u015f: Grails ve Ubuntu 12.04 D\u00fcnyas\u0131na Ad\u0131m Atmak G\u00fcn\u00fcm\u00fcz web geli\u015ft\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-30T21:40:51+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\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\",\"datePublished\":\"2025-12-30T21:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\"},\"wordCount\":2947,\"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\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\",\"name\":\"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-30T21:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\"}]},{\"@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":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - 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\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber","og_description":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber Giri\u015f: Grails ve Ubuntu 12.04 D\u00fcnyas\u0131na Ad\u0131m Atmak G\u00fcn\u00fcm\u00fcz web geli\u015ft","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-30T21:40:51+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\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber","datePublished":"2025-12-30T21:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/"},"wordCount":2947,"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\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/","name":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-30T21:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-vps-uzerine-grails-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 12.04 VPS \u00dczerine Grails Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber"}]},{"@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\/37326","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=37326"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37326\/revisions"}],"predecessor-version":[{"id":37327,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37326\/revisions\/37327"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37326"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}