lamp_logo

[CentOS6.4]最新(安定板)のMySQL、Apache、PHPをソースからインストールする。


lamp_logo諸事情により、最新のLAMP環境を検証する必要が出た為、2013年10月31日時点での各最新版をソースからコンパイルしてインストールする。

セキュリティを考慮すれば、不要な機能を使えるようにする事は、リスクの増加しか生まない為、コンフィグ等は必要に応じて変更する。

 

コンパイルに必要な環境を準備する。

yum で一発

yum install -y \
gcc gcc-c++ wget bison tcl make tmux git \
readline-devel libtidy-devel libxslt-devel pcre pcre-devel \
gettext gettext-devel ncurses-devel libpng-devel libjpeg-devel \
freetype-devel libxml2-devel curl-devel gd gd-devel cmake \
openssl libevent-devel libxml2-devel libmcrypt-devel openssl-devel \
bzip2-devel t1lib-devel gmp-devel libicu-devel aspell-devel

yumで入れるzlibが1.2.3なのでソースから最新をインストール

cd /usr/local/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar xfz zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure –shared && make all install
cd ../

最新版MySQL 5.6.14 インストール

groupadd mysql
useradd -d /home/mysql -g mysql -r -s /sbin/nologin mysql

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz/from/http://cdn.mysql.com/
tar zxf mysql-5.6.14.tar.gz
cd mysql-5.6.14
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci
make
make install
mkdir /usr/local/mysql/etc
cd /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql

./scripts/mysql_install_db –user=mysql –skip-name-resolve

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

chown -R root .
chown -R mysql:mysql /usr/local/mysql/data
install -o root -g root -m 755 /usr/local/src/mysql-5.6.14/support-files/mysql.server /etc/rc.d/init.d/mysql

chkconfig –add mysql
chkconfig –list mysql  #確認

vi ~/.bashrc

以下2行を一番下に追記
—————————————
PATH=$PATH:/usr/local/mysql/bin
export PATH
—————————————

source ~/.bashrc

/etc/init.d/mysql start

MySQL初期設定

サボって設定ツールを使う。

[root@tkmemo mysql]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we’ll need the current
password for the root user. If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #初期は未設定なので空白のまま
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password: #設定したいパスワード
Re-enter new password: #設定したいパスワードをもう一度
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #匿名ユーザー削除
… Success!

Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #ローカル以外からのrootアクセス禁止
… Success!

By default, MySQL comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #テストデータベースの削除
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #権限テーブルをリロードして設定を有効に
… Success!

All done! If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Cleaning up…

一旦、MySQLを停止しておく。

/etc/init.d/mysql stop

最新版apache2.4.6インストール

apacheの実行ユーザー、グループを作成。

セキュリティ上、当然シェルログイン出来ないように。ホームディレクトリも要らない。

/usr/sbin/groupadd www-data
/usr/sbin/useradd -d /home/www-data -g www-data -r -s /sbin/nologin www-data

APRとAPR-utilが同梱されなくなっているので先に入れる。

cd /usr/local/src/
wget http://ftp.riken.jp/net/apache/apr/apr-1.4.8.tar.gz
tar zxf apr-1.4.8.tar.gz
cd apr-1.4.8
./configure
make
make install

cd /usr/local/src/
wget http://ftp.riken.jp/net/apache/apr/apr-util-1.5.2.tar.gz
tar zxf apr-util-1.5.2.tar.gz
cd apr-util-1.5.2
./configure –with-apr=/usr/local/apr
make
make install

apacheをコンパイルする。

cd /usr/local/src/
wget http://ftp.riken.jp/net/apache/httpd/httpd-2.4.6.tar.gz

tar zxf httpd-2.4.6.tar.gz
cd httpd-2.4.6

