CentOSでLAMP環境構築例
問題
さくらのVPSを借りました!
さくっとLAMP環境を構築したいです!
解答例
初期状態の CentOS6(64ビット版)からスタート。
インストール
全部 yum で。
apache
# yum install httpd mod_ssl
MySQL
# yum install mysql mysql-server
mysql はクライアント。mysql-server がデータベースサーバー。
バージョンは5.1が入る。最新版が欲しくなる気持ちはあるけど、効率優先で割り切る。
最新版が欲しい場合は、MySQL公式サイトでダウンロードできるRPMを使うと簡単。
php
# yum install php php-mbstring php-gd php-xml php-imap php-mcrypt php-pdo php-mysql
日本語使いたいならmbstringとか、画像処理もありならGDもとか、SOAP使うならsoapもとか、WordPress稼動させるならmysqlもとか。追加は後からでも気軽にできる。
バージョンは5.3系が入る。これも最新版がとても欲しいんだけど、効率優先で割り切る。5.3以上なら困ることもあまりないでしょう。
最新版が欲しい場合は、そんなに難しくないからphp公式サイトからソースをダウンロードして自分でコンパイルする。
設定
多人数で共有することなどは特に考えていない設定。
apache
VirtualHostをいくつか入れることになるのを想定して場所(/home/apache/vhosts)を用意。
vhostsの下にサイトごと(ホスト名ごと)のディレクトリを作って使うように考えている。ファイルの配置は好みに応じて決定されたし。
# mkdir -p /home/apache/vhosts # chown -R apache:apache /home/apache
Virtualhostの設定をする。他の部分で大体の設定がされているので、ホスト名とドキュメントルートを書くだけでいい。
# vi /etc/httpd/conf.d/vhosts.conf NameVirtualHost *:80 <VirtualHost *:80> ServerName default DocumentRoot /home/apache/vhosts/default/www </VirtualHost> <VirtualHost *:80> ServerName example.com DocumentRoot /home/apache/vhosts/example.com/www <Directory /home/apache/vhosts> # .htaccessを使いたいときなど AllowOverride All # 他に設定があれば書く </Directory> </VirtualHost>
ここまででapacheを再起動して設定を反映して、/home/apache/vhosts/default/www/test.php などに <?php phpinfo();
とだけ書いて保存して、http://IPアドレス/test.php にアクセスすると、phpinfoが表示される。
MySQL
起動する。
# /etc/init.d/mysqld start
rootにパスワードを設定する、リモートのrootでの接続不許可などの初期設定。
# /usr/bin/mysql_secure_installation ... (以下対話式に設定) ...
MySQL 5.1 の初期状態の設定はあまりよろしくないので、InnoDB関連の設定だけはしておきたい(InnoDBを使う場合)。
InnoDBに関してそこまで性能を求めなければ、下記のInnoDB関連の設定は何もしないで次に進んでもよい。
# vi /etc/my.cnf ([mysqld]セクションに追記) character-set-server = utf8 skip-character-set-client-handshake skip-external-locking key_buffer_size = 256M max_allowed_packet = 64M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 4 # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 256M innodb_additional_mem_pool_size = 20M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 64M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50
設定の反映は、MySQLを停止して、log_file_sizeの設定を変えたので ib_logfile* を削除して、起動。
# /etc/init.d/mysqld stop # rm /var/lib/mysql/ib_logfile* # /etc/init.d/mysqld start
MySQLにはこのサーバーからしか接続しない場合、外部から接続できないように設定。外から見ると、「接続が許可されない(接続情報さえわかればつながりそう!)」のではなく「接続できない(稼動していない?)」ように見える。ファイヤーウォールの設定で対応してもよい。
#[mysqld]セクションに追記 # ローカルアドレスのみ(こうすると自身からのみしか接続できなくなる) bind-address = 127.0.0.1
mysqlコマンド(クライアント)もutf8設定の方が何かと楽でしょう。
[client] default_character_set = utf8
php
特にどうしても必要な設定はないけど、日本語のUTF-8なWebシステムを稼動させるなら、default_charset、mbstring.internal_encoding など指定しておいてよいでしょう。
default_charset = "UTF-8"
使ってみる
独自ドメインでWordPressを設置するなら、以下のような作業ですぐ使える。
- ホスト名を決める
- DNS設定などする
- WordPressのソースをダウンロードして解凍して置く
- apacheのVirtualHostの設定をする
- データベースと接続ユーザーを作る
- Web画面からインストール
コメント