Ubuntu 12.04 サーバー構築1 ( apt-get, Apache2, PHP5, MySQL )

Ubuntuのパッケージインストールコマンドapt-getの使い方と、Apahce2、PHP5、MySQLのインストールに関するメモ

パッケージリストの更新

UbuntuにもMacPortのようなパッケージインストールコマンドが存在する。
インストールする前にリストを更新して最新状態にしておく。そうしないと、古いアプリがインストールされてしまう為。

$ sudo apt-get update

パッケージの検索

$ sudo apt-cache search (Search Keyword)

パッケージのインストール

$ sudo apt-get install (Package Name1) (Package Name2) ・・

パッケージのアンインストール

$ sudo apt-get --purge remove (Package Name)

taskselコマンドのインストール

サーバー版で標準でインストールされているツール。目的別で機能を選択すると、まとめてインストールしてくれる便利なコマンドをインストールしておく。

$ sudo apt-get install tasksel

Apache2のインストール

インストールすると、www-dataというユーザが同時に作成される。後述するWebDAV+Subversion環境を構築してSVNリポジトリをApache2経由でさせる場合、このwww-dataユーザでリポジトリを読み書きするのでユーザグループやパーミッションに注意する。

$ sudo apt-get install apache2
  • モジュールの有効無効コマンドシェル

定義のON/OFFの為に直接confファイルを修正しなくて良い。

/usr/sbin/a2enmod [module-name]
/usr/sbin/a2dismod [module-name]

Apache関連の設定ファイルおよびフォルダ

/etc/apache2/apache2.conf
/etc/apache2/mods-available/
/etc/apache2/mods-enabled/
/etc/apache2/sites-available/
/etc/apache2/sites-enabled/
/etc/apache2/conf.d/

apache2.confはapache2全体に影響する基本設定ファイル。最初にロードされて、他の設定ファイルによって上書きされるので優先順位の低いデフォルト値などを定義する。mods-availableはapache2用のエクステンションモジュールが格納されるフォルダ。mods-enabledは有効になっているモジュールのフォルダ。a2enmodで有効にすると、このディレクトリにシンボリックリンクが作成される。

sites-availableはdefaulthttpとdefault-sslhttpsに関連する基本的な定義。a2ensiteコマンドで有効にすると、sites-enabledにリンクが作成される。

  • デフォルトのドキュメントルート。
DocumentRoot /var/www/

デフォルトの各種ログ

/var/log/apache2/access.log
/var/log/apache2/error.log

Apacheデーモンの起動終了シェル

> sudo service apache2 start
> sudo service apache2 stop
  • Apacheの動作確認
    以下のURLにブラウザからアクセスして、「It’s Work !」のようなページが開いたらOK。
http://(Server Name)

MySQLのインストール

> sudo apt-get install mysql-server
  • MySQLの設定ファイル
    昔はメモリサイズに合わせたmy-huge.cnfのようなテンプレートがあったが、確認できなかったので直接パラメータを編集する。
$ sudo vi /etc/mysql/my.cnf
[client]
default-character-set=utf8
[mysqld]
skip-character-set-client-handshake
default-character-set=utf8
[mysqldump]
default-character-set=utf8

MySQLの起動終了

$ sudo service mysqld start
$ sudo service mysqld stop

MySQLの動作確認

rootユーザでログインした後、簡単な動作確認としてデータベース一覧、テーブル一覧を表示する。

$ mysql -u root -p
(Password)
mysql> show databases;
mysql> use (DB Name);
mysql> show tables;
mysql> exit

PHPのインストール

PHPは本体とApache用のmod、MySQL用のmodも併せてインストールする

> sudo apt-get install php5 libapache2-mod-php5 php5-mysql

Apache用モジュールの登録と再起動

$ sudo a2enmod php5
$ sudo sudo service apache2 restart

PHPの動作確認

PHPの設定情報をダンプするスクリプトを作成して、Apacheのドキュメントルートに配置する。

test.php

<?php phpinfo(); ?>

配置したスクリプトをブラウザからアクセスしてPHPの詳細情報が表示されればOK。

http://[Server Name]/test.php

APCAlternative PHP Cacheのインストール

PHPスクリプトの中間オブジェクトをキャッシュして実行速度の高速化を行うモジュールの作成とインストールを行う。体感できるほどに高速化されて、特にWordpressなど重量級のアプリには必須となる。

$ sudo apt-get install php5-dev
$ sudo apt-get install php-pear
$ sudo apt-get install apache2-prefork-dev
$ sudo apt-get install libpcre3-dev
$ sudo pecl install apc
  • php.iniの設定
    作成したapcモジュールの登録とメモリ関連のチューニングした後、念のためApacheを再起動する。
memory_limit = 20M
post_max_size = 20M
upload_max_filesize = 20M
extension=apc.so #設定ファイルの末尾に追加
  • APCの確認
    http://localhost/test.phpにアクセスして、APCの項目が追加されていることを確認する。

また、APCモジュールと一緒にインストールされるapc.phpファイルも、ドキュメントルートに配置してアクセスしてみる。PHP関数のヒット率などが表示されればOK。

$ sudo cp /usr/share/pear/apc.php /var/www
http://[Server Name]/apc.php