質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

7566閲覧

特定のディレクトリでPHPを実行させないRemoveTypeが効かない

tesopgmh

総合スコア146

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

1クリップ

投稿2016/04/11 09:51

表題の通りで
特定のディレクトリ「/var/www/html/tmp」に
PHPを設置したとしても実行できないようにしたいのですが

「/var/www/html/tmp/.htaccess」に以下を設定してもPHPは実行されてしまいますし
(文字コード:Shift-JIS、改行コード:LF、mod_rewriteなど別のhtaccess設定は反映されています)
RemoveType .php

apacheの設定ファイル「httpd.conf」に以下のように記述し再起動してもPHPは実行されてしまいます
(httpd.confは一つしか存在せずバーチャルドメインなど他の設定は反映されています、後の行で打ち消されている可能性も考え最終行に移動しましたがダメでした)
<Directory "/var/www/html/tmp">
RemoveType .php
</Directory>

実行のテストをしたPHPファイル「/var/www/html/tmp/test.php」は以下です

<?php echo 'run!'; ?>

一点気になるのはhttpd.conf内に
AddType application/x-httpd-php .php
といったような記述はないのにもかかわらずPHPは問題なく使えています

yumでインストールしたのですが
私はなにか特殊なPHPの起動方法を実行してしまっているのでしょうか?

【OS】
CentOS6.7

【PHPバージョン】
PHP 5.3.3 (cli) (built: Jul 9 2015 17:39:00)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

【Apacheバージョン】
Server version: Apache/2.2.15 (Unix)
Server built: Oct 16 2014 14:48:21

原因お分かりになるかたご教授頂ければと存じます

mishiki👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/11 11:33

設置している .htaccess のアクセス権、所属グループやオーナーはどういう状況でしょうか。
tesopgmh

2016/04/12 02:58

パーミッションは、604,644,777を試しましたがだめ、グループ&オーナーはrootとapacheを試しましたがダメでした
tesopgmh

2016/04/12 03:17

mod_rewriteなど別のhtaccess設定は反映されていますので恐らくhtaccessは有効ですが、RemoveTypeが無視されている模様です。Options All、AllowOverride Allになっております。
guest

回答2

0

ベストアンサー

たぶん、httpd.confの下の方で

ini

1Include conf.d/*.conf 2```ってやって読み込んでます。 3phpの記述は、`conf.d/php.conf`にあります。 4`RemoveType`の後に、`addType`が来ているので効かないのだと思いますよ。 5 6それにしても、`.htaccess`で効かないのはおかしいですね。 7 8###訂正 9`RemoveHandler .php`も要りますね。 10 11###やってみました 12.htaccessに

<FilesMatch .php$>
SetHandler text/plain
</FilesMatch>

投稿2016/04/11 12:59

編集2016/04/12 03:29
shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tesopgmh

2016/04/12 03:03

インクルードはそこでやっているのですね、勉強になります! インクルード後の最終行に移してもやはり実行できてしまいます
tesopgmh

2016/04/12 03:06

conf.d/php.conf のaddtypeの後に移してもダメでした ちなみにaddtypeをコメントアウトすると実行できませんでした(あたりまえですが)
tesopgmh

2016/04/12 03:11

連続投稿すみません conf.d/php.confの追加文が AddHandler php5-script .php AddType text/html .php となっていたので リムーブもそれにならって RemoveHandler php5-script .php RemoveType text/html .php なんて記述も試してみましたがやはりだめでした 頑固なPHPです。。。
tesopgmh

2016/04/12 07:58

おおおおおおお!!! ご提示いただきましたhtaccessに <FilesMatch \.php$> SetHandler text/plain </FilesMatch> で無事実行しない設定にすることができました!! 打ち消しにて無効にするというのは目からウロコです 困っていたので本当に嬉しいです! ありがとうございます!!
guest

0

yum で、php をインストールしたということでしたら

/etc/httpd/conf.d/php.conf で、

AddHandler php5-script .php AddType text/html .php

と設定されていると思います。

RemoveHandler .php RemoveType .php

と 両方の設定してみたらどうなるでしょうか?

http://httpd.apache.org/docs/2.0/ja/mod/mod_mime.html

投稿2016/04/11 12:58

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tesopgmh

2016/04/12 02:56

ありがとうございます! .htaccess、httpd.conf に両方設定してみましたが、やはり実行できてしまいます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問