Nasıl Arch Linux Altında PostgreSQL Kurulumu

From Lapis Wiki

Jump to: navigation, search
Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar

Bu belge PostgreSQL kurulumu ve Apache ve PHP ile nasıl tümleştirileceğini anlatıyor. Ayrıca PostgreSQL'in uzak istemcilerden nasıl erişebileceğini de anlatıyor. Anlatım yapılırken PHP ve Apache'nin yapılandırıldığı varsayılmaktadır. Detaylı bilgi için LAMP kurulumuna bakınız.

Konu başlıkları

PostgreSQL Kurulumu


  • Paketi şu komut ile kurunuz:
Kod:
# pacman -Sy postgresql


  • PostgreSQL sunucusunu ayarlamak ve çalıştırmak için şu komutu kullanınız.
Kod:
/etc/rc.d/postgresql start

ilk kez çalıştırmada kullanıcıların sunucuyu çalıştırması için ihtiyacı olan veri dizini yaratılır. Göreceğiniz üzere uzun bir komut çıktısı olacaktır.

  • Daha sonra sistem açılışında başlatılabilmesi için postgresql'i /etc/rc.conf dosyanızdaki Daemons satırına ekleyiniz.

Uzaktan Erişim için PostgreSQL'i Yapılandırma


PostgreSQL veritabanı sunucu yapılandırma dosyası postgresql.conf'dur. Bu dosya sunucunun veri dizininde bulunur,genellikle bu yol /var/lib/postgres/data olur.

  • root yetkisini alarak bu dosyayı düzenleyiniz:
Kod:
# vi /var/lib/postgres/postgresql.conf
  • Bağlantılar ve kimlik doğrulama kısmındaki listen_addresses satırını ihtiyacınıza göre düzenleyiniz:
    listen_addresses = '*'

ve diğer satırları da dikkatli bir şekilde gözden geçiriniz.

  • Buradan sonra şu satırı /var/lib/postgres/pg_hba.conf isimli host-based authentication dosyasına ekleyiniz. Bu dosya hangi sunucunun bağlanmasına izin verileceğini belirler. bu yüzden dikkatli olun.

# IPv4 local connections:
host   all   all   your_desired_ip_address/32   trust

Burada your_desired_ip_address istemcinin IP adresidir.

  • Bu kısmıda bitirdiğinizde değişikliklerin etkin kılınması için PostgreSQL'i yeniden başlatmalısınız.
Kod:
/etc/rc.d/postgresql restart


  • Bu noktada lütfen port 5432 açık olduğundan emin olunuz, bunun için şu dosyaları kontrol ediniz.


/etc/services
/etc/hosts
/etc/hosts.allow

  • Sorun gidermek için sunucu kayıt dosyası olan

tail /var/log/postgresql.log'ı inceleyiniz.


PostgreSQL'i PHP ile Çalışacak Şekilde Yapılandırmak


  • Seçiminize bağlı olraka istediğiniz bir metin editörü ile /etc/php.ini dosyasını açınız. Örneğin:
Kod:
nano /etc/php.ini
  • "extensions_dir" veya ";extensions_dir" ile başlayan satırları bulunuz okunabilmesi için şu şekilde değiştiriniz:
Kod:
'''extensions_dir = "/usr/lib/php/extensions/no-debug-non-zts-20041030"'''

Bu satır dosyanın Paths and Directories bölümündedir. Bir de kendiniz her paketin sürümlerine göre değişip değişmediklerini kontrol ediniz.

  • ";extension=pgsql.so" ile başlayan satırı bulunuz ve şu şekilde değiştiriniz "extension=pgsql.so". Eğer bu satır normalde yoksa ekleyiniz. Bu satır dosyanın Dynamic Extensions bölümünde yer alır.
  • Apache Web Sunucusunu yeniden başlatınız.
Kod:
/etc/rc.d/httpd restart

phpPgAdmin Kurulumu(İsteğe Bağlı)


phpPgAdmin, PostgreSQL için web-tabanlı bir yönetici aracıdır ve iki yol ile kurulabilir.

Seçenek A: AUR paketi olarak kurulum (önerilir)

phpPgAdmin AUR yardımı ile kurulabilir.


