プロジェクトでPHPコードを(Dreamweaverを使用して)実行しようとしていますが、コードが実行されていません。
ソースコードをチェックすると、PHPコードがHTMLタグとして表示されます(ソースコードで確認できます)。 Apacheは正しく動作しています(私はXAMPPを使っています)。PHPページは正しく開かれていますが、PHPコードは実行されていません。
何が起こっているのかについて誰かが提案をしていますか?
注: ファイルの名前はfilename.php
です。
編集: /コード..:
<?
include_once("/code/configs.php");
?>
あなたの設定に何か問題があるように思えます、ここであなたがチェックできるいくつかのことがあります:
PHPがインストールされ、正しく実行されていることを確認してください。これは愚かに聞こえるかもしれませんが、あなたは決して知りません。確認する簡単な方法は、コマンドラインからphp -v
を実行してバージョン情報またはエラーを返すかどうかを確認することです。
PHPモジュールがあなたのApacheのhttpd.confの中に とコメントアウトされていない がリストされていることを確認してください。これはファイルのLoadModule php5_module "c:/php/php5Apache2_2.dll"
のようなものです。 LoadModule php
を検索し、その前にコメント(;
)がないことを確認します。
Apacheのhttpd.confファイルにPHP MIMEタイプが含まれていることを確認してください。これはAddType application/x-httpd-php .php
のようなものです。これは、.php
ファイルをPHPとして実行するようにApacheに指示します。 AddTypeを検索し、PHPのエントリ があることと、コメントアウトされていないこと があることを確認します。
ファイルに.php
拡張子が付いているか、または#3のMIME定義で指定されている拡張子があるかを確認してください。そうしないと、PHPとして実行されません。
PHPファイルで shortタグ を使用していないことを確認してください(<?
)。これらはデフォルトですべてのサーバーで有効になっているわけではありませんです。代わりに<?php
を使用してください(または php.iniで短いタグを有効にする に依存するコードがある場合はshort_open_tag=On
を使用してください)。
ローカルファイルアクセスではなくhttp://localhost/file.php
のようなURLを使用して、Webサーバー経由でファイルにアクセスしていることを確認してくださいfile://localhost/www/file.php
そして最後に PHPマニュアルでさらなる設定のヒントを確認してください 。
php7:
Sudo a2enmod proxy_fcgi setenvif
Sudo a2enconf php7.0-fpm
Sudo service Apache2 restart
私はUbuntu上でApacheを実行していますが、私の問題は/etc/Apache2/mods-available/php5.conf
ファイルにこれが欠けていたことです。
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
私はそれを再び追加し、phpはphpファイルを正しく解析していました。
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>
私はこの問題を引き起こしている別の問題を見つけて、そしてすでにそれを解決しました。誤って自分のスクリプトをUTF-16
エンコーディングで保存しました。 PHP5はデフォルトで16ビットエンコーディングで<?php
タグを認識できないようです。
私のVirtualmin/Webmin管理インターフェースが私のPHP engineを無効にすることが賢明であると判断したので、この回答を投稿しています。みんなと一緒に:
また、この特定のホストまたは仮想ホストに関連するWebサイトの設定ファイルに、PHPをオフにするphp_admin_valueが含まれていないことを確認してください。
php_admin_value engine Off
疑問がある場合は、コメントしてください...
# php_admin_value engine Off
そしてウェブサーバーを再起動してください。
あなたはちょうどあなたの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
も使ってください。
私はそれが愚かに聞こえるべきであることを知っています...しかしそれが起こることはめったにありません。
あなたがからPHPを実行しようとしているかどうかを確認
**http://localhost/info.php**
ではなく
file:///var/www/info.php
ps>あなたはあなたがシェルから書いた場合それに気づくことができる
php info.php
それはコードで答えます(それはphp関数を意味します)..
これは、サーバーで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が実行されていたのでいくつかのウェブを更新しなければなりませんでした。しかたがない。
XAMPPをアンインストールし、WAMPをインストールすることでこれを解決しました。助けてくれてありがとう。
私のubuntu 14.04、Apache 2.4、php 5.5.9のインストールでは、/ var/www/html(デフォルトのドキュメントルート)でsample.phpを試してみましたが、うまくいきました。だから問題は私の仮想サーバーの設定にありました。解決策は、.phpを含むDirectory defに次の行を含めることでした。
php_admin_flag engine on
私はHigh Sierra(OS X 10.13.5)に付属しているphp 7.1でこの問題に直面しました。/etc/Apache2/httpd.conf
を編集して以下の変更を行いました。
この行のコメントを外します
LoadModule php7_module libexec/Apache2/libphp7.so
最後に次を貼り付け
<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>
私は同様の問題を抱えていたが、私の場合は解決策が違っていた。私のPHPコードを保持しているファイルは"somename.html"と呼ばれていました_ "somename.php"に変更
php using用にインストールしたすべてのパッケージを確認してください。
yum list installed | grep remi
すべての関連する php パッケージ、特に php-devel をあなたのマシンにインストールしてください。
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を再起動してください
これは私の.htaccessにありました
DirectoryIndex index.html index.htm
index.htmlにPHPコードが含まれていました。デフォルトでは、PHPはhtm *のような拡張子を持つファイルをPHPコードとして処理しません。
これを上書きするには、.htaccessに次の行を追加します。
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
誤って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ファイルを確認してください。
私の場合(Apache/2.4.34)、
特定のモジュールのコメントを外した後
LoadModule php7_module libexec/Apache2/libphp7.so "
から
"/etc/Apache2/httpd.conf"
私の問題は解決しました。
mcrypt
モジュールを再インストールすることは私のために働きました。
$Sudo apt-get install php5-mcrypt
$Sudo php5enmod mcrypt
Apache 2.4を使用している場合は、httpd.confファイルにAddType application/x-httpd-php .php
を追加してください。
スクリプトに含まれていることを確認してください
<?php
実行されるべきコードの前。 <?
とphp
の間にスペースがあってはいけません。
あなたがこのような設定をしているならば:
<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
わたしにはできる
結果ではなくコードを表示しているという問題は、ローカルホストに行かないことです。どのアドレスが入っているのか再確認してください。ローカルファイルディレクトリまたはローカルホストに行きます。
スクリーンショットから送信されたuそれはローカルホストではなくウルコンピュータに行く予定です。
"file:///"それは "localhost /"であるべきです
/ var/www/html /に置いたファイルは、example.phpの例であればそれは機能していませんが、example.phpに変更すれば機能します。