• Apache2.2+PHP5.2 完全インストール – part2 – PHPインストール

    今回は PHP5.2 系列のインストールです。

    対象OS : CentOS, RH*, Fedora, FreeBSD, NetBSD, OpenBSD

    ※)途中 yum コマンドを使います。*BSD系OSの場合は yumの変わりにPortsツリーを使いインストールしてください。

    Apacheのインストール は 前回で済んでいるものとします。

    ■準備

    # cd /usr/local/src/web
    # tar zxvf php-5.2.8.tar.gz
    ...
    ...
    ...
    # cd php-5.2.8
    

    ■インストール

    # ./configure \
    --prefix=/usr/local/php5 \
    --with-apxs2=/usr/local/apache2/bin/apxs \
    --without-sqlite \
    --enable-mbstring \
    --enable-zend-multibyte \
    --enable-ftp \
    --enable-sockets \
    --with-mysql=/usr/local/mysql5 \
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-freetype-dir \
    --with-zlib \
    --with-openssl
    

    ===============configureオプションの解説===============
    –prefix=/usr/local/php5 : インストール場所を指定
    –with-apxs2=/usr/local/apache2/bin/apxs :インストール済みのApacheと連動させる。
    (DSOもジュールを作成する)
    –without-sqlite :SQLiteを使わない
    –enable-mbstring :マルチバイト関数をインストールする
    –enable-zend-multibyte :Zendのマルチバイトエンジンを有効にする
    –enable-ftp :FTPプロトコルをサポートする
    –enable-sockets :socketをサポートする(HTTPとか)
    –with-mysql=/usr/local/mysql5 :MySQLをサポートする
    –with-gd :DBエンジンをサポートする
    –with-jpeg-dir :Jpegライブラリをサポートする
    –with-png-dir :pngライブラリをサポートする
    –with-freetype-dir :FreeTypeをサポートする
    –with-zlib :zLibをサポートする
    –with-openssl :SSLをサポートする (HTTPSとか)
    ==============================

    ■エラー:その1

    ...
    checkig libxml2 install dir... no
    checking for xml2-config path...
    configure: error: xml2-config not found. Please check your libxml2 installation.
    #
    

    PHP5のインストールには xml2ライブラリが必要です。 libxml2のライブラリとソースファイルをインストールします。

    # yum install -y libxml2 libxml2-devel
    

    ■エラー:その2

    ...
    checking for fabsf... yes
    checking for floorf... yes
    configure: error: libjpeg.(a|so) not found.
    #
    

    libjpegライブラリが見つかりません。インストールします。

    # yum install -y libjpeg libjpeg-devel
    

    ■エラー:その3

    ...
    checking for floorf... yes
    checking for jpeg_read_header in -ljpeg... yes
    configure: error: libpng.(a|so) not found.
    #
    

    libpngライブラリが見つかりません。インストールします。

    # yum install -y libpng libpng-devel
    

    ■エラー:その4

    ...
    checking for jpeg_read_header in -ljpeg... yes
    checking for png_write_image in -lpng... yes
    If configure fails try --with-xpm-dir=<DIR>
    configure: error: freetype.h not found.
    #
    

    freetype.h が見つかりません、FreeTypeのライブラリ+ヘッダファイルをインストールします。

    # yum install -y freetype freetype-devel
    
    ...
    checking for MySQL support... yes
    checking for specified location of the MySQL UNIX socket... no
    checking for MySQL UNIX socket location... no
    configure: error: Cannot find MySQL header files under /usr/local/mysql5.
    Note that the MySQL client library is not bundled anymore!
    #
    

    MySQL clientのヘッダファイルが見つかりません。–with-mysql で指定したディレクトリにMySQLがインストールされていない可能性があります。

    ※)MySQL は、内容が複雑ですので ソースからインストールする事が多くなっています。ソースからインストールされた場合は、MySQLのconfigureに指定した –prefix を –with-mysql= に指定してください。

    一応 yum からインストールする方法を記載します。

    # yum install mysql mysql-server mysql-devel
    

    ■コンパイル/インストール

    # make
    # make test
    # make install
    

    ・設定ファイルを設置

    # cp php.ini-dist /usr/local/php5/lib/php.ini
    

    ■設定

    ・AddTypeの追記

    インストールが完了すると、Apacheの httpd.conf に一行の記述が追加されます。

    ・httpd.conf

    LoadModule php5_module modules/libphp5.so
    

    ↓手動で1行追加

    LoadModule php5_module modules/libphp5.so
    AddType application/x-httpd-php .php .phtml
    

    この AddType では、どのような拡張子をPHPとして扱うかを指定します。
    .php という拡張子のファイルを PHPで処理させたければ、ここに .php と指定します。

    ・SELinux の設定

    そのままでは、Apache が libphp5.so を読み込む処理が SELinux によって抑制されてしまい、起動できません。

    # service httpd start
    
    httpd を起動中: httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
    [失敗]
    #
    

    libphp5.so に対してのアクセスを許可します。

    # chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/libphp5.so
    

    後は、サーバー固有の設定になりますので、 httpd.conf や php.ini などを用途に見合った設定にすれば終了です。
    お疲れ様でした。

    << | 1 | 2 |


     Leave a reply




    *