【PHP】get_headersで「https」のヘッダーを取得する時のエラーと解決策

PHPのバージョンは5.2.9です。(環境:Windows + Apache)
get_headers関数に「https」を渡したらエラーになりました:

  $ary_headers = get_headers("https://example.com", 0);
  print_r($ary_headers);

でアクセスをしにいくと、下記のエラーが出ました:

Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in XXXXXXXXXXXXXXX

→ 解決策:
実は、php.iniの中のphp_openssl.dllがコメントアウトになっているだけです。
php_openssl.dllを有効にしてApacheを再起動すれば、エラーが消えます。

;extension=php_openssl.dll
→
extension=php_openssl.dll

※phpinfo()で確認できます:

(1)php_openssl.dllが無効になっている場合、
【Registered PHP Streams】php, file, data, http, ftp, compress.zlib, zip
【Registered Stream Socket Transports】tcp, udp

(2)php_openssl.dllが有効になっている場合、
【Registered PHP Streams】php, file, data, http, ftp, compress.zlib, https, ftps, zip
【Registered Stream Socket Transports】tcp, udp, ssl, sslv3, sslv2, tls

みたいな感じです。

Webサーバー構築メモ — Cent OS 5.7

サーバー構築を構築しています。経験があまりないので、メモとして今回の問題点と解決策をまとめます。

【環境】
Cent OS 5.7
Apache 2.2.3
PHP 5.2.10

【問題1】
.htaccessでmod_rewriteを使ってリダイレクトをしようとしても動きませんでした。
エラーログ(/var/log/httpd/error_log)を確認すると、下記のエラーがありました:

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /XXX/XXX/XXX

→ 解決策: /etc/httpd/conf/httpd.confの<Directory>セクションの設定をします。
(1)<Directory>セクションのOptionにFollowSymLinksをつけなければなりません。
そうしないと、上記のエラーが出てきます。
(2)<Directory>セクションのAllowOverrideをNoneに設定してはいけません。
Noneに設定してしまうと、.htaccessでの上書きが出来なくなります。AllかFileInfoに設定します。
↓↓大体は下記の感じです↓↓

<Directory "/XXX/XXX/XXX/">
  Options FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

詳細は下記サイトを参照してください。
Apache HTTP サーバ

【問題2】
複数ドメインのDocumentRootの設定
例えば、httpd.confのDocumentRootは”/var/www/html”だとします。
そうすると、直接ipアドレスでアクセスしてくると、/var/www/htmlがルートになります。
→ ただ、事前に取得しておいたドメインexample.comでアクセスすると、/var/www/htmlではなく、/var/www/htmlの下の「aaa」というディレクトリーを見るように設定したいです。
つまり、「http://www.example.com」 ⇒ 「/var/www/html/aaa」にしたいです。
→ 解決策: /etc/httpd/conf/httpd.confの<VirtualName>セクションの設定をします。
例えば、一番簡単な設定は下記のようです↓↓

NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /var/www/html/aaa
  ServerName www.example.com
</VirtualHost>

もしhttps(SSL)にも対応したい場合には、443番ポートなので、下記のも必要です↓↓

NameVirtualHost *:443
<VirtualHost *:443>
  DocumentRoot /var/www/html/aaa
  ServerName www.example.com:443
</VirtualHost>

他にもいろいろ設定できますので(CustomLogやErrorLogやServerAdminなど)、下記サイトを参照してください。
Apache バーチャルホスト説明書 – Apache HTTP サーバ
※注1:CustomLogを設定する時、ログのフォーマット「LogFormat」の設定も必要です。
例えば:

LogFormat "%h %v %l %u %t \"%r\" %>s %b" commonvhost
NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /var/www/html/aaa
  ServerName www.example.com
  CustomLog /etc/httpd/logs/example.com-access_log commonvhost
</VirtualHost>

LogFormatの詳細は、下記サイトを参照して下さい。
ログファイル – Apache HTTP サーバ

【問題3】
PHPのDOMのインストール
今回の件はDOMが必要ですが、インストールされていません。
↓↓下記のようにyumで簡単にインストールできました↓↓

yum install php-xml