初めてのシステムと日記

システムも日記も初めてです。

研修(PHPインストール)

条件。
 ・php-5.2.11をインストール
  →php-5.2.9でした。
 ・マルチバイト文字列を使用可能に。
 ・プログラム文字コードはUTF8、ブラウザ出力はSJIS
 ・PEARを使用可能にする。

PHP

Webページ作成のためのプログラミング言語
動的にHTMLデータを生成、動的なWebページを実現。
ブラウザで入力した情報を使ってユーザー登録、計算など
色々出来、HTMLソース内に記述出来る。

1.phpインストール準備

インターネットからファイルをダウンロードして解凍。

ダウンロード先は/usr/local/src/

[sato@sato ~]$ su
パスワード:
[root@sato src]# wget http://jp.php.net/get/php-5.2.9.tar.gz/from/this/mirror
[root@sato src]# tar xzf php-5.2.9.tar.gz
[root@sato src]# cd php-5.2.9

2.phpインストール

コンパイル→インストールの流れ。

コンパイル時にマルチバイト文字を有効にする。

[root@sato php-5.2.9]#  ./configure --disable-debug \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-iconv --enable-mbstring --enable-zend-multibyte \
・
・
・
+--------------------------------------------------------------------+
|                        *** WARNING ***                             |
|                                                                    |
| You will be compiling the CGI version of PHP without any           |
| redirection checking.  By putting this cgi binary somewhere in     |
| your web space, users may be able to circumvent existing .htaccess |
| security by loading files directly through the parser.  See        |
| http://www.php.net/manual/security.php for more details.           |
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

[root@sato php-5.2.9]# make
[root@sato php-5.2.9]# make install

make にかなりの時間がかかった


--with-apxs2=/usr/local/apache2/bin/apxs:

    apxsコマンドのパスを指定

--with-iconv --enable-mbstring --enable-zend-multibyte:

    マルチバイト文字列に対応


初めてOSにThank youって言われた。


※libphp5.soについて

   ./configureで何もオプションを付けずにインストールすると

   /usr/local/apache2/modules/libphp5.so

   これがインストールされず、ブラウザでphpが開かずダウンロードされる現象が起きる。

   必ず設定すること。


3.phpの設定

文字コードなどを設定するために設定ファイルをいじる。

設定ファイル php.ini は php.ini-dist をコピーしてからいじる。

[root@sato php-5.2.9]# cp /usr/src/php-5.2.9/php.ini-dist /usr/local/lib/php.ini
[root@sato php-5.2.9]# vi /usr/local/lib/php.ini

編集内容

 * output_buffering = On : 出力バッファリングを有効
 * output_handler = mb_output_:handler : 出力の変換を有効にするためにmb_output_handlerを指定
 * default_charset = Shift_JIS : デフォルトの文字コード指定
 * extension = php_mbstringdll : マルチバイト文字列を有効
 * mbstring.language = Japanese : mbstringで使用される言語のデフォルト値
 * mbstring.internal_encoding = UTF8 : 内部文字エンコーディング(プログラム側)のデフォルト値
 * mbstring.http_input = auto : HTTP入力文字エンコーディングのデフォルト値
 * mbstring.http_output = SJIS : HTTP出力文字エンコーディングのデフォルト値
 * mbstring.encoding_translation = On : HTTP入力文字エンコーディング検出および内部文字エンコーディングへの変

 * mbstring.detect_order = auto : 文字コード検出のデフォルト値
 * mbstring.substitute_character = none; : 無効な文字を代替する文字


次にapachehttpd.confに設定を書き加える。

.phpPHPスクリプトであると認識させるため。

[root@sato php-5.2.9]# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t libphp5.so
[root@sato php-5.2.9]# vi /usr/local/apache2/conf/httpd.conf

編集内容

 Dynamic Shared Object (DSO) Supportのところ
  LoadModule php5_module modules/libphp5.so←libphp5.soの場所指定


  <IfModule mod_dir.c>のあたり
   DirectoryIndex index.html index.php←index.phpを追加
  


  AddType application/x-httpd-php .php←追記
  AddType application/x-httpd-php-source .phps←追記


これで設定終了。apacheを再起動。


php確認用のファイル作成。

# vi /usr/local/apache2/htdocs/phpinfo.php

<?php 
phpinfo();
?>

ブラウザで確認→phpのバージョン確認ページが表記。


あとは日本語を表示するphpファイルを作ってブラウザで見る。

文字コードの変換の確認のため。

文字化けが出たら文字コードの変換がうまくいっていないので。

php.iniのoutput_handlerを確認。

。。。案の定、タイプミス。

修正後、確認したら文字化けはなし。

これでphpのインストールともろもろの設定が完了。


今回はlibphp5.soでだいぶつまづいた。

単純にインストールするだけでなくて、

必要なファイルが何かを事前に調べる必要がある。