2012-12-29 17 views
5

Pthreads PHP extension ile ilgili sorunlarım var. PHP'yi ZTS etkin olarak (--enable-maintainer-zts) derledim ve pthlleri pecl ile yükledim ve ayrıca uzantıyı elle derlemeyi denedim.Pthreads PHP uzantısı Ubuntu'da nasıl kullanılır?

Aslında nasıl kullanılacağını bilmiyorum. PHP'deki Thread sınıfını herhangi bir diğer yerleşik sınıf gibi kullanabileceğimi, ancak PHP'nin bunu fark etmediği hiçbir şansı olmayan olarak kullanabileceğimi varsaydım. POSIX işlevleri çalışıyor gibi görünüyor.

Ubuntu 12.10 Server 64-bit'i mod_php 5.4.6 ile kullanıyorum.

+0

Apache hata günlüğünü inceledim ve pthreads.so bilinmeyen bir sembol olduğu için yüklenemedi gibi görünüyor: sapi_globals_id ... Ayrıca pthreads ile statik uzantı olarak php derlemeye çalıştım ve fark yaratmıyor. –

+0

Belgeler, 5.3 için açıkça belirtiyor. "5.6.4" ile "5.4.6" demek istediniz mi? Eğer öyleyse, 5.4'ten 5.3'e inmeyi deneyin ve sonra çalışıp çalışmadığını görün. Bunu yaparsa, 5.4 desteğiyle ilgili bir sorun bildirmek istersiniz. – Charles

+0

Evet, bu bir yazım hatasıydı, PHP 5.4.6 çalıştırıyorum. Şu anda pthreads çalışıyor ve çalışıyor. –

cevap

3

Uzantı sınıflarına erişemezseniz, o zaman yüklenmez.

Yapılandırma satırınızın hatalı biçimlendirildiğini yanıtladığım bir hata raporu açtınız.

Kullanmak istediğiniz yapılandırmak çizgisidir:

./configure --enable-pthreads --enable-maintainer-zts 

Yukarıdaki komut DSO olarak pthreads inşa edecek.

./configure --enable-pthreads=static --enable-maintainer-zts 

Yukarıdaki komut, pthreads'ı statik olarak PHP'ye oluşturacaktır.

Her ikisi de eşit olarak 5.3, 5.4 ve hatta 5.5 tarafından desteklenir. Eğer o zaman php yürütülebilir /usr/bin adresinde ise, örneğin, belirli bir --prefix kullanmalıdır sistem kurulumunu üzerine yazmasını eğer

Ayrıca, (eğer ile tespit hangi "hangi php"), sonra --prefix=/usr sistem kurulumunu üzerine yazılır .

Eski yüklemelerinizi temizleyin (kaynaklar hala kullanılabilir durumdaysa kaldırın). Tekrar başlayın, sistem kurulumunun üzerine yazdığınızdan veya bunu tamamen izole ettiğinizden emin olun.

Lütfen, çalışma raporunu güncellediğinizde güncelleyin.

+0

Eh, tüm Ubuntu'yu yeniden yükledim ve önerdiğiniz komutla php'yi statik olarak yapıyorum (--enable-pthreads = statik). Bu sefer sorun yok, bu yüzden PHP konfigürasyonunda aksilikler var gibi görünüyor. Bana yardım ettiğin için teşekkürler. –

+0

ZTS, PHP'nin tüm yüklü sürümleri (yani CGI, CLI ve SAPI/Apache) için etkinleştirilmeli mi? Ya da sadece CLI için pthreads kullanmayı planlıyorsam, ZTS'yi diğeri için devre dışı bırakabilir miyim? – robguinness

+0

Her yerde pthreads yüklü ZTS gerektirir, dilerseniz pthreads desteği ile PHP izole bir örneğini oluşturabilirsiniz ... –