Sistem yükseltmesinden sonra PHP Apache2'de çalışmıyor


14

Son zamanlarda sistemimi Karmic'ten Lucid'e yükselttim. Bu Apache ve PHP güncelleme inanıyorum dahil.

Şimdi sunucum PHP dosyalarını işleyemiyor, herhangi bir gezinti ayrıştırmak yerine indirmeyi tetikliyor.

PHP modülü hala Apache modları etkin yüklü ve AddType application/x-httpd-php .phpbenim httpd.conf var.

Apache erişim veya hata günlüklerinde anlamlı mesajlar yok, bu yüzden güldüm.

Herhangi bir yardım mutluluk duyacağız. Teşekkürler.

Yanıtlar:


17

/var/log/apache2/error.log PHP başarıyla yüklendiyse aşağıdaki gibi bir satır göstermelidir:

[Sal 30 Ağu 12:53:36 2011] [uyarı] Apache / 2.2.14 (Ubuntu) PHP / 5.3.2-1ubuntu4.9, Suhosin Patch ile yapılandırılmış - normal işlemlere devam

Tarihe dikkat edin, 2009'dan bir şeyse, bir şeyi yanlış yapılandırdınız.

AddType işe yaramazsa, kullanmanız gerekir:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Ayrıca Apache 2.x için php.net üzerindeki kurulum talimatlarına bakın .

El ile bu ilave etmeye gerek olmamalıdır, paket libapache2-mod-php5yükler /etc/apache2/mods-available/php5.confiçeren:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

Bir conffile olduğundan, yükseltme ile yüklenmemiş olabilir. Bunu temizlemek ve ardından tekrar takmak için:

sudo apt-get purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5

PHP'yi etkinleştirmek için şunları çalıştırmanız gerekir:

sudo a2enmod php5

Web sunucusunu şu işlemlerden sonra yeniden başlatın:

sudo /etc/init.d/apache2 restart

Yapılacak diğer şeyler:

  • içindeki çakışan ayarları kontrol edin /etc/apache2.
  • Apache'yi kaynağından inşa ettin mi?
  • sudo apache2ctl configtestSözdizim hataları için yapılandırmanızı kontrol etmek üzere çalıştırın
  • Yüklenen yapılandırmayı ve modülleri kontrol etmek için http: // localhost / server-info dosyasını açın . Bunun için statusmodül yüklenmiş olmalıdır. Uzak bir sunucu çalıştırıyorsanız, kendinizi Allow fromlisteye eklemeniz /etc/apache2/mods-enabled/status.confve daha sonra sunucuyu yeniden başlatmanız gerekir

Parlak. AFK şu anda, ama bu gece bunu test edecek. Teşekkürler.
Jivings

Temizlendi ve yeniden yüklendi, modül mods özellikli olarak yüklenir, ancak yine de aynı sorunu yaşıyorum ... Çakışacak bir şey bulamıyorum ve conf dosyaları için içerme apache.conf'da kesinlikle mevcut. Başka fikrin var mı? Teşekkürler.
Jivings

@Jivings: bazı hata ayıklama fikirleri eklendi
Lekensteyn

Hala anlayamıyorum. Ancak daha meraklı bir şey keşfettim. PHP'nin ayarlanan Sanal Ana Bilgisayarlardan biri için iyi çalıştığı görülüyor, ancak tek yaptığı / var / www'de bir documentRoot tanımlamak. Bu nasıl mümkün olabilir?!
Jivings

1
Yine de tarayıcınızın önbelleğini temizlemeniz ve apache'yi yeniden başlatmanız gerekecektir.
Francesco

3

Başka hiçbir şey işe yaramadı ve Apache çok kafa karıştırıcı olduktan sonra nihayet tüm Apache paketlerini temizledim ve onları yeniden kurdum.

Şimdi neyin yanlış olduğunu bilen, iyi çalışıyor gibi görünüyor ....

DÜZENLE

Apache yapılandırma ayarlarımı tekrar kurarken neyin yanlış olduğunu öğrendim. [Bu blog girişi] [1] bunu açıklıyor.

Userdir modülü aktif olarak kullanılmamasına rağmen, site dosyalarının geri kalanı ~ / public_html klasörümde yer aldığını ve orada her şey için php'nin devre dışı bırakıldığını ortaya koyuyor.

Sanırım bu Karmic ayarlarımda mevcut olmayan php modülüne yeni bir ek olmuş olmalı.


1
Bunun bir yapılandırma sorunuyla ilgili olması gerekir. Yükseltmelerde, hiçbir dosya /etckopyalanmaz afaik (en azından birisinin /etc/init.d/apache2yeniden yükleme sırasında oluşturulmaması, yalnızca tasfiye + kurulumda bir sorunu vardı )
Lekensteyn

O zaman benim sistem yükseltme önce çalıştı garip ...
Jivings

muhtemelen bir özellik değişikliği. Her yükseltmenin eski yapılandırma ayarlarına uymasını bekleyemezsiniz. Bazı değişiklikler çoğunluk için anlamlıdır, ancak bazıları için anlamlı değildir.
Lekensteyn

Aslında. Bana yine de altına almak yardımcı olduğunuz için teşekkür ederiz, çok takdir :)
Jivings

1

içinde php5.confdosya /etc/apache2/mods-enabledphp bir kullanıcı dizini içinde yürütülmesini engellemek alt birkaç satır vardır, bu nedenle yapılandırmanıza bağlı olarak, bu da sizin sorun olabilir. Sadece bu satırları yorumlayabilir ve apache2 yeniden yükleyebilirsiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.