PHP kodu yürütülmüyor, bunun yerine sayfada kod gösteriliyor

Feb 26 2011

Bir projede (Dreamweaver kullanarak) bazı PHP kodunu çalıştırmaya çalışıyorum ancak kod çalıştırılmıyor.

Kaynak kodunu kontrol ettiğimde, PHP kodu HTML etiketleri olarak görünüyor (bunu kaynak kodda görebiliyorum). Apache düzgün çalışıyor (XAMPP ile çalışıyorum), PHP sayfaları düzgün açılıyor, ancak PHP kodu çalıştırılmıyor.

Birisinin neler olduğuna dair bir önerisi var mı?

Not: Dosya zaten şu şekilde adlandırılmıştır:filename.php

Düzenleme: Kod ..:

<?
include_once("/code/configs.php");
?>

Yanıtlar

437 shmeeps Feb 26 2011 at 02:15

Yapılandırmanızla ilgili bir sorun var gibi görünüyor, işte kontrol edebileceğiniz birkaç şey:

  1. PHP'nin doğru kurulduğundan ve çalıştığından emin olun. Bu aptalca gelebilir, ama asla bilemezsiniz. Kontrol etmenin kolay bir yolu php -v, bir komut satırından çalıştırmak ve sürüm bilgisi veya herhangi bir hata döndürüp döndürmediğini görmektir.

  2. PHP modülünün Apache'nizin httpd.conf dosyasında listelendiğinden ve yorumlanmadığından emin olun. Bu LoadModule php5_module "c:/php/php5apache2_2.dll", dosyadaki gibi olmalıdır . Ara LoadModule phpve emin hiçbir yorum (bulunduğundan emin olun ;onun önünde).

  3. Apache'nin httpd.conf dosyasında PHP MIME türünün bulunduğundan emin olun. Bu gibi bir şey olmalı AddType application/x-httpd-php .php. Bu, Apache'ye .phpdosyaları PHP olarak çalıştırmasını söyler . Emin orada PHP için bir giriştir, yapmak sonra AddType ara ve ve uncommented olduğunu .

  4. Dosyanızın üzerinde .phpuzantının bulunduğundan veya 3. maddede MIME tanımında belirtilen uzantıya sahip olduğundan emin olun , aksi takdirde PHP olarak çalıştırılmayacaktır.

  5. PHP dosyasında ( ) kısa etiketler kullanmadığınızdan emin olun <?, bunlar varsayılan olarak tüm sunucularda etkinleştirilmez ve kullanımları önerilmez. Kullanım <?phpyerine (veya php.ini kısa etiketleri etkinleştirmek ile short_open_tag=Ononlara bağlı kodu varsa).

  6. Dosyanıza, http://localhost/file.phpyerel dosya erişimi gibi bir URL kullanarak web sunucunuz üzerinden eriştiğinizden emin olun.file://localhost/www/file.php

Ve son olarak , diğer kurulum ipuçları için PHP kılavuzunu kontrol edin .

63 sj59 Feb 06 2017 at 22:06

php7:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
34 MattMcDonald Mar 19 2013 at 20:34

Apache'yi Ubuntu'da çalıştırıyorum ve benim sorunum /etc/apache2/mods-available/php5.confdosyanın eksik olmasıydı:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

Tekrar ekledim ve php, php dosyalarını doğru bir şekilde ayrıştırıyordu.

33 EdC Aug 15 2016 at 16:32

php 7 kullanıcıları için not, bunu httpd.conf dosyanıza ekleyin:

# PHP 7 specific configuration
<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>
23 Arrvi Apr 05 2013 at 01:17

Bu soruna neden olan başka bir sorun buldum ve zaten çözdüm. Komut dosyamı yanlışlıkla UTF-16kodlamaya kaydettim . Öyle görünüyor ki PHP5 <?phpvarsayılan olarak 16 bit kodlamada etiketi tanıyamıyor .

18 HenryvanMegen Oct 16 2013 at 00:58