./configure \
–with-libdir=lib64 –prefix=/usr/local/apache2 –with-layout=PHP –with-pear \
–with-apxs2=/usr/local/apache2/bin/apxs –enable-calendar –enable-deflate \
–enable-bcmath –with-gmp –enable-exif –with-mcrypt –enable-headers\
–with-mhash –with-zlib –with-bz2 –enable-zip –enable-ftp \
–enable-mbstring –with-iconv –enable-intl –with-icu-dir=/usr \
–with-gettext –with-pspell –enable-sockets –with-openssl \
–with-curl –with-curlwrappers –with-gd –enable-gd-native-ttf \
–with-jpeg-dir=/usr –with-png-dir=/usr –with-zlib-dir=/usr \
–with-xpm-dir=/usr –with-freetype-dir=/usr –with-t1lib=/usr \
–with-libxml-dir=/usr –with-mysql=mysqlnd –with-mysqli=mysqlnd \
–with-pdo-mysql=mysqlnd –enable-soap –with-xmlrpc –with-xsl \
–with-tidy=/usr –with-readline –enable-pcntl –enable-sysvshm \
–enable-sysvmsg –enable-ssl=shared –enable-rewrite

make
make install

インストールしたディレクトリの所有者を変更。

chown -R www-data:www-data /usr/local/apache2

vi /usr/local/apache2/conf/httpd.conf

# 実行ユーザーを変更
————————————————-
User www-data
Group www-data
————————————————-

起動スクリプトを準備

cp /usr/local/src/httpd-2.4.6/build/rpm/httpd.init /etc/rc.d/init.d/httpd
vi /etc/init.d/httpd

パスを変更
————————————————-
httpd=${HTTPD-/usr/sbin/httpd}

httpd=/usr/local/apache2/bin/httpd

pidfile=${PIDFILE-/var/log/httpd/httpd.pid}

pidfile=/usr/local/apache2/logs/httpd.pid

CONFFILE=/etc/httpd/conf/httpd.conf

CONFFILE=/usr/local/apache2/conf/httpd.conf
————————————————-

apacheを起動

/etc/init.d/httpd start

chkconfig –add httpd
chkconfig httpd on
chkconfig –list hatted

最新版PHPをインストール

古いPHPをアンインストールする。

yum remove php-*

cd /usr/local/src/
wget http://www.php.net/get/php-5.5.5.tar.gz/from/this/mirror
tar zxf php-5.5.5.tar.gz
cd php-5.5.5
./configure –with-libdir=lib64 –prefix=/usr/local/php555 –with-layout=PHP \
–with-pear –with-apxs2=/usr/local/apache2/bin/apxs –enable-calendar \
–enable-bcmath –with-gmp –enable-exif –with-mcrypt –with-mhash \
–with-zlib –with-bz2 –enable-zip –enable-ftp –enable-mbstring –with-iconv \
–enable-intl –with-icu-dir=/usr –with-gettext –with-pspell –enable-sockets \
–with-openssl –with-curl –with-gd –enable-gd-native-ttf \
–with-jpeg-dir=/usr –with-png-dir=/usr –with-zlib-dir=/usr –with-xpm-dir=/usr \
–with-freetype-dir=/usr –with-t1lib=/usr –with-libxml-dir=/usr \
–with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd \
–enable-soap –with-xmlrpc –with-xsl –with-tidy=/usr –with-readline \
–enable-pcntl –enable-sysvshm –enable-sysvmsg –enable-shmop \
–enable-cli –enable-fpm –with-fpm-user=www-data –with-fpm-group=www-data

make
make test
make install

Apache にモジュールを読み込ませる。

vi /usr/local/apache2/conf/httpd.conf

下記を追記
—————————————-
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
—————————————-

php.ini をコピーする。

本番環境なら php.ini-production、テスト環境ならphp.ini-development

cd /usr/local/src/php-5.5.5
cp php.ini-production /usr/local/php555/lib/php.ini
vi /usr/local/php555/lib/php.ini

date.timezone = “Asia/Tokyo”

シンボリックリンク作って、パスを通す。

ln -s /usr/local/php555/bin/php /usr/bin/php
ln -s /usr/local/php555 /usr/local/php

vi ~/.bashrc

PATH=$PATH:/usr/local/php/bin
export PATH

source ~/.bashrc

正しくインストールできたか確認する。

vi /usr/local/apache2/htdocs/index.php

<?php  phpinfo()  ?>



Kenzi Tada について

カメラマンを本業と出来るよう鋭意努力中ですが、まだまだ力量が不足し、広告企画制作や技術者としての仕事をメインに、二足のわらじ、もとい四足ぐらいか(笑) 作品制作や撮影のお仕事にご協力頂ける被写体様(男女年齢問わず)、ヘアメイクアップアーティスト様を随時募集しております。ご興味が御座います方は是非、ご連絡下さい。