*Apache [#ke3350cb]
[[Apache:+http://httpd.apache.org/]]
Linux用WWWサーバの代名詞。
apache2.4からは設定方法が色々と変更されているので注意。
*MySQL [#d6256ed2]
[[MySQL:+http://dev.mysql.com/]]
[[mariaDB:+https://mariadb.org/]]
MySQL vs mariaDBが続いているけれど、ぶっちゃけ中身はほぼ同じなのでどっちでも良い。
一応、mariaDBの方が高機能らしいが殆ど変わらないと思う。
MySQL5.5から&font(b){./configureではなく、cmakeを使う};ようになった。
~
*インストール [#c99547a5]
&size(16){&font(b){1. 前準備};};
ソースから入れる前にpkgconifgを統一しておく。
他の場合でもやった方がよさそうだが、書くのが面倒くさいので省略。
(Linux入れたら、とりあえずLAMP構築するだろうからここだけで大丈夫だべ)
 # cd /usr/local/lib64
 # ln -s /usr/lib64/pkgconfig .
 # cd /usr/local/lib
 # mkdir /usr/lib/pkgconfig
 # ln -s /usr/lib/pkgconfig .
後は、https通信用に[[OpenSSL>Linux/Source/OpenSSL]]も入れておく。
~
&size(16){&font(b){2. APRのビルド・インストール};};
apacheのソースと一緒にビルドする方法もあるらしいが、
自分の環境では上手くいかなかったので別々にビルドする。
 # tar zxvf apr-1.4.6.tar.gz
 # cd apr-1.4.6
 # ./configure --prefix=/usr/local/apr
*インストール [#u7d6d771]
&size(16){&font(b){1. ビルド};};
 //MySQL 5.1系統
 # tar zxvf mysql-5.1.73.tar.gz
 # cd mysql-5.1.73
 # ./configure --prefix=/usr/local/mysql --without-readline
 # make
 # make test
 # make install
~
&size(16){&font(b){3. APR-Utilのビルド・インストール};};
 # tar zxvf apr-util-1.5.1.tar.gz
 # cd apr-util-1.5.1
 # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
 
 //MySQL 5.5系統
 # tar zxvf mysql-5.6.15.tar.gz
 # cd mysql-5.6.15
 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
 # make
 # make test
 # make install
~
&size(16){&font(b){4. Apacheのビルド・インストール};};
initの名前を“httpd”にするとyumとかで入れた物と被ってエラーになる場合がある。
よって、今回は“apache”という名前にしてインストールする。
[[PCRE>Linux/PCRE]]がまだ入ってない場合は、apacheのソースをビルドする前に入れておく事。
 # tar zxvf httpd-2.4.3.tar.gz
 # cd httpd-2.4.3
 # vi config
 
&font(b){※全部一行で書く};
 --prefix=/usr/local/apache
 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
 --enable-ssl --enable-suexec --enable-rewrite --enable-auth-digest --enable-dav --enable-so

 # ./configure `cat ./config`
 # make
 # make install
&size(16){&font(b){2. MySQLの設定・起動準備};};
&font(b){&color(#ff0000){x86_64のOSを使っているのなら、下を必ず行う事!!};};
 # ln -s /usr/local/mysql/lib /usr/local/mysql/lib64
~
*設定 [#te0c66db]
&size(16){&font(b){I. apacheスクリプトのコピー};};
 # cp /usr/local/apache/bin/apachectl /etc/init.d/apache
 # chmod 755 /etc/init.d/apache
 # ln -s /etc/init.d/apache /etc/init.d/httpd
 # ln -s ../init.d/apache /etc/rc3.d/S96apache
MySQL用のユーザを作成する。
 # groupadd mysql
 # useradd -g mysql -d /var/mysql -s /sbin/nologin mysql
 # rm -rf /var/mysql/*
 # rm -rf /var/mysql/*.*
~
&size(16){&font(b){II. ユーザーの準備};};
 # adduser www -d /var/apache -s /sbin/nologin
 # rm -rf /var/apache
 # mkdir -p /var/apache/html
 # chown -R root.www /var/apache
起動スクリプトの設置を行う。コピーしたスクリプトの中身も書き換える。
 # {MySQLのソースコード}/support-files/mysql.server /etc/init.d/mysqld
 # chmod 755 /etc/init.d/mysqld
 # chkconfig --add mysqld
 # chkconfig mysqld on
~
&size(16){&font(b){III. apacheの設定};};
 # cd /usr/local/apache/conf
 
&font(b){※以下のファイルを設定していく。他は必要の応じて};
 # vi httpd.conf
 # vi extra/httpd-default.conf
 # vi extra/httpd-languages.conf
MySQLのデータベースを初期化する。
 # /usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/mysql
~
*アクセス制限 [#v84ad922]
apache2.2系統とapache2.4系統ではアクセス制限のやり方が変わっているので注意
&size(16){&font(b){A. apache2.2};};
全てのアクセス許可する
 Order allow,deny
 Allow from all

全てのアクセスを拒否する
 Order deny,allow
 Deny from all
&size(16){&font(b){3. MySQLの起動後設定};};
起動した後に、データベース内のゴミを削除する。
 # /etc/init.d/mysqld start
 # mysqladmin -u root password {MySQLのrootユーザパスワード}
 
 # mysql -u root -p
 Enter password: {MySQLのrootユーザパスワード}
 > use mysql;
 > delete from user where user='';
 > delete from user where password='';
 > drop database test;
 > flush privileges;
 > exit
~
&size(16){&font(b){B. apache2.4};};
全てのアクセスを許可する
 Require all granted
&size(16){&font(b){4. MySQLのユーザ・パスワード・データベース登録};};
(例) ユーザ:hoge , パスワード:pass , データベース名:bar
 # mysql -u root -p
 Enter password: {MySQLのrootユーザパスワード}
 > create database bar;
 > grant all on bar.* to hoge identified by 'pass';
 > flush privileges;
 > exit

全てのアクセスを拒否する
 Require all denied