最近、個人的に流行しているインストールメモの続きです。
書いたつもりでMySQLのインストールを書いていませんでした。
あれ?MySQLのインストールはmakeじゃなくてcmakeでしたっけ?
まずは、CMakeをインストールする必要があるようです。
CMakeってMakeとは何が違うんだろう?
と調べてみたらよいまとめがありました。
yumでさくっとインストールします。
と聞かれるので例によってy
と表示されて無事インストールできました。
今度はCursesが無いとのこと。
Cursesってなんだろう?と調べてみました。
なるほど。納得したところでyumでさくっとインストールします。
と聞かれるので例によってy
と表示されて無事インストールできました。
どうやらキャッシュを消す必要がありそうです。
違うエラーが出ました。どうやらC++がインストールされていないようです。
例によってyumで。
と聞かれるので例によってy
と表示されて無事インストールできました。
忘れずにキャッシュを消して、
再度、cmakeを実行。
Warningとはいえ、気持ち悪いのでBisonをインストールします。
ふむふむ。yumでさくっとインストールします。
と聞かれるので例によってy
と表示されて無事インストールできました。
忘れずにキャッシュを消して、
再度、cmakeを実行。
大丈夫そうなので、そのまま、
順番を間違えたため、再度PHPをコンパイルします。
こうなるので、先にMySQLをインストールするのが常套手段です。
ついでだったので、文字コード系のオプションを追加してみました。
--without-mysql --with-mysqliが気になったので調べてみました。
違いは「i」がついているかどうかですね。
--with-mysqlオプションは
MySQL 4.1.0 以降とも互換性がありますが、 それ以降のバージョンが提供する新機能はサポートしていません。
というわけで、MySQL 4.1以前を使うならいざ知らず、
その必要がないならいらないということですね。
http://php.net/manual/ja/mysql.installation.php
http://php.net/manual/ja/mysqli.installation.php
--enable-zend-multibyte \
これはmbstring.script_encodingによってPHPスクリプトの文字エンコードを指定できるオプションなのですが、5.4系からは標準仕様になって、
オプションからなくなったようです。
というわけで外してもう一度configureを実行します。
大丈夫そうなので、
MySQL用のユーザーを作成します。
こちらもさくっとコマンドで。
何事もなかったかのように書いてますが、実はこれを忘れて起動時にエラーが出ました。
これまたファイルが用意されているのでコピーして、実行権限を与えてchkconfigします。
とのことです。めでたしめでたし。
書いたつもりでMySQLのインストールを書いていませんでした。
ソースコードの取得
# cd /usr/local/src/
# wget http://www.mysql.com/downloads/mirror.php?id=411115
# tar xvzf mysql-5.5.29.tar.gz
# cd mysql-5.5.29
# wget http://www.mysql.com/downloads/mirror.php?id=411115
# tar xvzf mysql-5.5.29.tar.gz
# cd mysql-5.5.29
あれ?MySQLのインストールはmakeじゃなくてcmakeでしたっけ?
まずは、CMakeをインストールする必要があるようです。
CMakeのインストール
CMakeってMakeとは何が違うんだろう?
と調べてみたらよいまとめがありました。
CMakeとは?
torutkの日記より
http://d.hatena.ne.jp/torutk/20081005/p1
http://d.hatena.ne.jp/torutk/20081005/p1
UNIXでは、C/C++のソースコードをビルドするには
Makefileを書いてmakeツールを使うのが一般的です。
しかし、Makefileを書くのは大変なので、
もっと楽なツールを探すと出てくるものの一つがcmakeです。
Makefileを書いてmakeツールを使うのが一般的です。
しかし、Makefileを書くのは大変なので、
もっと楽なツールを探すと出てくるものの一つがcmakeです。
yumでさくっとインストールします。
# yum install cmake
Is this ok [y/N]:
と聞かれるので例によってy
Complete!
と表示されて無事インストールできました。
MySQL5.5.29のインストールを再開
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
今度はCursesが無いとのこと。
Cursesのインストール
Cursesってなんだろう?と調べてみました。
Curses(カーシス、カーズィス)とは?
コトバンクより
http://kotobank.jp/word/curses
http://kotobank.jp/word/curses
UNIXにおいて、行ベースではなく、
画面ベースのキャラクタ対話型アプリケーションを、
作成するためのライブラリー。
UNIXの標準的な対話環境では、行単位の入出力しかサポートしていないが、
エスケープシーケンスを駆使することで、
カーソルの移動や画面の任意の位置にテキストを表示できるようになる
(つまり、スクリーンエディタなどを作成できる)。
cursesはこれを支援するライブラリーで、端末データベースを利用することで、
さまざまな仕様の端末で、単一の対話型アプリケーションを実行できる。
UNIXのvi、lessなど、さまざまなコマンドがcursesを利用している。
最初のcursesは、初期のviエディタの画面操作コードをライブラリー化したもので、
端末データベースにはtermcapを使っていた。
現在のcurses(または互換ライブラリー)では、
termcapに代わってterminfoデータベースを参照するようになっている。
画面ベースのキャラクタ対話型アプリケーションを、
作成するためのライブラリー。
UNIXの標準的な対話環境では、行単位の入出力しかサポートしていないが、
エスケープシーケンスを駆使することで、
カーソルの移動や画面の任意の位置にテキストを表示できるようになる
(つまり、スクリーンエディタなどを作成できる)。
cursesはこれを支援するライブラリーで、端末データベースを利用することで、
さまざまな仕様の端末で、単一の対話型アプリケーションを実行できる。
UNIXのvi、lessなど、さまざまなコマンドがcursesを利用している。
最初のcursesは、初期のviエディタの画面操作コードをライブラリー化したもので、
端末データベースにはtermcapを使っていた。
現在のcurses(または互換ライブラリー)では、
termcapに代わってterminfoデータベースを参照するようになっている。
なるほど。納得したところでyumでさくっとインストールします。
# yum install ncurses-devel
Is this ok [y/N]:
と聞かれるので例によってy
Complete!
と表示されて無事インストールできました。
再びMySQL5.5.29のインストール
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
どうやらキャッシュを消す必要がありそうです。
# rm CMakeCache.txt
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
違うエラーが出ました。どうやらC++がインストールされていないようです。
C++のインストール
例によってyumで。
# yum install gcc-c++
Is this ok [y/N]:
と聞かれるので例によってy
Complete!
と表示されて無事インストールできました。
再びMySQL5.5.29のインストール
忘れずにキャッシュを消して、
# rm CMakeCache.txt
再度、cmakeを実行。
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
Warning: Bison executable not found in PATH
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
Warning: Bison executable not found in PATH
Warningとはいえ、気持ち悪いのでBisonをインストールします。
Bisonのインストール
Bison(バイソン)とは?
http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/Bison/
Bison とは、汎用の構文解析器を生成するソフトウェアです。
たいていの UNIX 系システムでは、同様のコマンドである yacc (yet another compiler compiler) が標準でインストールされていると思います。 bison は、その yacc の文法をそのまま扱うことができ、なおかつ独自の拡張も施されている yacc の上位互換のソフトウェアです。
たいていの UNIX 系システムでは、同様のコマンドである yacc (yet another compiler compiler) が標準でインストールされていると思います。 bison は、その yacc の文法をそのまま扱うことができ、なおかつ独自の拡張も施されている yacc の上位互換のソフトウェアです。
ふむふむ。yumでさくっとインストールします。
# yum install bison
Is this ok [y/N]:
と聞かれるので例によってy
Complete!
と表示されて無事インストールできました。
再びMySQL5.5.29のインストール
忘れずにキャッシュを消して、
# rm CMakeCache.txt
再度、cmakeを実行。
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
大丈夫そうなので、そのまま、
# make
# make test
# make install
# make test
# make install
PHPにMySQLのライブラリを組み込み
順番を間違えたため、再度PHPをコンパイルします。
こうなるので、先にMySQLをインストールするのが常套手段です。
# cd /usr/local/src/php-5.4.10
# make clean
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbregex \
--with-iconv \
--enable-mbstring \
--enable-zend-multibyte \
--without-mysql \
--with-mysqli
# make clean
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbregex \
--with-iconv \
--enable-mbstring \
--enable-zend-multibyte \
--without-mysql \
--with-mysqli
ついでだったので、文字コード系のオプションを追加してみました。
--without-mysql --with-mysqliが気になったので調べてみました。
違いは「i」がついているかどうかですね。
--with-mysqlオプションは
MySQL 4.1.0 以降とも互換性がありますが、 それ以降のバージョンが提供する新機能はサポートしていません。
というわけで、MySQL 4.1以前を使うならいざ知らず、
その必要がないならいらないということですね。
http://php.net/manual/ja/mysql.installation.php
http://php.net/manual/ja/mysqli.installation.php
WARNING: unrecognized options: --enable-zend-multibyte
--enable-zend-multibyte \
これはmbstring.script_encodingによってPHPスクリプトの文字エンコードを指定できるオプションなのですが、5.4系からは標準仕様になって、
オプションからなくなったようです。
というわけで外してもう一度configureを実行します。
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbregex \
--with-iconv \
--enable-mbstring \
--without-mysql \
--with-mysqli
Thank you for using PHP.
--enable-mbregex \
--with-iconv \
--enable-mbstring \
--without-mysql \
--with-mysqli
Thank you for using PHP.
大丈夫そうなので、
# make
# make test
# make install
# make test
# make install
mysql用ユーザーの作成
MySQL用のユーザーを作成します。
# groupadd mysql
# useradd mysql -g mysql -s /sbin/nologin
# useradd mysql -g mysql -s /sbin/nologin
初期DBの作成
こちらもさくっとコマンドで。
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
--datadir=/usr/local/mysql/data
my.cnfの作成
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
何事もなかったかのように書いてますが、実はこれを忘れて起動時にエラーが出ました。
ERROR! The server quit without updating PID file
自動起動設定
これまたファイルが用意されているのでコピーして、実行権限を与えてchkconfigします。
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
MySQLの起動
# /etc/rc.d/init.d/mysqld start
Starting MySQL.... SUCCESS!
Starting MySQL.... SUCCESS!
とのことです。めでたしめでたし。