Seçenek B: Kaynak kodundan kurulum (eski yol)

  • Son sürüm .bz2 dosyasını buradan sunucu dizininizin yönetici kısmına indiriniz.


Kod:
wget -P /home/httpd/html http://voxel.dl.sourceforge.net/sourceforge/phppgadmin/phpPgAdmin-3.5.4.tar.bz2
  • Dosyayı yeni bir dizine açınız.
Kod:
tar -C /home/httpd/html/ -jxvf /home/httpd/html/phpPgAdmin-3.5.4.tar.bz2
  • Sıkıştırılmış dosyayı siliniz.
Kod:
rm /home/httpd/html/phpPgAdmin-3.5.4.tar.bz2
  • Dizinin adını bir önceki adımda yarattığınız versiyona dikkat ederek yeniden adlandırın. (Bu gelecekte yükseltme yaparken size yardımcı olacaktır.)
Kod:
mv /home/httpd/html/phpPgAdmin /home/httpd/html/phpPgAdmin-3.5.4/
  • Bu dizine bağlantı oluşturun(kolay bağlanma ve yükseltme için)
Kod:
ln -s /home/httpd/html/phpPgAdmin-3.5.4/ /home/httpd/html/phpPgAdmin
  • Genel yapılandırma bilgilerini içeren dosyayı kopyalayınız.
Kod:
cp /home/httpd/html/phpPgAdmin/conf/config.inc.php-dist /home/httpd/html/phpPgAdmin/conf/config.inc.php


Yapılandırma dosyası /home/httpd/html/phpPgAdmin/conf/config.inc.php dizininde yer almaktadır. Bu dosyada değişikliğe gerek yoktur.Bu sayfayı diğer ayar soruları için ziyaret ediniz.

PostgreSQL yükseltilmesi(İsteğe bağlı ve tehlikeli)


  • Dikkat: Bu anlatılanlar veri kaybına yol açabilir. Bu anlatılanlar ben de çalıştı ama bazı şeyler değişmiş olabilir ve hiçbirşey garanti değildir.


  • /etc/pacman.conf dosyanıza

IgnorePkg = postgresql

satırını eklemenizi şiddetle tavsiye ederim.
Böylelikle kazara PostgreSQL ve veritabanındaki geçersiz bir sürüme güncellenmeyecektir. Eğer kazara bir güncelleme yapmışsanız hiçbir verinize ulaşamazsınız. Herzaman için PostgreSQL anasyafasını kontrol ediniz (http://www.postgresql.org/) ve böylece güncelleme için hangi adımların gerekli olduklarına emin olabilirsiniz.


Verilerinizi boşaltıp,PostgreSQL'İ güncelleyip tüm verilerinizi nasıl geri yükleyeceksiniz?

  • root yetkisini alınız.
Kod:
su
  • postgres kullanıcısı olun.
Kod:
su postgres
  • Güncel dizininizi postgres kullanıcısının yazabileceği bir dizin ile değiştirin.Örneğin:
Kod:
cd ~/data/
  • Veritabanının gücel içeriğini temizleyiniz.
Kod:
pg_dumpall > pgs_db.out

Eğer .pgpass dosyanızvarsa, bir kaç defa şifrenizi girmeniz gerekecektir (şifrenizi yineleme sayısı sahip olduğunuz veritabanı sayısından 2 fazladır).

  • postgres kullanıcısından çıkın ve root olun.
Kod:
exit
  • PostgreSQL sunucusunu durdurun.
Kod:
/etc/rc.d/postresql stop
  • Postgresql'in veri dizinini taşıyınız.
Kod:
mv /var/lib/postgres /var/lib/postgres_old
  • Postgresql'i güncelleyiniz
Kod:
pacman -Sy postgresql
  • PostgreSQL sunucusunu yeniden başlatınız. (Bu tüm gerekli dosyaları ve dizinleri tekrar yaratacaktır.)

{{Kod||/etc/rc.d/postgresql start

  • postgres kullanıcısı olun.
Kod:
su postgres
  • Güncel dizininizi 8. adımda verilerinizi boşaltığınız dizin ile değiştirin. Örneğin:
Kod:
cd /var/lib/postgres_old/data/
  • Veritabanını geriyükleyin
Kod:
psql -e template1 -f pgs_db.out



Kaynak: Archlinux Wiki Sayfası