CentOS on VMware on Vista-PHP5をソースコードからのインストール方法
前回の記事
VMwarePlayer on VistaでCentOSのディスクイメージをフリーで作成する方法
この後、VMware Toolsをインストールし、MySQL、Apacheをソースコードからインストールしました。
(意外にも問題なくできたのでこちらについては後日まとめたいと思います。)
今回の問題はPHPのインストール。若干手こずりました。
PHPもソースコードからインストールします。
1.ダウンロード
以下のPHP公式サイトより「Complete Source Code」をダウンロード
PHP: Downloads
2.解凍
CentOS上の適当なフォルダにアップ
アップしたフォルダに移動し、下記tarコマンドで解凍。
>$ tar -xzvf php-5.2.6.tar.gz
(下線の部分はダウンロードしたソースのバージョンに合わせて下さい)
3.コンパイル条件の設定
解凍するとphp-5.2.6というフォルダが作成されます。
まずは、そのフォルダへ移動。
$ cd php-5.2.6
コンパイル条件を設定します。
私は以下の設定にしましたが、あくまで参考で。
$ ./configure
--with-apxs2=usr/local/apache2/bin/apxs
--enable-mbstring
--with-mysql=/usr/local/mysql
--with-gd
--with-jpeg-dir=/usr/local/lib/
--with-zlib
--with-zlib-dir=/usr/local/lib/
--with-png-dir=/usr/local/lib/
ところが、私の環境では以下3つのライブラリがインストールされておらず、
コンパイルでエラーが。。。
zlib
libjpeg
libpng
エラーメッセージで上記ライブラリがインストールされていない事が分かり、
以下の方法でインストール、また次のエラーを3回繰り返し、
やっとの思いで、コンパイル条件の設定ができました。
【インストール方法】
それぞれ[アプリケーション]-[ソフトウェアの追加/削除]から検索し、
以下の開発用ライブラリをインストールしました。
zlib-devel
libjpeg-devel
libpng-devel
4.コンパイル
コンパイルは簡単
以下のコマンドでコンパイルするだけ
$ make
$ su -
# make install
PHPをインストールした後Apacheを再起動しようとしたら以下のエラーメッセージが。。。
一番の難関でした。
[root@localhost php-5.2.6]# /usr/local/apache2/bin/apachectl restarthttpd: 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
色々調べた所SElinuxの強力なセキュリティ設定のおかげで必要なアクセスまで制限されてしまっているから。
解決方法は以下のコマンドでSElinuxのセキュリティ設定を変更
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/libphp5.so
無事再起動できました♪
次はホストOS=VistaからゲストOS=CenstOSのApacheへのアクセスについて書きたいと思います。
VMwarePlayer on VistaでCentOSのディスクイメージをフリーで作成する方法
この後、VMware Toolsをインストールし、MySQL、Apacheをソースコードからインストールしました。
(意外にも問題なくできたのでこちらについては後日まとめたいと思います。)
今回の問題はPHPのインストール。若干手こずりました。
PHPもソースコードからインストールします。
1.ダウンロード
以下のPHP公式サイトより「Complete Source Code」をダウンロード
PHP: Downloads
2.解凍
CentOS上の適当なフォルダにアップ
アップしたフォルダに移動し、下記tarコマンドで解凍。
>$ tar -xzvf php-5.2.6.tar.gz
(下線の部分はダウンロードしたソースのバージョンに合わせて下さい)
3.コンパイル条件の設定
解凍するとphp-5.2.6というフォルダが作成されます。
まずは、そのフォルダへ移動。
$ cd php-5.2.6
コンパイル条件を設定します。
私は以下の設定にしましたが、あくまで参考で。
$ ./configure
--with-apxs2=usr/local/apache2/bin/apxs
--enable-mbstring
--with-mysql=/usr/local/mysql
--with-gd
--with-jpeg-dir=/usr/local/lib/
--with-zlib
--with-zlib-dir=/usr/local/lib/
--with-png-dir=/usr/local/lib/
ところが、私の環境では以下3つのライブラリがインストールされておらず、
コンパイルでエラーが。。。
zlib
libjpeg
libpng
エラーメッセージで上記ライブラリがインストールされていない事が分かり、
以下の方法でインストール、また次のエラーを3回繰り返し、
やっとの思いで、コンパイル条件の設定ができました。
【インストール方法】
それぞれ[アプリケーション]-[ソフトウェアの追加/削除]から検索し、
以下の開発用ライブラリをインストールしました。
zlib-devel
libjpeg-devel
libpng-devel
4.コンパイル
コンパイルは簡単
以下のコマンドでコンパイルするだけ
$ make
$ su -
# make install
PHPをインストールした後Apacheを再起動しようとしたら以下のエラーメッセージが。。。
一番の難関でした。
[root@localhost php-5.2.6]# /usr/local/apache2/bin/apachectl restarthttpd: 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
色々調べた所SElinuxの強力なセキュリティ設定のおかげで必要なアクセスまで制限されてしまっているから。
解決方法は以下のコマンドでSElinuxのセキュリティ設定を変更
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/libphp5.so
無事再起動できました♪
次はホストOS=VistaからゲストOS=CenstOSのApacheへのアクセスについて書きたいと思います。