web-dev-qa-db-ja.com

PHP コードは実行されていません、代わりにコードがページに表示されます

プロジェクトでPHPコードを(Dreamweaverを使用して)実行しようとしていますが、コードが実行されていません。

ソースコードをチェックすると、PHPコードがHTMLタグとして表示されます(ソースコードで確認できます)。 Apacheは正しく動作しています(私はXAMPPを使っています)。PHPページは正しく開かれていますが、PHPコードは実行されていません。

何が起こっているのかについて誰かが提案をしていますか?

注: ファイルの名前はfilename.phpです。

編集: /コード..:

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

The print

281
Gui

あなたの設定に何か問題があるように思えます、ここであなたがチェックできるいくつかのことがあります:

  1. PHPがインストールされ、正しく実行されていることを確認してください。これは愚かに聞こえるかもしれませんが、あなたは決して知りません。確認する簡単な方法は、コマンドラインからphp -vを実行してバージョン情報またはエラーを返すかどうかを確認することです。

  2. PHPモジュールがあなたのApacheのhttpd.confの中に とコメントアウトされていない がリストされていることを確認してください。これはファイルのLoadModule php5_module "c:/php/php5Apache2_2.dll"のようなものです。 LoadModule phpを検索し、その前にコメント(;)がないことを確認します。

  3. Apacheのhttpd.confファイルにPHP MIMEタイプが含まれていることを確認してください。これはAddType application/x-httpd-php .phpのようなものです。これは、.phpファイルをPHPとして実行するようにApacheに指示します。 AddTypeを検索し、PHPのエントリ があることと、コメントアウトされていないこと があることを確認します。

  4. ファイルに.php拡張子が付いているか、または#3のMIME定義で指定されている拡張子があるかを確認してください。そうしないと、PHPとして実行されません。

  5. PHPファイルで shortタグ を使用していないことを確認してください(<?)。これらはデフォルトですべてのサーバーで有効になっているわけではありませんです。代わりに<?phpを使用してください(または php.iniで短いタグを有効にする に依存するコードがある場合はshort_open_tag=Onを使用してください)。

  6. ローカルファイルアクセスではなくhttp://localhost/file.phpのようなURLを使用して、Webサーバー経由でファイルにアクセスしていることを確認してくださいfile://localhost/www/file.php

そして最後に PHPマニュアルでさらなる設定のヒントを確認してください

372
shmeeps

php7:

Sudo a2enmod proxy_fcgi setenvif
Sudo a2enconf php7.0-fpm
Sudo service Apache2 restart
39
sj59

私はUbuntu上でApacheを実行していますが、私の問題は/etc/Apache2/mods-available/php5.confファイルにこれが欠けていたことです。

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

私はそれを再び追加し、phpはphpファイルを正しく解析していました。

31
Matt McDonald

pHP 7ユーザーの方は、httpd.confファイルにこれを追加してください。

# 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>
24
EdC

私はこの問題を引き起こしている別の問題を見つけて、そしてすでにそれを解決しました。誤って自分のスクリプトをUTF-16エンコーディングで保存しました。 PHP5はデフォルトで16ビットエンコーディングで<?phpタグを認識できないようです。

21
Arrvi

私のVirtualmin/Webmin管理インターフェースが私のPHP engineを無効にすることが賢明であると判断したので、この回答を投稿しています。みんなと一緒に:

また、この特定のホストまたは仮想ホストに関連するWebサイトの設定ファイルに、PHPをオフにするphp_admin_valueが含まれていないことを確認してください。

php_admin_value engine Off

疑問がある場合は、コメントしてください...

# php_admin_value engine Off

そしてウェブサーバーを再起動してください。

18
Henry van Megen

あなたはちょうどあなたのphpファイルをブラウザに開いています。 localhostのURLを使って開く必要があります。あなたがあなたのディレクトリから直接ファイルを開いても、どんな場合でもphpコードを実行しないでしょう。

use:http://locahost/index.phpまたはhttp:127.0.0.1/index.php

PHPショートコードを有効にします。あなたの場合、あなたは<?のためのphpの短いコードである<?phpを使っています。デフォルトではphpのショートコードは無効になっています。

あなたがubuntuユーザーであれば、Sudo apt-get install php5 libapache2-mod-php5 php5-mcryptも使ってください。

15
Hasan Baig

私はそれが愚かに聞こえるべきであることを知っています...しかしそれが起こることはめったにありません。

あなたがからPHPを実行しようとしているかどうかを確認

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

ではなく

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

