2011-12-06 17 views
6

Bir RHEL5 kutusuna freetds ve php-mssql yüklemeye çalışıyorum. Başarıyla yaptım (ne gibi) her şey. PHP modülünün yüklenmesi çalıştığında Ancak, aşağıdaki hatayı alıyorum: Ben farklı değerlerdir neden anlamaya çalışıyorum beynimi çekerek, ancak hiçbir başarı sahip oldumPHP Yanlış derlenmiş API ile modül (başlatılamıyor)

PHP Warning: PHP Startup: mssql: Unable to initialize module 
Module compiled with module API=20090626, debug=0, thread-safety=0 
PHP compiled with module API=20050922, debug=0, thread-safety=0 
These options need to match 

.

En son girişimde, çalıştırdığım sürümün php kaynağını indirdim (php-5.3.8), ext/mssql klasörüne gittim ve phpize, configure, make, make make komutunu çalıştırdım.

mssql.so dosyasının uygun klasörde olduğunu doğruladım ve bu php yüklemeye çalışıyor.

phpize -v 
Configuring for: 
PHP Api Version:   20050922 
Zend Module Api No:  20090626 
Zend Extension Api No: 220090626 

cevap

11

RHEL php (5.1.x'ten) eski bir sürümünü ve yeni php sürümleri (örneğin 5.3.x gibi) çeşitli değişiklikler anlamına kurulumunu vardı. Resmi olmayan depolardan yüklerseniz, php- * ve php5- * adlı paketleri göreceksiniz. Her iki versiyona sahip olmak problemlerin kaynağı olabilir.

Sisteminiz önceki php yüklemelerinden bazı yapılandırma dosyalarına erişiyor gibi görünüyor. Her iki php-config varsa,/usr/bin/php-config * göz at - Eğer eski sürümleri elemanları olmadığından emin olun /etc/php.d - :

göz at ve php-config5, çıkarın (adlandırmak)/usr/bin/php-config ve yenisine link edin:

# mv /usr/bin/php-config /usr/bin/php-config_old 
# ln -s /usr/bin/php-config5 /usr/bin/php-config 

Umut bu yardımcı olur

+0

Teşekkür ederiz. Ben php yüklü iki sürümü olabileceğini teoriye başlıyordum. Php-config versiyon = "5.1.6" yazdığını fark ettim, ancak php -v sürümü 5.3.8 olarak gösteriyor. Php-config5 dosyası mevcut değil. –

+0

/usr/bin'de yoksa, php-config'un daha yeni sürümünü nerede bulabilirim? Php-config üzerinden kopyalamak için php 5.3.8'in yeni bir kurulumunu (php'nin çalıştığı) yüklemem gerekir mi? –

+1

Çok teşekkürler, bu bana baş ağrısı veriyordu. Osx üzerinde memcached kurmaya çalışıyordum ama bu problemi devam ettiriyordum. Sonunda, "pecl install memcached" i yüklemek için pecl'i kullandım, bir keresinde php, phpize ve php-config sürümlerini MAMP – jackofallcode

1

teyit edebilir bir modül gelmez zaman işte Farklı bir API nedeniyle t yükleme, eski bir php-config yüzünden. Sonra/usr/bin/php-config dosyasına bakmalı ve daha yeni bir sürümle yazmalısınız.

+0

Thanks David tarafından sağlananlara düzelttim. Nasıl devam edeceğiniz konusunda bir öneriniz var mı (önceki cevapta yorumda bulunulduğu konusunda) –

+0

@AndrewVogel: php klasöründe yeni php-config buldum ama php'yi bir tarptoptan kurdum. Sanırım eski php-config apt-get gibi uzak bir kurulumdan geliyor. Aynı problemi eaccelarator ile aldım. Demek istediğin bu mu? – Bytemain

+0

Evet .. hangi klasöre yeni php-config verdiniz? Yoksa jap1968'in/usr/bin klasörünüzde belirtildi mi? Eğer daha yeni bir php-config'ım yoksa, tek seçeneğimin yeni bir php yüklemesi olacağını düşünür müsünüz? –