2010-05-14 18 views
8

Mevcut bir PostgreSQL veritabanına erişen bir PHP uygulaması oluşturmak için görevlendirildim. Bu, Postgre ile ilk kez çalışıyorum, PHP'nin uygulamanın üzerinde çalıştığı Linux kutusuna zaten yüklenmiş olduğunu söylemem. Bu şeyi kurma konusunda tecrübem yok, sadece kodlarım.pgsql.so PHP yüklenmedi

Sorum şu ki, Postgre uzantısının PHP'de çalışmasını sağlayamıyorum. Php.ini dosyasını kontrol ettim, "extension = ..." satırı yoktu. Bu yüzden "extension = pgsql.so" ekledim. Daha sonra "extension_dir" seçeneğini işaretledim ve orada sadece 2 dosya olduğunu öğrendim (ldap.so, phpcups.so), başka bir Linux kutusundan alınan bir pgsql.so dosyasını ekledim. Httpd'yi yeniden başlattım. Ve işe yaramıyor. Phpinfo() 'da herhangi bir "pgsql" veya "postgre" bulamadım.

Kötülüklerimi bağışla. Çok az Linux biliyorum. Beni doğru yöne yönlendirirseniz gerçekten minnettar olurum.


Ben number5 tarafından verilen öneri kullandı:

Dude RedHat'le çıkıyorum. Sana verdi komutunun "yum" versiyonunu kullanılan ve bu var:

[root @ perseus ~] # yum depoları kurma Süreci yükleyin kurma eklenti "installonlyn" php-pgsql Yükleniyor yüklemek mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras hata oldu [errNo 4] alınamadı IOError: hata: ekstralar MAALESEF kullanıyorum Linux sunucu Internet'e bağlı dEĞİLDİR


: repo için geçerli bir BaseURL bulunamıyor. Kurmak için başka bir yol var mı?

+1

için 'öylesine'

için

;extension=php_pgsql.dll 

'dll'. –

+0

umarım zaten problemini çözmüşsün. Değilse, gerekli rpmleri indirebilir ve rpm komutunu kullanarak yükleyebilirsiniz. http://mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/php-pdo-5.1.6-23.2.el5_3.x86_64.rpm wget http://mirrors.gigenet.com/ centos/5.4/os/x86_64/CentOS/php-pgsql-5.1.6-23.2.el5_3.x86_64.rpm rpm -ivh * .rpm bazı depslerin eksik olduğunu söylerse, burada bulabilirsiniz http : //mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/ İndirme bağlantısı, CentOS'unuzun 5.4 x86_64 – number5

+0

teşekkürler number5, super olduğunu varsayar! – Obay

cevap

9

Kullandığınız Linux dağıtımına bağlıdır.

Ubuntu/Debian kullanıyorsanız, aşağıdakileri yapmanız gerekir:

sudo apt-get install php5-pgsql 

Fedora/CentOS

yum install php-pgsql 

genellikle size olarak açıktır dağıtıma hangi öğrenebilirsiniz:

ls /etc/*-release 
+0

Dude – Obay

1
  • Diğer makineden kopyaladığınız .so dosyasını çıkarın. e (çalışabilir olsa da, risk almaya gerek yoktur)
  • php_pgsql/php5_pqsql modülünü kurmak için dağıtımın paket yöneticisini kullanın
  • Apache'yi yeniden başlatın ve tekrar deneyin. Belki modülü bu ini dosyasını
  • yeniden apache
3

Açık

  • düzenlemek zorunda php.ini görmek için <?php echo 'ini: ', get_cfg_var('cfg_file_path'); çalıştırın automagicallylar
  • Değilse bir .ini dosyasına eklendi CentOS uzantıları /etc/php.d

    'daki her bir php uzantısı için ayrı bir * .ini dosyası oluşturur. Yani, ana * .ini dosyasını değiştirmeyin, ancak /etc/php.d/pgsql dosyasını oluşturun.ini ve

    extension=pgsql.so 
    

    Sonra

    service httpd restart 
    

    kullanarak Apache yeniden başlatmanız gerekecektir bir çizgi var eklemek Ama en iyi otomatik yolu sadece değil mi 'Senin durumunda

    yum install php-pgsql 
    

    yazmaktır yum konfigürasyonunda bazı problemler yüzünden işe yarar.

    gerekirse o dosyayı kaydetmek
    #additional packages that may be useful 
    [extras] 
    priority=1 
    name=CentOS-$releasever - Extras 
    =extras 
    #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ 
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
    

    Doğru (Ctrl-: [ekstralar] bölümüne Tip

    nano /etc/yum.repos.d/CentOS-Base.repo 
    

    ilerleyin /etc/yum-repos.d ve böyle olduğundan emin olmak için git X) ve aşağıdakileri yapın:

    Ardından
    yum clean all 
    yum upgrade 
    

    tekrarlamak deneyin

    yum install php-pgsql 
    
  • +0

    üstünde bazı yorumlar ekledim: Yapılandırma Hatası: Dosya, ayrıştırma hataları içeriyor: file: /////etc/yum.repos.d/CentOS-Base.repo [line 41]: '= ekstralar \ n ' – Obay

    +0

    Kim diyor? CentOS sürümünüz nedir? Olabilir, "öncelik" dizgisini kaldırmalısınız? –

    -1

    Benim işletim sistemi Linux nane kde ve size "php.ini" in uzantısı adını değiştirmek gerekir sonra kullanım php5.6

    sudo apt-get install php5.6-pgsql 
    

    iseniz yüklemelisiniz aynı sorun

    pg_connect()

    oldu dosya. Örneğin

    ServerFault bir soru gibi görünüyor
    extension=php_pgsql.so 
    
    +1

    Bu farklı bir konu gibi görünüyor. Bir başlangıç ​​için, OP zaten bu konfigürasyon satırını tam olarak yazıldı. –

    İlgili konular