2016-09-12 24 views
21

üzerinde Apache ile çalışmaz Homebrew ile kurduğum php7'ye yükseltmeye çalışıyorum.PHP7, MacOS

PHP 7.0.10 (cli) (built: Aug 21 2016 19:14:33) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 

Ama localhost için döner -v CLI php olarak

, firefox bir sorun yükleme sayfasını açılır ve bir localhost/phpinfo.php görüntüleyemezsiniz; Eğer modül hatlarını php5'e geri gönderirsem iyi çalışır.

İşte apache2/httpd.conf sayfamın bir http://pastebin.com/950yC7wA adlı macunudur, bunun nasıl düzeltileceğine dair bir fikrim yok.

  • osx versiyonu El Capitan 10,11
+0

soru burada olurdu ne yaptığını "Sorun Yükleme Sayfası" deyin mi? Ayrıca, apache erişim ve hata günlüğüne baktınız mı? Sayfanızı aradığınızda ne diyor? –

+0

Soruyu bu gece daha sonra güncelleyeceğim! @ BjörnK – arthur

+0

@arthur Açıklığa kavuşturmak için, test ettiğin httpd.conf dosyasını indirdim; cevabım, httpd.conf'unuza (phpinfo() 'çağrısını varsayılan'/Library/WebServer/Documents' içine koydum) temel aldım. Vhosts.conf gibi 'includes' içerisindeki herhangi bir şeye ve bu şekilde alınabilecek herhangi bir .htaccess dosyasına özel önem veririm. Bunları eklemek soruna yardımcı olabilir. – HPierce

cevap

3

mevcut yapılandırma ile herhangi bir sorun gösterecektir $ apachectl -t Running. Ben koştum zaman bu var:

httpd: Syntax error on line 171 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/opt/php70/libexec/apache2/libphp7.so into server: dlopen(/usr/local/opt/php70/libexec/apache2/libphp7.so, 10): Symbol not found: _ldap_control_find\n Referenced from: /usr/local/opt/php70/libexec/apache2/libphp7.so\n Expected in: /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP\n in /usr/local/opt/php70/libexec/apache2/libphp7.so

bu hatayı engelleyecektir LDAP desteği olmadan paketini yükleyerek, this workaround posted on github onaylayabilirsiniz:

brew reinstall php70 --without-ldap 

+0

Yarın iadesi için koşacak ve benim için düzeltirse ödül vereceğim, teşekkürler. – arthur

+1

ldap ve apachectl -t olmadan demleme ile yeniden yüklendim Tamam sözdizimi döndürür, ancak yine de aynı sorunu yaşıyorum. – arthur

+1

@arthur Darn. Sonunda güzelce çalıştığından, verdiğiniz bilgilerle daha fazla yardımcı olabileceğime emin değilim. İlginç bir şey bulursanız, bazı hata günlüklerini (hem apache'nin hem de php'nin) kontrol etmeli ve [değiştir]. – HPierce

9

Homebrew mükemmel bir araçtır iken, zaman zaman gereksiz.

Installing Apache, PHP, and MySQL on Mac OS X adresindeki yayınlarımdan bahsediyorum, OS X Apache ve PHP önceden yüklenmiş olarak gelir. Bu nedenle, onları yapılandırmanız ve etkinleştirmeniz yeterlidir.

Maalesef, Mac OS 10.11 (El Capitan) gibi, PHP sürümü hala 5.5. PHP 5.5 EOL olduğu için bunun 10.12 (Sierra) ile değişeceğini tahmin ediyorum. Ancak, sadece PHP 5.6 olabilir.

PHP 7'yi yüklemek için PHP OSX'u kullanmanızı öneririz. PHP sürümleri 5.3 ila 7.1 (en son) için paket yüklemeleri sunarlar. Mac OS 10.6+ (Snow Leopard) için kullanılabilir.

Paket yüklemesi olduğu için varsayılan Apache yüklemesiyle kutudan çıktı. Sadece PATH kodunuzu güncellemeniz ve PHP ini dosyalarını değiştirmeniz yeterli olacaktır. Her ikisi de FAQ'da özetlenmiştir.