Bu yanıtı gönderiyorum çünkü Virtualmin / Webmin yönetici arayüzüm PHP motorumu devre dışı bırakmanın iyi bir fikir olduğuna karar verdi .. çözümü bulmam biraz zaman aldı, bu yüzden sizlerle paylaşmayı düşündüm:

Ayrıca, bu belirli ana bilgisayar veya sanal ana bilgisayar ile ilgili web sitesi yapılandırma dosyalarınızın hiçbirinin içinde PHP'yi kapatan php_admin_value içermediğinden emin olun, örneğin:

php_admin_value engine Off

Şüphe duyduğunuzda yorum yapın ...

# php_admin_value engine Off

Ve web sunucunuzu yeniden başlatın.

17 HasanBaig Dec 06 2016 at 20:36

Sadece php dosyanızı tarayıcıya açıyorsunuz. Localhost url kullanarak açmalısınız. Bir dosyayı doğrudan dizininizden açarsanız, hiçbir durumda php kodunu çalıştırmayacaktır.

kullanım: http://locahost/index.phpveyahttp:127.0.0.1/index.php

Php kısa kodunu etkinleştirin. Sizin durumunuzda, <?hangi php için kısa kod kullanıyorsunuz <?php. Varsayılan olarak php kısa kodları devre dışı bırakılır.

Ayrıca şunu kullanın: sudo apt-get install php5 libapache2-mod-php5 php5-mcryptubuntu kullanıcısıysanız.

8 user3257072 Jan 31 2014 at 18:15

Kulağa aptalca geleceğini biliyorum ... ama nadiren oluyor.

Php'yi çalıştırmaya çalışıp çalışmadığınızı kontrol edin

**http://localhost/info.php**

ve şuradan değil

file:///var/www/info.php

ps> kabuktan yazarsanız fark edebilirsiniz.

php info.php 

kodla cevap verir (php fonksiyonları anlamına gelir) ..

8 ndasusers Jun 12 2016 at 18:04

Bu, sunucunun işlemden ziyade html dosyalarını indirmesiyle birlikte yine başıma geldi. Bilgisayarda bir süre web sunucusu apache kullanmadım ve bu arada Ubuntu, orijinal olarak yüklenmiş LTS'den iki sürüm daha gibi güncellendi. Şimdi öyle

$ cat /etc/issue
Ubuntu 16.04 LTS

Bu yüzden php şöyle çalıştı:

$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0 $ sudo service apache2 restart 

Web sunucusu şimdi php'yi ayrıştırıyordu. Belki şimdi php7.0 php5'i çalıştırmadan önceki haliyle çalıştığı için bazı web'leri güncellemeliyiz. Oh iyi.

5 Gui Feb 26 2011 at 02:38

Bunu XAMPP'yi kaldırarak ve WAMP'ı yükleyerek çözdüm. Yardım için teşekkürler.

5 AamirR Jun 08 2018 at 23:49

Bu sorunla High Sierra (OS X 10.13.5) ile birlikte gelen php 7.1'de karşılaştım, /etc/apache2/httpd.confaşağıdaki değişikliklerle düzenleme yardımcı oldu:

  1. Bu satırın açıklamasını kaldır

    LoadModule php7_module libexec/apache2/libphp7.so
    
  2. Sonuna aşağıdakileri yapıştırın

    <IfModule php7_module>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        <IfModule dir_module>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    
4 RogelioTriviño Mar 29 2016 at 02:16

ubuntu 14.04, apache 2.4, php 5.5.9 kurulumumda / var / www / html (varsayılan belge kökü) üzerinde bir sample.php ile denedim ve sorunsuz çalıştı. Yani sorun Sanal Sunucular yapılandırmamdaydı. Çözüm, .php içeren Dizin tanımına şu satırı eklemekti:

    php_admin_flag engine on
4 Barmar Jun 01 2018 at 11:42

Komut dosyasının içerdiğinden emin olun