ps>あなたはあなたがシェルから書いた場合それに気づくことができる

php info.php 

それはコードで答えます(それはphp関数を意味します)..

8
user3257072

これは、サーバーでHTMLファイルをダウンロードするのではなく、処理するのではなく、もう一度起こりました。私はコンピュータ上でしばらくの間Apache Apacheを使用していませんでしたし、その間にUbuntuは最初にインストールされたLTSからさらに2つのバージョンのように更新しました。今です

$ cat /etc/issue
Ubuntu 16.04 LTS

それでphpは以下のように動作しました:

$ Sudo apt-get install lamp-server^
$ Sudo a2enmod php7.0
$ Sudo service Apache2 restart 

ウェブサーバは現在phpを解析していました。たぶん今php5.0を実行する前にそうであったように今php7.0が実行されていたのでいくつかのウェブを更新しなければなりませんでした。しかたがない。

7
ndasusers

XAMPPをアンインストールし、WAMPをインストールすることでこれを解決しました。助けてくれてありがとう。

5
Gui

私のubuntu 14.04、Apache 2.4、php 5.5.9のインストールでは、/ var/www/html(デフォルトのドキュメントルート)でsample.phpを試してみましたが、うまくいきました。だから問題は私の仮想サーバーの設定にありました。解決策は、.phpを含むDirectory defに次の行を含めることでした。

    php_admin_flag engine on
4
Rogelio

私はHigh Sierra(OS X 10.13.5)に付属しているphp 7.1でこの問題に直面しました。/etc/Apache2/httpd.confを編集して以下の変更を行いました。

  1. この行のコメントを外します

    LoadModule php7_module libexec/Apache2/libphp7.so
    
  2. 最後に次を貼り付け

    <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
AamirR

私は同様の問題を抱えていたが、私の場合は解決策が違っていた。私のPHPコードを保持しているファイルは"somename.html"と呼ばれていました_ "somename.php"に変更

4
Netrus

php using用にインストールしたすべてのパッケージを確認してください。

yum list installed | grep remi

すべての関連する php パッケージ、特に php-devel をあなたのマシンにインストールしてください。

3

Php 7を実行しているLAMPを新しくセットアップするには、ファイル/etc/httpd/conf/httpd.confを編集します。注:何かを変更する前に、必ずそれをバックアップしてください。

これをファイルの一番下に貼り付けます。

<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>

次に、LoadModuleを検索して次の行を貼り付けます。

LoadModule php7_module modules/libphp7.so

この行は単にhttpdにphp 7モジュールをロードするように要求します。

それからhttpdを再起動してください

2
Eric Libay

これは私の.htaccessにありました

DirectoryIndex index.html index.htm

index.htmlにPHPコードが含まれていました。デフォルトでは、PHPはhtm *のような拡張子を持つファイルをPHPコードとして処理しません。

これを上書きするには、.htaccessに次の行を追加します。

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>
2
Jahmic

誤ってrootのファイルディレクトリを解凍し始めたことがあります。それはすべてのphpをブロックするだろう私のファイルフォルダから.htaccessファイルを追加しました

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

一番下の行で、ルートの.htaccessファイルを確認してください。

1
albertski

私の場合(Apache/2.4.34)、

特定のモジュールのコメントを外した後

LoadModule php7_module libexec/Apache2/libphp7.so "

から

"/etc/Apache2/httpd.conf"

私の問題は解決しました。

1
sh6210

mcryptモジュールを再インストールすることは私のために働きました。

$Sudo apt-get install php5-mcrypt
$Sudo php5enmod mcrypt
1
b.g

Apache 2.4を使用している場合は、httpd.confファイルにAddType application/x-httpd-php .phpを追加してください。

1
Ashahmali

スクリプトに含まれていることを確認してください

<?php

実行されるべきコードの前。 <?phpの間にスペースがあってはいけません。

1
Barmar

あなたがこのような設定をしているならば:

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

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

Httpd.confの次の行のコメントを外します

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

わたしにはできる

1
user3890355

結果ではなくコードを表示しているという問題は、ローカルホストに行かないことです。どのアドレスが入っているのか再確認してください。ローカルファイルディレクトリまたはローカルホストに行きます。

スクリーンショットから送信されたuそれはローカルホストではなくウルコンピュータに行く予定です。

"file:///"それは "localhost /"であるべきです

1
Nav

/ var/www/html /に置いたファイルは、example.phpの例であればそれは機能していませんが、example.phpに変更すれば機能します。

0
yasin lachini