Daha adım adım bir eğitim istiyorsanız, en son gönderimime bakın: Updating PHP on Mac OS X.

3

Sorununuza doğrudan bir çözüm değil, ancak OS X'te php ile sayısız sorun yaşadım. Son zamanlarda El Capitan'a yükselttikten sonra OCI kitaplıklarını çalıştırmaya çalışıyordum.

Şimdi kullanmaya çalışıyorum ve geliştirmem için docker kullanmaya başladım. Bunu çok daha iyi bir çözüm olarak görüyorum ve hatta farklı sürümleri test etmek için gerçekten kullanışlı olan aynı kod tabanı üzerinde birden fazla ortam oluşturabilirsin.

Docker, OS X'de kurulumu gerçekten çok kolaydır ve depoda çok sayıda önceden oluşturulmuş kapsayıcıya sahiptir, yalnızca bağlama noktasını kaynak dizininize yükler ve ayarlarsınız ve erişmenizi sağlayan bağlantı noktasını kullanırsınız.

+0

Aslında şu anda docker kullanıyordum, sadece onunla git kullanmak zorunda can sıkıcı ve 55/56 mükemmel çalıştığında php7 kurmak mümkün değil çok sinir bozucu. – arthur

+0

Git'i kullanıyorum, kaynak kodumu ana sürücümdeki bir yoldan denetledikten sonra bağlantı noktasını docker konteynerinde bu klasöre ayarla, hepsi –

4

OS X Sierra'da Apache kullanıyorsanız, php7 artık öntanımlı olarak apache modülüyle birlikte gelmiyor. bayrağıyla yeniden

With the release of macOS Sierra the Apache module is now not built by default. If you want to build it on your system you have to install php with the --with-apache option. See brew options php70 for more details.

Dene:

brew reinstall php70 --with-apache 
+4

için çalışıyor - '--with-apache' seçeneği kullanımdan kaldırılıyor, Bunun yerine 'with-httpd24' kullanın. – thijsonline

+0

Bildirim @thijsonline için teşekkürler, hangi sürümü kullanımdan kaldırdığını biliyor musunuz? –

+0

hayır, üzgünüm Bilmiyorum hangi sürümden başlayarak – thijsonline

3

Ben aynı sorunu vardı ve

LoadModule php5_module libexec/apache2/libphp5.so 
9

olun /etc/apache2/httpd.conf yılında bu hat üzerinden yorumladı zaman uzağa gitti emin olun:

  • Apache modülü desteği ile PHP'yi kurdu (bakınız: brew options php71).

    E.g. --with-httpd22 veya --with-httpd24 dahildir.

  • Sen sudo apachectl restart aracılığıyla Apache yeniden brew info php71

    ==> Caveats 
    To enable PHP in Apache add the following to httpd.conf and restart Apache: 
        LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so 
    
        <FilesMatch .php$> 
         SetHandler application/x-httpd-php 
        </FilesMatch> 
    
    Finally, check DirectoryIndex includes index.php 
        DirectoryIndex index.php index.html 
    
  • gelen talimatları uyguladım.

Bir şey işe yaramazsa, günlükleri şu adresten kontrol edin: tail -f /usr/local/var/log/apache2/*error*.

Adım adım eğitici için bkz .: Setup Apache, MySQL and PHP using Homebrew on macOS Sierra.

+0

Bu bana yardımcı oldu! – lewis4u

+0

Libphp7.so dosyasını yükledikten sonra bile sıkışmıştım. SetHandler uygulamasını/x-httpd-php'yi eklemek beni işe koydu. Bir vardir. – techturbulence

0

Ben çok eski bir konu olduğunu biliyorum ama sen PHP güncelleme yaptığınızda da Apache confing güncellemeniz gerekir - örneğin:

LoadModule php5_module libexec/apache2/libphp5.so 

değişim için:

LoadModule php7_module libexec/apache2/libphp7.so 
İlgili konular