<?php

çalıştırılması gereken koddan önce. Bunun arasında <?ve phparasında boşluk olmamalıdır .

3 Netrus Mar 21 2016 at 00:59

Benzer bir problemim vardı ama benim durumumda çözüm farklıydı. bekletilen php kodu denilen bu benim dosya "somename.html" olarak değiştirdim "somename.php" çalıştı cezası

3 EricLibay Jun 16 2017 at 10:03

Php 7 çalıştıran LAMP'ın yeni kurulumu için /etc/httpd/conf/httpd.conf dosyasını düzenleyin Not: herhangi bir şeyi değiştirmeden önce yedeklediğinizden emin olun.

Bunu dosyanın en altına yapıştırın:

<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Ardından, LoadModule öğesini arayın ve aşağıdaki satırı yapıştırın:

LoadModule php7_module modules/libphp7.so

Bu satır sadece httpd'den php 7 modülünü yüklemesini isteyecektir

Ardından httpd'yi yeniden başlatın

3 ChaitanyaShivade Dec 05 2013 at 06:34

Aşağıdaki komutları kullanarak php için kurduğunuz tüm paketleri kontrol edin :

yum list installed | grep remi

Tüm ilgili php paketlerini, özellikle php-devel'i makinenize kurun.

2 Jahmic Dec 04 2016 at 20:40

Bu .htaccess'imdeydi

DirectoryIndex index.html index.htm

index.html, PHP kodunu içeriyordu. Varsayılan olarak, PHP, PHP kodu olarak htm * gibi uzantılara sahip dosyaları işlemez.

.Htaccess'e aşağıdakileri ekleyerek bunu geçersiz kılabilirsiniz:

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>
2 Ashahmali May 04 2018 at 20:56

AddType application/x-httpd-php .phpApache 2.4 kullanıyorsanız httpd.conf dosyanıza ekleyin

2 AmirRezaM75 Sep 29 2019 at 16:29

Aynı sayfada olmamız durumunda aşağıdakileri yapın

sudo apt-get install php -y sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y

Apache2'de PHP 7.2 FPM'yi etkinleştirmek için şunları yapın:

a2enmod proxy_fcgi setenvif

a2enconf php7.2-fpm

güncelleme 2: Apache, oluşturma yerine .php dosyasını indirir

Ondan sonra yukarıdaki sorunla karşılaştım. Gibi benzer sorular vardır bu .

Nedenini bilmiyorum ama sadece /var/www/html/kök klasördeki .php dosyalarım için oldu . alt dizinler için her şey yolundaydı. (örneğin wordpress ve phpmyadmin iyi çalıştı)

İşte benim çözümüm. Php modülünü etkinleştirmeye karar verdim. bu yüzden şu komutu çalıştırdım:

a2enmod php7.2

ama bu hataları aldım:

Php7.2 için mpm_prefork bağımlılığı göz önüne alındığında: mpm_prefork için mpm_event çakışması düşünülüyor: HATA: mpm_event modülü etkinleştirildi - çakışmalar nedeniyle devam edemiyor. Önce devre dışı bırakılması gerekiyor! Mpm_prefork için mpm_worker çakışması düşünülüyor: HATA: php7.2 için mpm_prefork bağımlılığı etkinleştirilemedi, iptal ediliyor

bu yüzden aşağıdaki komutları çalıştırarak mpm'yi devre dışı bırakmaya karar verdim:

sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event

sonra apache'yi yeniden başlatın:

systemctl restart apache2

sonra php7.2'yi etkinleştirin (yüklü sürümüm):

sudo a2enmod php7.2

ve şu anda her şey yolunda gidiyor.

2 mevers303 Mar 30 2020 at 11:11

