{"id":38028,"date":"2026-01-21T16:41:59","date_gmt":"2026-01-21T13:41:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38028"},"modified":"2026-01-21T16:41:59","modified_gmt":"2026-01-21T13:41:59","slug":"giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/","title":{"rendered":"Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri"},"content":{"rendered":"<p><body><\/p>\n<h2>Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri<\/h2>\n<p>Bu rehber, g\u00fcn\u00fcm\u00fczde eski bir sistem ve yaz\u0131l\u0131m kombinasyonu olsa da, belirli ihtiya\u00e7lar do\u011frultusunda Ubuntu 13.10 \u00fczerinde Zope 2 uygulama sunucusunu ve PostgreSQL veritaban\u0131n\u0131 nas\u0131l kurup kullanaca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Zope 2, Python tabanl\u0131, a\u00e7\u0131k kaynakl\u0131 bir web uygulama sunucusu ve i\u00e7erik y\u00f6netim \u00e7er\u00e7evesidir. \u00d6zellikle 2000&#8217;li y\u0131llar\u0131n ba\u015flar\u0131nda pop\u00fcler olan bu platform, dinamik web siteleri ve intranet uygulamalar\u0131 olu\u015fturmak i\u00e7in kullan\u0131lm\u0131\u015ft\u0131r. Kendi nesne veritaban\u0131 (ZODB) ile gelmesine ra\u011fmen, karma\u015f\u0131k ili\u015fkisel verileri y\u00f6netmek veya mevcut kurumsal veritabanlar\u0131yla entegre olmak i\u00e7in s\u0131kl\u0131kla PostgreSQL gibi g\u00fc\u00e7l\u00fc bir ili\u015fkisel veritaban\u0131 y\u00f6netim sistemi (RDBMS) ile birlikte kullan\u0131l\u0131r.<\/p>\n<p>PostgreSQL ise geli\u015fmi\u015f \u00f6zellikleri, kararl\u0131l\u0131\u011f\u0131 ve standartlara uygunlu\u011fu ile bilinen, d\u00fcnya genelinde en \u00e7ok tercih edilen a\u00e7\u0131k kaynakl\u0131 ili\u015fkisel veritabanlar\u0131ndan biridir. Veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc, e\u015fzamanl\u0131l\u0131\u011f\u0131 ve karma\u015f\u0131k sorgular\u0131 destekleme yetene\u011fi, onu bir\u00e7ok web uygulamas\u0131 i\u00e7in ideal bir se\u00e7im haline getirir.<\/p>\n<p>Ubuntu 13.10 (&#8220;Saucy Salamander&#8221;) art\u0131k resmi olarak desteklenmeyen ve g\u00fcvenlik g\u00fcncellemeleri almayan eski bir i\u015fletim sistemi s\u00fcr\u00fcm\u00fcd\u00fcr. Bu nedenle, bu rehberdeki ad\u0131mlar\u0131 modern bir sistemde veya \u00fcretim ortam\u0131nda uygulaman\u0131z \u00f6nerilmez. Ancak, eski bir sistemi yeniden canland\u0131rmak, belirli bir Zope 2 uygulamas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak veya sadece e\u011fitim ama\u00e7l\u0131 olarak bu kombinasyonu kurmak isteyenler i\u00e7in bu rehber kapsaml\u0131 bir yol haritas\u0131 sunacakt\u0131r. Bu rehberde, gerekli \u00f6n haz\u0131rl\u0131klardan ba\u015flayarak, PostgreSQL ve Zope 2 kurulumuna, bu iki sistemin entegrasyonuna ve olas\u0131 sorun giderme y\u00f6ntemlerine de\u011finece\u011fiz.<\/p>\n<h2>Sistem Haz\u0131rl\u0131\u011f\u0131 ve PostgreSQL Kurulumu<\/h2>\n<p>Zope 2 ve PostgreSQL&#8217;i Ubuntu 13.10 \u00fczerine sorunsuz bir \u015fekilde kurmak i\u00e7in \u00f6ncelikle sistemimizi haz\u0131rlamam\u0131z ve ard\u0131ndan PostgreSQL veritaban\u0131n\u0131 yap\u0131land\u0131rmam\u0131z gerekmektedir.<\/p>\n<h3>Sistem Gereksinimleri ve \u00d6n Haz\u0131rl\u0131klar<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki maddelerin haz\u0131r oldu\u011fundan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>\u0130\u015fletim Sistemi:<\/strong> Ubuntu 11.10 veya 13.10 (Bu rehber 13.10&#8217;a odaklanmaktad\u0131r).<br \/>\n*   <strong>Kullan\u0131c\u0131 Yetkileri:<\/strong> <code>sudo<\/code> yetkilerine sahip veya <code>root<\/code> kullan\u0131c\u0131s\u0131.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Gerekli paketleri indirmek i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131.<br \/>\n*   <strong>Temel G\u00fcncellemeler:<\/strong> Sistem paketlerinin g\u00fcncel olmas\u0131, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 minimize eder.<\/p>\n<p>\u00d6ncelikle sistemimizi g\u00fcncelleyelim ve gerekli temel geli\u015ftirme ara\u00e7lar\u0131n\u0131, Python paketlerini ve PostgreSQL ba\u011flant\u0131s\u0131 i\u00e7in k\u00fct\u00fcphaneleri kural\u0131m. Zope 2 eski bir Python 2.x s\u00fcr\u00fcm\u00fcyle \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan, Python 2.7 ile uyumlu paketleri kurmaya \u00f6zen g\u00f6sterece\u011fiz.<\/p>\n<pre><code class=\"language-bash\"># Sistem paketlerini g\u00fcncelleyelim\nsudo apt-get update\nsudo apt-get upgrade -y\n\n<h2>Gerekli geli\u015ftirme ara\u00e7lar\u0131n\u0131 kural\u0131m (derleme i\u00e7in)<\/h2>\nsudo apt-get install -y build-essential python-dev libpq-dev libxml2-dev libxslt1-dev zlib1g-dev\n\n<h2>Python paket y\u00f6neticileri (pip ve setuptools)<\/h2>\n<h2>Ubuntu 13.10'da genellikle python-pip ve python-setuptools paketleri mevcuttur.<\/h2>\n<h2>E\u011fer y\u00fckl\u00fc de\u011fillerse:<\/h2>\nsudo apt-get install -y python-pip python-setuptools\n\n<h2>virtualenv, Python sanal ortamlar\u0131 olu\u015fturmak i\u00e7in gereklidir<\/h2>\nsudo pip install virtualenv<\/code><\/pre>\n<p>Bu komutlar, C derleyicileri, Python ba\u015fl\u0131k dosyalar\u0131, PostgreSQL istemci k\u00fct\u00fcphaneleri (libpq-dev), XML\/XSLT i\u015flem k\u00fct\u00fcphaneleri ve s\u0131k\u0131\u015ft\u0131rma k\u00fct\u00fcphanelerini kurarak Zope 2 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131n derlenmesi i\u00e7in gerekli ortam\u0131 sa\u011flar. <code>virtualenv<\/code> kurulumu, sistem Python&#8217;\u0131n\u0131 etkilemeden Zope 2 i\u00e7in izole bir Python ortam\u0131 olu\u015fturmam\u0131za olanak tan\u0131yacakt\u0131r. Bu, \u00f6zellikle eski Python 2 tabanl\u0131 uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in modern sistemlerde kritik bir ad\u0131md\u0131r.<\/p>\n<h3>PostgreSQL Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>\u015eimdi PostgreSQL veritaban\u0131 sunucusunu kurup temel yap\u0131land\u0131rmas\u0131n\u0131 yapal\u0131m.<\/p>\n<pre><code class=\"language-bash\"># PostgreSQL sunucusunu ve ek ara\u00e7lar\u0131 kural\u0131m\nsudo apt-get install -y postgresql postgresql-contrib<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra PostgreSQL servisi otomatik olarak ba\u015flayacakt\u0131r. Servisin durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo service postgresql status<\/code><\/pre>\n<p>Varsay\u0131lan olarak, PostgreSQL, <code>postgres<\/code> ad\u0131nda bir s\u00fcper kullan\u0131c\u0131 ve bu kullan\u0131c\u0131yla e\u015fle\u015fen bir Linux kullan\u0131c\u0131s\u0131 olu\u015fturur. Veritaban\u0131 y\u00f6netimini bu kullan\u0131c\u0131 \u00fczerinden yapabiliriz.<\/p>\n<pre><code class=\"language-bash\"># postgres kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yapal\u0131m\nsudo -i -u postgres\n\n<h2>psql komut sat\u0131r\u0131 arac\u0131n\u0131 ba\u015flatal\u0131m<\/h2>\npsql<\/code><\/pre>\n<p><code>psql<\/code> komut isteminde iken, Zope 2 uygulamam\u0131z i\u00e7in yeni bir veritaban\u0131 kullan\u0131c\u0131s\u0131 ve veritaban\u0131 olu\u015ftural\u0131m. \u00d6rne\u011fin, <code>zopeuser<\/code> ad\u0131nda bir kullan\u0131c\u0131 ve <code>zopedb<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturabiliriz.<\/p>\n<pre><code class=\"language-sql\">-- Yeni bir kullan\u0131c\u0131 olu\u015ftural\u0131m ve \u015fifresini belirleyelim\nCREATE USER zopeuser WITH PASSWORD 'your_secure_password';\n\n-- Yeni bir veritaban\u0131 olu\u015ftural\u0131m ve sahibini zopeuser yapal\u0131m\nCREATE DATABASE zopedb OWNER zopeuser;\n\n-- psql'den \u00e7\u0131k\u0131\u015f yapal\u0131m\n\\q<\/code><\/pre>\n<p>\u015eimdi tekrar kendi kullan\u0131c\u0131 hesab\u0131n\u0131za d\u00f6nmek i\u00e7in <code>exit<\/code> yaz\u0131n.<\/p>\n<p><strong>PostgreSQL Eri\u015fim Ayarlar\u0131 (<code>pg_hba.conf<\/code>):<\/strong><\/p>\n<p>PostgreSQL&#8217;in istemcilerin veritaban\u0131na nas\u0131l ba\u011flanabilece\u011fini kontrol eden \u00f6nemli bir yap\u0131land\u0131rma dosyas\u0131 <code>pg_hba.conf<\/code>&#8216;tur. Zope&#8217;un yerel olarak ba\u011flanabilmesi i\u00e7in bu dosyada baz\u0131 de\u011fi\u015fiklikler yapmam\u0131z gerekebilir. Varsay\u0131lan olarak, yerel ba\u011flant\u0131lar genellikle <code>peer<\/code> veya <code>ident<\/code> kimlik do\u011frulamas\u0131 kullan\u0131r ki bu, ayn\u0131 sistemdeki Linux kullan\u0131c\u0131 ad\u0131n\u0131n PostgreSQL veritaban\u0131 kullan\u0131c\u0131 ad\u0131yla e\u015fle\u015fmesini gerektirir. Bizim durumumuzda, Zope uygulamas\u0131 <code>zopeuser<\/code> olarak ba\u011flanaca\u011f\u0131ndan, <code>md5<\/code> \u015fifre do\u011frulamas\u0131na ge\u00e7mek daha esnektir.<\/p>\n<pre><code class=\"language-bash\"># pg_hba.conf dosyas\u0131n\u0131 d\u00fczenleyelim\nsudo nano \/etc\/postgresql\/9.3\/main\/pg_hba.conf<\/code><\/pre>\n<p>(Not: PostgreSQL s\u00fcr\u00fcm\u00fc Ubuntu 13.10&#8217;da muhtemelen 9.3&#8217;t\u00fcr. Klas\u00f6r yolu buna g\u00f6re de\u011fi\u015febilir.)<\/p>\n<p>Dosya i\u00e7inde a\u015fa\u011f\u0131daki sat\u0131r\u0131 bulun:<\/p>\n<pre><code class=\"language-\"># \"local\" is for Unix domain socket connections only\nlocal   all             all                                     peer<\/code><\/pre>\n<p>Bu sat\u0131r\u0131 veya benzerini a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirin veya alt\u0131na yeni bir sat\u0131r ekleyin:<\/p>\n<pre><code class=\"language-\"># \"local\" is for Unix domain socket connections only\nlocal   all             zopedb          zopeuser              md5<\/code><\/pre>\n<p>Bu de\u011fi\u015fiklik, <code>zopedb<\/code> veritaban\u0131na <code>zopeuser<\/code> olarak ba\u011flanmaya \u00e7al\u0131\u015fan yerel ba\u011flant\u0131lar\u0131n <code>md5<\/code> \u015fifre do\u011frulamas\u0131 kullanmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, t\u00fcm yerel ba\u011flant\u0131lar i\u00e7in genel bir <code>md5<\/code> ayar\u0131 da yapabilirsiniz:<\/p>\n<pre><code class=\"language-\">local   all             all                                     md5<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra (Ctrl+O, Enter, Ctrl+X), PostgreSQL servisini yeniden ba\u015flatmal\u0131s\u0131n\u0131z ki de\u011fi\u015fiklikler etkili olsun:<\/p>\n<pre><code class=\"language-bash\">sudo service postgresql restart<\/code><\/pre>\n<p><strong>Veritaban\u0131 Ba\u011flant\u0131s\u0131n\u0131 Test Etme:<\/strong><\/p>\n<p>Olu\u015fturdu\u011fumuz <code>zopeuser<\/code> ve <code>zopedb<\/code> ile ba\u011flant\u0131 kurmay\u0131 deneyerek her \u015feyin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olal\u0131m:<\/p>\n<pre><code class=\"language-bash\">psql -U zopeuser -d zopedb -h localhost<\/code><\/pre>\n<p>\u015eifreniz istendi\u011finde <code>your_secure_password<\/code> yaz\u0131n. E\u011fer ba\u015far\u0131yla ba\u011flan\u0131rsan\u0131z, <code>zopedb=><\/code> \u015feklinde bir komut istemi g\u00f6receksiniz. Ba\u011flant\u0131y\u0131 kapatmak i\u00e7in <code>\\q<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n.<\/p>\n<h2>Zope 2 Kurulumu ve Temel Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>\u015eimdi s\u0131ra Zope 2&#8217;yi kurmaya ve temel bir Zope \u00f6rne\u011fi olu\u015fturmaya geldi. Zope 2&#8217;nin Python 2 ile \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve bu nedenle sanal ortam kullanman\u0131n kritik oldu\u011funu bir kez daha hat\u0131rlatmak isteriz.<\/p>\n<h3>Sanal Ortam Olu\u015fturma<\/h3>\n<p>Sistem Python&#8217;\u0131m\u0131zla \u00e7ak\u0131\u015fmalar\u0131 \u00f6nlemek ve Zope 2 i\u00e7in temiz bir ortam sa\u011flamak amac\u0131yla bir <code>virtualenv<\/code> olu\u015ftural\u0131m.<\/p>\n<pre><code class=\"language-bash\"># Zope 2 i\u00e7in bir dizin olu\u015ftural\u0131m\nsudo mkdir -p \/opt\/zope2\nsudo chown -R $USER:$USER \/opt\/zope2\n\n<h2>Bu dizine gidelim<\/h2>\ncd \/opt\/zope2\n\n<h2>Python 2.7 kullanarak bir sanal ortam olu\u015ftural\u0131m<\/h2>\nvirtualenv -p python2.7 zope2_env\n\n<h2>Sanal ortam\u0131 etkinle\u015ftirelim<\/h2>\nsource zope2_env\/bin\/activate<\/code><\/pre>\n<p>Art\u0131k komut isteminiz <code>(zope2_env)<\/code> ile ba\u015flayacakt\u0131r, bu da sanal ortam\u0131n etkin oldu\u011funu g\u00f6sterir. Bu ortamdayken yapaca\u011f\u0131n\u0131z t\u00fcm <code>pip install<\/code> komutlar\u0131, paketleri bu sanal ortama kuracakt\u0131r.<\/p>\n<h3>Zope 2 Kurulumu<\/h3>\n<p>Sanal ortam aktifken, Zope 2&#8217;yi <code>pip<\/code> kullanarak kural\u0131m. Zope 2&#8217;nin son s\u00fcr\u00fcm\u00fc 2.13.x serisidir ve Python 2.7 ile uyumludur.<\/p>\n<pre><code class=\"language-bash\"># Zope 2'yi sanal ortama kural\u0131m\npip install Zope2<\/code><\/pre>\n<p>Kurulum biraz zaman alabilir, \u00e7\u00fcnk\u00fc Zope&#8217;un bir\u00e7ok ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 vard\u0131r. <code>pip<\/code> t\u00fcm bu ba\u011f\u0131ml\u0131l\u0131klar\u0131 otomatik olarak indirecek ve kuracakt\u0131r.<\/p>\n<h3>Zope \u00d6rne\u011fi Olu\u015fturma ve Y\u00f6netimi<\/h3>\n<p>Zope 2&#8217;yi kurduktan sonra, bir Zope \u00f6rne\u011fi (instance) olu\u015fturmam\u0131z gerekir. Bu \u00f6rnek, Zope uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 dizindir ve ZODB veritaban\u0131n\u0131, yap\u0131land\u0131rma dosyalar\u0131n\u0131 ve di\u011fer uygulama verilerini i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\"># Zope \u00f6rnekleri i\u00e7in bir dizin olu\u015ftural\u0131m\nsudo mkdir -p \/opt\/zope2_instances\nsudo chown -R $USER:$USER \/opt\/zope2_instances\n\n<h2>Zope \u00f6rne\u011fini olu\u015fturmak i\u00e7in mkzopeinstance komutunu kullanal\u0131m<\/h2>\n<h2>Sanal ortam aktifken \u00e7al\u0131\u015ft\u0131r\u0131n:<\/h2>\nmkzopeinstance -d \/opt\/zope2_instances\/instance1<\/code><\/pre>\n<p><code>mkzopeinstance<\/code> komutu sizden y\u00f6netici kullan\u0131c\u0131 ad\u0131 ve \u015fifresi isteyecektir. Bu bilgiler Zope Y\u00f6netim Aray\u00fcz\u00fcne (ZMI) eri\u015fmek i\u00e7in kullan\u0131lacakt\u0131r. G\u00fc\u00e7l\u00fc bir \u015fifre belirledi\u011finizden emin olun.<\/p>\n<p><strong>Zope&#8217;u Ba\u015flatma ve Durdurma:<\/strong><\/p>\n<p>Zope \u00f6rne\u011fini olu\u015fturduktan sonra, onu ba\u015flatabiliriz. \u00d6rnek dizinine gidin ve <code>runzope<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">cd \/opt\/zope2_instances\/instance1\n\n<h2>Zope'u ba\u015flat\u0131n<\/h2>\n.\/bin\/runzope<\/code><\/pre>\n<p>Zope ba\u015far\u0131yla ba\u015flad\u0131\u011f\u0131nda, konsolda &#8220;Zope has started up&#8221; veya benzeri bir mesaj g\u00f6receksiniz. Varsay\u0131lan olarak Zope, 8080 portunda \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve \u015fu adrese gidin: <code>http:\/\/localhost:8080\/manage<\/code><\/p>\n<p>Daha \u00f6nce belirledi\u011finiz y\u00f6netici kullan\u0131c\u0131 ad\u0131 ve \u015fifresi ile giri\u015f yap\u0131n. Bu, Zope Y\u00f6netim Aray\u00fcz\u00fc&#8217;d\u00fcr (ZMI). Buradan Zope nesnelerini olu\u015fturabilir, y\u00f6netebilir ve uygulaman\u0131z\u0131 geli\u015ftirebilirsiniz.<\/p>\n<p>Zope&#8217;u durdurmak i\u00e7in, <code>runzope<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z terminal penceresinde <code>Ctrl+C<\/code> tu\u015f kombinasyonuna bas\u0131n.<\/p>\n<p><strong>Arka Planda \u00c7al\u0131\u015ft\u0131rma (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong><\/p>\n<p>Zope&#8217;u bir \u00fcretim ortam\u0131nda veya terminali kapatmadan arka planda \u00e7al\u0131\u015ft\u0131rmak isterseniz, <code>runzope<\/code> komutunu <code>&<\/code> ile kullanabilir veya <code>nohup<\/code> gibi ara\u00e7lar\u0131 tercih edebilirsiniz. Ancak bu rehberde, basitlik ad\u0131na <code>runzope<\/code> ile terminalde \u00e7al\u0131\u015ft\u0131rma y\u00f6ntemine odaklan\u0131lm\u0131\u015ft\u0131r. Daha geli\u015fmi\u015f arka plan \u00e7al\u0131\u015ft\u0131rma y\u00f6ntemleri (\u00f6rne\u011fin <code>supervisor<\/code> veya <code>systemd<\/code> servisleri) bu rehberin kapsam\u0131 d\u0131\u015f\u0131ndad\u0131r.<\/p>\n<pre><code class=\"language-bash\"># Arka planda \u00e7al\u0131\u015ft\u0131rma (basit y\u00f6ntem, terminal kapan\u0131nca durur)\n.\/bin\/runzope &\n\n<h2>Nohup ile \u00e7al\u0131\u015ft\u0131rma (terminal kapansa bile \u00e7al\u0131\u015fmaya devam eder)<\/h2>\nnohup .\/bin\/runzope > zope.log 2>&1 &<\/code><\/pre>\n<h2>Zope 2 ve PostgreSQL Entegrasyonu<\/h2>\n<p>Zope 2&#8217;nin kendi nesne veritaban\u0131 (ZODB) olmas\u0131na ra\u011fmen, ili\u015fkisel verileri y\u00f6netmek i\u00e7in PostgreSQL ile entegrasyon \u00f6nemlidir. Bu b\u00f6l\u00fcmde Zope 2&#8217;nin PostgreSQL ile nas\u0131l konu\u015faca\u011f\u0131n\u0131 yap\u0131land\u0131raca\u011f\u0131z.<\/p>\n<h3>Psycopg2 Kurulumu<\/h3>\n<p>Zope&#8217;un PostgreSQL ile ileti\u015fim kurabilmesi i\u00e7in <code>psycopg2<\/code> adl\u0131 Python adapt\u00f6r\u00fcne ihtiyac\u0131 vard\u0131r. Bu adapt\u00f6r\u00fc, Zope&#8217;un kurulu oldu\u011fu sanal ortama kurmal\u0131y\u0131z.<\/p>\n<pre><code class=\"language-bash\"># Sanal ortam\u0131n aktif oldu\u011fundan emin olun\n<h2>(zope2_env) prefix'ini g\u00f6rmelisiniz<\/h2>\ncd \/opt\/zope2\nsource zope2_env\/bin\/activate\n\n<h2>psycopg2'yi kural\u0131m<\/h2>\npip install psycopg2-binary<\/code><\/pre>\n<p><code>psycopg2-binary<\/code> versiyonu, derleme gerektirmeyen \u00f6nceden derlenmi\u015f ikili dosyalar\u0131 i\u00e7erir ve kurulumu daha kolayd\u0131r. E\u011fer kurulumda sorun ya\u015farsan\u0131z, <code>libpq-dev<\/code> paketinin y\u00fckl\u00fc oldu\u011fundan emin olun.<\/p>\n<p><code>psycopg2<\/code> kurulduktan sonra Zope \u00f6rne\u011finizi yeniden ba\u015flatman\u0131z gerekebilir, b\u00f6ylece yeni k\u00fct\u00fcphaneyi alg\u0131layabilir.<\/p>\n<pre><code class=\"language-bash\">cd \/opt\/zope2_instances\/instance1\n.\/bin\/runzope # veya Ctrl+C ile durdurup tekrar ba\u015flat\u0131n<\/code><\/pre>\n<h3>Zope Y\u00f6netim Aray\u00fcz\u00fcnden Ba\u011flant\u0131<\/h3>\n<p>\u015eimdi Zope Y\u00f6netim Aray\u00fcz\u00fc (ZMI) \u00fczerinden PostgreSQL veritaban\u0131m\u0131za bir ba\u011flant\u0131 nesnesi ekleyelim.<\/p>\n<p>1.  Web taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost:8080\/manage<\/code> adresine gidin ve y\u00f6netici kullan\u0131c\u0131 ad\u0131\/\u015fifrenizle giri\u015f yap\u0131n.<br \/>\n2.  ZMI&#8217;nin sol \u00fcst k\u00f6\u015fesindeki &#8220;Zope Root&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n3.  Sa\u011f \u00fcst k\u00f6\u015fedeki <code>add Zope object<\/code> a\u00e7\u0131l\u0131r men\u00fcs\u00fcnden <code>Database Connection<\/code> se\u00e7ene\u011fini se\u00e7in. (E\u011fer <code>PostgreSQL Database Connection<\/code> gibi \u00f6zel bir se\u00e7enek varsa onu da kullanabilirsiniz, ancak <code>Database Connection<\/code> genelde yeterlidir.)<br \/>\n4.  A\u00e7\u0131lan formda a\u015fa\u011f\u0131daki bilgileri girin:<br \/>\n    *   <strong>Id:<\/strong> <code>postgresql_db<\/code> (veya istedi\u011finiz herhangi bir tan\u0131mlay\u0131c\u0131 isim)<br \/>\n    *   <strong>Title:<\/strong> <code>PostgreSQL Database Connection<\/code> (iste\u011fe ba\u011fl\u0131)<br \/>\n    *   <strong>Connection string:<\/strong> <code>postgresql:\/\/zopeuser:your_secure_password@localhost:5432\/zopedb<\/code><br \/>\n        *   <code>zopeuser<\/code>: PostgreSQL&#8217;de olu\u015fturdu\u011fumuz kullan\u0131c\u0131 ad\u0131.<br \/>\n        *   <code>your_secure_password<\/code>: Bu kullan\u0131c\u0131n\u0131n \u015fifresi.<br \/>\n        *   <code>localhost<\/code>: PostgreSQL sunucusunun adresi.<br \/>\n        *   <code>5432<\/code>: PostgreSQL&#8217;in varsay\u0131lan portu.<br \/>\n        *   <code>zopedb<\/code>: PostgreSQL&#8217;de olu\u015fturdu\u011fumuz veritaban\u0131 ad\u0131.<br \/>\n    *   <strong>Database adapter (optional):<\/strong> Bu alan\u0131 bo\u015f b\u0131rakabilirsiniz, <code>psycopg2<\/code> otomatik olarak alg\u0131lanacakt\u0131r.<\/p>\n<p>5.  <code>Add<\/code> d\u00fc\u011fmesine t\u0131klayarak ba\u011flant\u0131y\u0131 olu\u015fturun.<\/p>\n<p>Ba\u011flant\u0131 nesnesi Zope Root alt\u0131nda g\u00f6r\u00fcnecektir. Ba\u011flant\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in, olu\u015fturdu\u011funuz <code>postgresql_db<\/code> nesnesine t\u0131klay\u0131n ve ard\u0131ndan <code>Test<\/code> sekmesine gidin. <code>Test Connection<\/code> d\u00fc\u011fmesine t\u0131klay\u0131n. E\u011fer her \u015fey do\u011fruysa, &#8220;Connection Test Succeeded&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz. Aksi takdirde, ba\u011flant\u0131 dizesini, kullan\u0131c\u0131 ad\u0131\/\u015fifreyi ve PostgreSQL <code>pg_hba.conf<\/code> ayarlar\u0131n\u0131 kontrol edin.<\/p>\n<h3>Basit Bir SQL Sorgusu ile Veritaban\u0131 Etkile\u015fimi<\/h3>\n<p>Zope i\u00e7inde PostgreSQL veritaban\u0131m\u0131zdan veri almak veya veri manip\u00fcle etmek i\u00e7in <code>SQL Method<\/code> veya <code>ZSQLMethods<\/code> nesnelerini kullanabiliriz. Bu, genellikle Zope&#8217;un DHTML y\u00f6ntemleri veya Python betikleri arac\u0131l\u0131\u011f\u0131yla \u00e7a\u011fr\u0131lan dinamik SQL sorgular\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>\u015eimdi basit bir <code>SQL Method<\/code> ekleyerek veritaban\u0131ndan zaman bilgisini \u00e7ekelim:<\/p>\n<p>1.  ZMI&#8217;de, <code>postgresql_db<\/code> ba\u011flant\u0131 nesnesinin bulundu\u011fu Zope Root seviyesinde oldu\u011funuzdan emin olun.<br \/>\n2.  <code>add Zope object<\/code> a\u00e7\u0131l\u0131r men\u00fcs\u00fcnden <code>SQL Method<\/code> se\u00e7ene\u011fini se\u00e7in.<br \/>\n3.  A\u00e7\u0131lan formda:<br \/>\n    *   <strong>Id:<\/strong> <code>get_current_time<\/code><br \/>\n    *   <strong>Title:<\/strong> <code>Get Current Database Time<\/code><br \/>\n    *   <strong>Connection Id:<\/strong> A\u00e7\u0131l\u0131r men\u00fcden <code>postgresql_db<\/code> ba\u011flant\u0131 nesnenizi se\u00e7in.<br \/>\n    *   <strong>Query Text:<\/strong> A\u015fa\u011f\u0131daki SQL sorgusunu girin:<\/p>\n<pre><code class=\"language-sql\">SELECT NOW() AS current_time;<\/code><\/pre>\n<p>4.  <code>Add<\/code> d\u00fc\u011fmesine t\u0131klayarak SQL metodunu olu\u015fturun.<\/p>\n<p>Olu\u015fturdu\u011funuz <code>get_current_time<\/code> nesnesine t\u0131klay\u0131n. \u015eimdi sorguyu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>Test<\/code> sekmesine gidin ve <code>Test<\/code> d\u00fc\u011fmesine t\u0131klay\u0131n. E\u011fer her \u015fey yolundaysa, sorgunun sonucunu, yani PostgreSQL sunucusunun mevcut tarih ve saatini i\u00e7eren bir tablo g\u00f6receksiniz. Bu, Zope&#8217;un PostgreSQL ile ba\u015far\u0131l\u0131 bir \u015fekilde ileti\u015fim kurdu\u011funu g\u00f6sterir. Art\u0131k Zope uygulamalar\u0131n\u0131zda bu SQL metodunu kullanarak veritaban\u0131n\u0131zla etkile\u015fim kurabilirsiniz.<\/p>\n<h2>Yayg\u0131n Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Ubuntu 13.10 gibi eski bir i\u015fletim sistemi ve Zope 2 gibi eski bir yaz\u0131l\u0131mla \u00e7al\u0131\u015f\u0131rken baz\u0131 sorunlarla kar\u015f\u0131la\u015fmak olas\u0131d\u0131r. \u0130\u015fte baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong><code>psycopg2<\/code> Kurulum Hatas\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> <code>pip install psycopg2-binary<\/code> komutu <code>Error: pg_config executable not found<\/code> veya benzeri bir hata veriyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu genellikle PostgreSQL geli\u015ftirme k\u00fct\u00fcphanelerinin (<code>libpq-dev<\/code>) eksik olmas\u0131ndan kaynaklan\u0131r. <code>sudo apt-get install -y libpq-dev<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra tekrar deneyin.<br \/>\n*   <strong>Zope Ba\u015flatma Hatas\u0131 (Port \u00c7ak\u0131\u015fmas\u0131):<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Zope <code>runzope<\/code> komutuyla ba\u015flam\u0131yor ve &#8220;Address already in use&#8221; (Adres zaten kullan\u0131mda) hatas\u0131 veriyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Ba\u015fka bir uygulaman\u0131n 8080 portunu kulland\u0131\u011f\u0131 anlam\u0131na gelir. Ya di\u011fer uygulamay\u0131 durdurun ya da Zope&#8217;un <code>instance1\/etc\/zope.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek farkl\u0131 bir port kullanmas\u0131n\u0131 sa\u011flay\u0131n. \u00d6rne\u011fin, <code><http-server><\/code> b\u00f6l\u00fcm\u00fcndeki <code>address<\/code> de\u011ferini <code>8081<\/code> olarak de\u011fi\u015ftirebilirsiniz.<br \/>\n*   <strong>PostgreSQL Ba\u011flant\u0131 Reddedildi Hatas\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Zope&#8217;da veritaban\u0131 ba\u011flant\u0131s\u0131 testi ba\u015far\u0131s\u0131z oluyor veya <code>psql<\/code> ile ba\u011flanam\u0131yorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        1.  <strong>PostgreSQL Servisi:<\/strong> <code>sudo service postgresql status<\/code> komutuyla PostgreSQL servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. \u00c7al\u0131\u015fm\u0131yorsa <code>sudo service postgresql start<\/code> ile ba\u015flat\u0131n.<br \/>\n        2.  <strong><code>pg_hba.conf<\/code>:<\/strong> <code>\/etc\/postgresql\/9.3\/main\/pg_hba.conf<\/code> dosyas\u0131ndaki ayarlar\u0131n do\u011fru oldu\u011fundan ve <code>zopeuser<\/code> i\u00e7in <code>md5<\/code> do\u011frulamas\u0131na izin verdi\u011finden emin olun. De\u011fi\u015fiklik yapt\u0131ysan\u0131z servisi yeniden ba\u015flat\u0131n.<br \/>\n        3.  <strong>Kullan\u0131c\u0131\/\u015eifre:<\/strong> Zope&#8217;daki ba\u011flant\u0131 dizesinde ve PostgreSQL&#8217;deki <code>CREATE USER<\/code> komutunda kullan\u0131lan kullan\u0131c\u0131 ad\u0131 ve \u015fifrenin tam olarak e\u015fle\u015fti\u011finden emin olun.<br \/>\n        4.  <strong>Firewall:<\/strong> E\u011fer bir g\u00fcvenlik duvar\u0131 (ufw) aktifse, PostgreSQL&#8217;in varsay\u0131lan 5432 portuna eri\u015fime izin verdi\u011finden emin olun: <code>sudo ufw allow 5432\/tcp<\/code>.<br \/>\n*   <strong>Python Versiyonu Uyumsuzlu\u011fu:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Zope veya ba\u011f\u0131ml\u0131l\u0131klar\u0131 kurulurken Python versiyonu ile ilgili hatalar al\u0131n\u0131yor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Sanal ortam\u0131 <code>virtualenv -p python2.7 zope2_env<\/code> komutuyla Python 2.7&#8217;yi i\u015faret ederek olu\u015fturdu\u011funuzdan ve t\u00fcm Zope\/ba\u011f\u0131ml\u0131l\u0131k kurulumlar\u0131n\u0131 bu aktif sanal ortam i\u00e7inde yapt\u0131\u011f\u0131n\u0131zdan emin olun. Sistem Python&#8217;unu kullanmaktan ka\u00e7\u0131n\u0131n.<br \/>\n*   <strong>Ba\u011f\u0131ml\u0131l\u0131k Eksiklikleri:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> \u00c7e\u015fitli <code>ImportError<\/code> veya derleme hatalar\u0131 al\u0131n\u0131yor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>build-essential<\/code>, <code>python-dev<\/code>, <code>libxml2-dev<\/code>, <code>libxslt1-dev<\/code>, <code>zlib1g-dev<\/code> gibi temel geli\u015ftirme k\u00fct\u00fcphanelerinin y\u00fckl\u00fc oldu\u011fundan emin olun.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<p>Bu rehber, Ubuntu 13.10 gibi eski bir i\u015fletim sistemi \u00fczerinde Zope 2 uygulama sunucusunu ve PostgreSQL veritaban\u0131n\u0131 kurup entegre etme s\u00fcrecini ad\u0131m ad\u0131m a\u00e7\u0131klam\u0131\u015ft\u0131r. Sistem haz\u0131rl\u0131\u011f\u0131ndan ba\u015flayarak, PostgreSQL&#8217;in kurulup yap\u0131land\u0131r\u0131lmas\u0131na, Zope 2&#8217;nin sanal bir ortamda kurulumuna ve son olarak Zope Y\u00f6netim Aray\u00fcz\u00fc \u00fczerinden PostgreSQL ile ba\u011flant\u0131 kurarak basit bir SQL sorgusu \u00e7al\u0131\u015ft\u0131rmaya kadar t\u00fcm temel ad\u0131mlar\u0131 ele ald\u0131k. Bu kombinasyon, belirli eski uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmak veya e\u011fitim ama\u00e7l\u0131 olarak faydal\u0131 olabilir, ancak modern web geli\u015ftirme ve \u00fcretim ortamlar\u0131 i\u00e7in g\u00fcncel teknolojilere y\u00f6nelmek daha do\u011frudur.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular (SSS):<\/strong><\/p>\n<p>*   <strong>Neden Ubuntu 13.10 kullan\u0131yoruz? Bu \u00e7ok eski de\u011fil mi?<\/strong><br \/>\n    *   Evet, Ubuntu 13.10 \u00e7ok eski bir i\u015fletim sistemi s\u00fcr\u00fcm\u00fcd\u00fcr ve art\u0131k g\u00fcvenlik g\u00fcncellemeleri almamaktad\u0131r. Bu rehber, kullan\u0131c\u0131n\u0131n \u00f6zel bir iste\u011fi veya eski bir sistemi canland\u0131rma ihtiyac\u0131 \u00fczerine haz\u0131rlanm\u0131\u015ft\u0131r. Yeni projeler veya \u00fcretim ortamlar\u0131 i\u00e7in modern Ubuntu s\u00fcr\u00fcmleri (\u00f6rn. 22.04 LTS) ve g\u00fcncel yaz\u0131l\u0131mlar kullanman\u0131z \u015fiddetle tavsiye edilir.<br \/>\n*   <strong>Zope 2 yerine ne kullanmal\u0131y\u0131m?<\/strong><br \/>\n    *   G\u00fcncel Python tabanl\u0131 web \u00e7at\u0131lar\u0131ndan baz\u0131lar\u0131 Django, Flask, FastAPI gibi se\u00e7eneklerdir. E\u011fer Zope ekosisteminde kalmak isterseniz, Zope 5 (Python 3 ile uyumlu) veya Plone 6 gibi daha modern s\u00fcr\u00fcmleri d\u00fc\u015f\u00fcnebilirsiniz.<br \/>\n*   <strong>Zope&#8217;u otomatik olarak ba\u015flatmak i\u00e7in ne yapmal\u0131y\u0131m?<\/strong><br \/>\n    *   \u00dcretim ortamlar\u0131nda Zope&#8217;u otomatik olarak ba\u015flatmak ve denetlemek i\u00e7in <code>supervisor<\/code> veya <code>systemd<\/code> servisleri kullan\u0131labilir. Bu rehberin kapsam\u0131 d\u0131\u015f\u0131nda olmakla birlikte, bu ara\u00e7lar Zope&#8217;un sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 ve \u00e7\u00f6kmesi durumunda yeniden ba\u015flat\u0131lmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>Veritaban\u0131 ba\u011flant\u0131m hala reddediliyor, ne yapmal\u0131y\u0131m?<\/strong><br \/>\n    *   Yukar\u0131daki &#8220;Yayg\u0131n Sorunlar ve \u00c7\u00f6z\u00fcmleri&#8221; b\u00f6l\u00fcm\u00fcndeki PostgreSQL ba\u011flant\u0131 reddi ad\u0131mlar\u0131n\u0131 dikkatlice kontrol edin. \u00d6zellikle <code>pg_hba.conf<\/code> dosyas\u0131ndaki ayarlar\u0131n ve PostgreSQL servisinin yeniden ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olun. Ayr\u0131ca, Zope&#8217;da kulland\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131 ad\u0131 ve \u015fifrenin PostgreSQL&#8217;deki ile tamamen e\u015fle\u015fti\u011finden emin olun.<br \/>\n*   <strong>Bu kurulumu bir Docker konteynerinde yapabilir miyim?<\/strong><br \/>\n    *   Evet, Zope 2 ve PostgreSQL&#8217;i Docker konteynerlerinde \u00e7al\u0131\u015ft\u0131rmak, eski yaz\u0131l\u0131mlar\u0131 izole bir ortamda y\u00f6netmek i\u00e7in harika bir yakla\u015f\u0131md\u0131r. Bu, sisteminizin geri kalan\u0131n\u0131 etkilemeden ve ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131yla u\u011fra\u015fmadan bu eski teknolojileri kullanman\u0131za olanak tan\u0131r. Dockerfile yazarak bu kurulum ad\u0131mlar\u0131n\u0131 otomatikle\u015ftirebilirsiniz.<\/p>\n<p>Bu rehberin, eski ancak belirli ihtiya\u00e7lar i\u00e7in hala ge\u00e7erli olan Zope 2 ve PostgreSQL kombinasyonunu Ubuntu 13.10 \u00fczerinde kurmak isteyenlere yol g\u00f6stermesini umuyoruz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri\nBu rehber, g\u00fcn\u00fcm\u00fczde eski bir sistem ve yaz\u0131l\u0131m kombinasyonu olsa da, belirli ih","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-38028","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>Giri\u015f: Zope 2 ve PostgreSQL&#039;in Ubuntu 13.10 \u00dczerindeki Yeri - 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\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giri\u015f: Zope 2 ve PostgreSQL&#039;in Ubuntu 13.10 \u00dczerindeki Yeri\" \/>\n<meta property=\"og:description\" content=\"Giri\u015f: Zope 2 ve PostgreSQL&#039;in Ubuntu 13.10 \u00dczerindeki Yeri Bu rehber, g\u00fcn\u00fcm\u00fczde eski bir sistem ve yaz\u0131l\u0131m kombinasyonu olsa da, belirli ih\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-21T13:41:59+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri\",\"datePublished\":\"2026-01-21T13:41:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\"},\"wordCount\":2660,\"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\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\",\"name\":\"Giri\u015f: Zope 2 ve PostgreSQL'in Ubuntu 13.10 \u00dczerindeki Yeri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-21T13:41:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri\"}]},{\"@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":"Giri\u015f: Zope 2 ve PostgreSQL'in Ubuntu 13.10 \u00dczerindeki Yeri - 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\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/","og_locale":"tr_TR","og_type":"article","og_title":"Giri\u015f: Zope 2 ve PostgreSQL'in Ubuntu 13.10 \u00dczerindeki Yeri","og_description":"Giri\u015f: Zope 2 ve PostgreSQL'in Ubuntu 13.10 \u00dczerindeki Yeri Bu rehber, g\u00fcn\u00fcm\u00fczde eski bir sistem ve yaz\u0131l\u0131m kombinasyonu olsa da, belirli ih","og_url":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-21T13:41:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri","datePublished":"2026-01-21T13:41:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/"},"wordCount":2660,"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\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/","url":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/","name":"Giri\u015f: Zope 2 ve PostgreSQL'in Ubuntu 13.10 \u00dczerindeki Yeri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-21T13:41:59+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/giris-zope-2-ve-postgresqlin-ubuntu-13-10-uzerindeki-yeri\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Giri\u015f: Zope 2 ve PostgreSQL&#8217;in Ubuntu 13.10 \u00dczerindeki Yeri"}]},{"@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\/38028","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=38028"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38028\/revisions"}],"predecessor-version":[{"id":38029,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38028\/revisions\/38029"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}