2011-04-08 11 views
8

Bir apache web sunucusuna sahibim. Bu sunucunun etki alanının example.com olduğunu varsayalım.tarayıcı indir php file from apache web server

example.com adresine eriştiğimde, index.php dosyası tarayıcıda doğru şekilde görüntüleniyor. Bununla birlikte, ör. example.com/~user, daha sonra /home/user/public_html/index.php dosyasının index.php dosyasının görüntülenmesi yerine indirilir.

Bu sorunu nasıl düzeltirim? php.ini'da "expose_php = Off" değiştirdim, ancak hiçbir şey değişmedi.

+2

Ne linux dağıtımı size kullanıyor musunuz Varsayılan olarak, debian/ubuntu, kullanıcıların public dizinlerinde php ayrışmasını devre dışı bırakır. – RageZ

cevap

12

Eğer Debian/Ubuntu üzerinde ise /etc/apache2/mods-available/php5.conf

mayın benziyor bu dosyanın bir göz atın ve PHP kullanıcısı çalışan almak için bazı çizgi yorumlamak zorunda görebilirsiniz dir

<IfModule mod_php5.c> 
    <FilesMatch "\.ph(p3?|tml)$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    <FilesMatch "\.php$"> 
     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> 

unutmayınız değişiklikler etkili olması için apache'yi yeniden başlatmanız gerekir dosyasını düzenledikten sonra, komutu bir debian tabanlı sistemde Apache'yi yeniden şudur: /etc/init.d/apache2 restart

5

Umut bu baş ağrısı başkası kaydeder. Bu sorunun eski olduğunu biliyorum, ama yine de bu problemi ararken ortaya çıkıyor.

Bunun apache2'nin tüm yüklemelerinde çalıştığından emin değilim, ancak ubuntu'da apache2 çalıştırıyorum ve web tarayıcımın doğru dizin dosyasını görüntülemek yerine dosyaları karşıdan yükleme sorunu yaşadım.

sorun Buradaki varsayılan ayarın belge Ben /etc/apache2/httpd.conf

Dolayısıyla, sadece açıkta batmıştı ne baskın oldu /etc/apache2/mods-enabled/dir.conf dosyada yatıyor /etc/apache2/mods-enabled/dir.conf dosyasını kapatın ve listelenen dosyaların sırasını değiştirin. Tamam çalışma, ama diğerleri çiğ php kodu indirilen var gibi bazı php dosyaları -

:) Ben benzer bir deneyim yaşadım

0

.

Benim durumumda, <'un kısa etiket formatını kullanan bozuk dosyalara mı bağlıydı? ve ? >. Bu tavsiye edilmez ve varsayılan php.ini'nin bu desteğin zorla kapatılmış olduğunu görebilirsiniz. Destek kapalıyken, php kodu tarayıcıya HTML gibi gönderilmiş. Eğer (benim durumumda olduğu gibi - kısa etiketlerini kullanarak bir bütün eski kod tabanının) kısa etiketleri önlemek yapamıyorsanız

, o zaman ayarlayabilirsiniz php.ini içinde izin verilmesi için:

short_open_tag = On