Bu sorunun bir başka olası nedeni, komut dosyasını UserDirmodülden bir "kullanıcı dizininde" çalıştırmaya çalışıyor olmanız olabilir . Kullanıcı dizinlerinde PHP betiklerinin çalıştırılması varsayılan olarak devre dışıdır. Komut dosyası public_htmlana klasörünüzdeki dizindeyse ve ona erişmeye çalışıyorsanız, bu sorunla karşılaşırsınız http://localhost/~your_username.

Bunu düzeltmek için açın /etc/apache2/mods-enabled/php7.2.conf. Alt kısımda yazan etiket bloğuna yorum yapmalı veya silmelisiniz

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>
1 Nav May 27 2016 at 08:02

Bence sonuç yerine kodu göstermesindeki sorun yerel ana bilgisayara gitmemesi. hangi adrese gireceğinizi yeniden kontrol edin. Yerel bir dosya dizinine mi yoksa yerel ana bilgisayara mı gidiyorsunuz?

gönderdiğiniz ekran görüntüsünden localhost'a değil, bilgisayarınıza gidecek.

"file: ///" "localhost /" olmalıdır

1 b.g Oct 17 2016 at 12:46

mcryptModülü yeniden kurmak benim için çalıştı.

$sudo apt-get install php5-mcrypt $sudo php5enmod mcrypt
1 albertski Dec 03 2016 at 06:01

Dosyalarımın dizinini yanlışlıkla kök dizininde kaldırmaya başladığım bir durumla karşılaştım. Tüm php'yi engelleyecek dosyalar klasörümden .htaccess dosyasını ekledi

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

Alt satırda kökteki .htaccess dosyasını kontrol edin.

1 user3890355 Feb 27 2018 at 21:21

Böyle bir konfigürasyona sahipseniz:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/var/www/example.com"

    <FilesMatch "\.php$">
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
</VirtualHost>

Httpd.conf dosyanızın sonraki satırlarının açıklamasını kaldırın

LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so

Benim için çalışıyor

1 bobblebubble Sep 06 2018 at 21:36

Windows 10'da PHP 5'i Apache 2.4 ile çalıştırmak için saatler harcadım . Sonunda benim için httpd.conf'ta bir yazım hatasıydı LoadModule. Aracılığıyla yazma ve tam modül yoluna dikkat çekti son cevap bu apachelounge dizisindeki denny2018 . Teşekkür ederim!

İki geceden sonra keşfettim ... Rehberim yazıldı c:(küçük harf)

Apache 2.4 için vardı LoadModule php5_module "c:/php/php5apache2.dll"ama doğru olan :

LoadModule php5_module "C:/php/php5apache2_4.dll"

Bu yüzden öncekini de kaçırdım _4( apache 2.4 için ). Benim için çalışan tam pasaj:

# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Az önce PHP 7'yi denedim . Orada LoadModuleçizgi httpd.conf Apache 2.4 için okur

LoadModule php7_module "C:/php/php7apache2_4.dll"

Şu anda php el kitabı, c:/php/php5apache2.dll hangisinin ayarlanması gerektiğini göstermektedir.

1 sh6210 Oct 03 2018 at 11:49

benim durumumda (Apache / 2.4.34),

belirli modülün yorumunu kaldırdıktan sonra

"LoadModule php7_module libexec / apache2 / libphp7.so"

itibaren

"/etc/apache2/httpd.conf"

sorunum gitmişti.

1 Wilfredo Aug 21 2020 at 09:55

Apache sunucusunu yeniden başlatmayı deneyin. Bu yaptığım hataydı - php'yi kurduktan sonra sunucuyu yeniden başlatmayı unutmak!

service httpd restart
1 Pekov Oct 09 2020 at 03:19

Benim durumumda php modülü yüklenmedi. Bunu dene:

  1. Yüklü olan modüller kontrol edin: apache2ctl -M. Gibi modül arayınphp7_module (shared)
  2. Listede php modülü yoksa, php sürümünüze karşılık gelen modülü yüklemeyi deneyin. Benim durumumda php paketi libapache2-mod-php7.3. Ben de yaptım: a2enmod php7.3ve sorun çözüldü.