【Apache+PHP】現在ファーストサーバーにて公開中のホームページの一部コンテンツにSSLを適用したいと思っています。

(ファーストサーバーはデルタ1ビジネス(アンマネージド専用サーバ)です)
ssl.confに以下のようなバーチャルホストの設定をしたのですが、
SSLは正しく機能しているものの、PHPが動かなくなってしまいました。
(httpsでアクセスできるものの、PHPのスクリプトが原文のまま表示されてしまいます)

<VirtualHost サーバのIP:443>
DocumentRoot "/var/www/vhosts/hoge/httpsdocs"
ServerName www.hoge.jp:443
(中略)
LoadModule php5_module /etc/httpd/modules/libphp5.so
AddType application/x-httpd-php .php
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php
</VirtualHost>

何か原因として考えられることはありますでしょうか。
これだけの情報では分からないという場合、「こんな可能性が考えられる」というヒントでも構いません。
また、可能な限り追加情報を出させていただきます。

どうぞよろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/02/25 09:15:31
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:km1967 No.1

回答回数541ベストアンサー獲得回数40

ポイント35pt

AddType application/x-httpd-php .php

AddType text/html .php

この2つが矛盾している。上の1つだけにすべき


それからPHPは再インストールした?

id:j1987

ご回答、ありがとうございます。

AddType application/x-httpd-php .phpだけにするのは試してみます。

PHPの再インストールですが、yumでphp-opensslをインストールした場合でも

PHP本体の再インストールが必要なのでしょうか?

2010/02/23 23:36:49

その他の回答1件)

id:km1967 No.1

回答回数541ベストアンサー獲得回数40ここでベストアンサー

ポイント35pt

AddType application/x-httpd-php .php

AddType text/html .php

この2つが矛盾している。上の1つだけにすべき


それからPHPは再インストールした?

id:j1987

ご回答、ありがとうございます。

AddType application/x-httpd-php .phpだけにするのは試してみます。

PHPの再インストールですが、yumでphp-opensslをインストールした場合でも

PHP本体の再インストールが必要なのでしょうか?

2010/02/23 23:36:49
id:km1967 No.2

回答回数541ベストアンサー獲得回数40

ポイント35pt

PHPの再インストールですが、yumでphp-opensslをインストールした場合でも

PHP本体の再インストールが必要なのでしょうか?

PHPのconfigで '--with-openssl' を指定していないとしたら

PHPの再インストールが必要。

  • id:j1987
    追記です。

    AddType text/html .phpを消してAddType application/x-httpd-php .phpだけにしてみましたが、
    状況は変わりません・・・。(PHPが動作しないのはSSL適用ページのみです)

    なお、PHP・openssl・php-opensslともすべてyumでインストールしており、
    PHPinfoにはopenssl enabledと表示されています。

    現状ですが、https://サイトのURL/でアクセスすると、
    SSLのドキュメントルートにあるindex.phpのダウンロードダイアログが表示されます。

    また、https://サイトのURL/index.phpでアクセスすると、

    simpleDisplay("admin/"); ?>

    とだけテキスト表示されます。

    ※index.phpの中身は以下のとおりです。

    <?php
    checkAcl(null, 'jyutaku');

    require_once full_path.'/require.php';

    $s = new MySmarty();

    $s -> simpleDisplay("admin/");

    ?>

    引き続き、よろしくお願いいたします。
  • id:bayan
    自信がないのでコメントで。。。

    ファーストサーバーのデルタ1ビジネスで、
    yum ということは CentOS 5.x ですかね。

    php はどうやってインストールされましたか?

    最初から入っていた or yum でインストールであれば
    /etc/httpd/conf/conf.d/php.conf の中に
    必要な設定が書かれているのではないかと思います。

    試しに ssl.conf に書いてあるPHPの設定をコメントアウトとして
    Apache を停止・再起動してみるとどうでしょうか?

    # LoadModule php5_module /etc/httpd/modules/libphp5.so
    # AddType application/x-httpd-php .php
    # AddHandler php5-script .php
    # AddType text/html .php

    それから、Apache のSSLを有効にして、PHPのスクリプトを
    公開する際、php-openssl は必要ないと思います。

    PHPでSSLのサーバーと通信するような処理を書く場合に
    必要になるのではないかと思います。

    file_get_contents('https:/example.com/'); 等
  • id:j1987
    km1967様、bayan様、どうもありがとうございました。
    おかげ様で解決いたしました。

    VMで類似環境を立ち上げたところ、問題なく動作したので、
    そちらのssl.confを参考に修正したら無事稼動いたしました!
    具体的には、SSLを適用するディレクトリの<Directory> ディレクティブに
    以下の指定を追加しました。

    <IfModule sapi_apache2.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
    php_admin_value open_basedir "/var/www/~"
    </IfModule>

    <IfModule mod_php5.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
    php_admin_value open_basedir "/var/www~"
    </IfModule>

    あるべき姿としてこれで正しいのか、まだまだ初心者ゆえ判断が
    つきかねますが、ひとまず解決とすることにしました。

    回答、コメントをいただき、大変感謝しております。

    >km1967様

    PHPはyumでインストールしました。
    PHPinfoを見ると、'--with-openssl' のオプションが付いていましたので、
    問題なかったようです。
    yumでインストールした場合は、再インストールは不要のようですね。

    >bayan様

    確かにhttpdのログを見ると、php5_moduleは二重にロードされてスキップされていました。
    ご指摘、ありがとうございます。
    php-opensslの要否は未検証ですが、ひとまず動作したので
    当面はこの状態でいこうと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません