動かざることバグの如し

近づきたいよ 君の理想に

Ubuntu Server 12.04 オレオレ鯖構築メモ

とりあえず動かしてみよう

インストール

その場のノリでいける。最後のインストールパックは何もチェックせずに終える。

DHCPを固定IPに

sudo vi /etc/network/interfaces

eth0の部分を以下のように書き換え

# The primary network interface
auto eth0
iface eth0 inet static  dhcp →static に変更
address 192.168.1.100
netmask 255.255.255.0
network 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1

特につまづいたのはdns-nameserversの部分。なんか12.04から明示的に書かなきゃいけなくなったぽい?
設定反映

sudo /etc/init.d/networking restart

ファイアウォールの設定

sudo ufw enable
sudo ufw default DENY
sudo ufw allow 80/tcp
sudo ufw allow 3843/tcp
sudo ufw allow 3306/tcp

設定後、要再起動

SSHの設定

インストール

sudo apt-get install openssh-server

初期設定をしておく

sudo vi /etc/ssh/sshd_config

ポート番号は通常22だが変えておく

#Port 22
Port 3843

rootで直接ログイン出来ないようにyesをnoに変更

PermitRootLogin no

設定反映

sudo service ssh restart

Apacheの設定

インストール

sudo apt-get install apache2

各種設定変更

sudo vi /etc/apache2/conf.d/security

  • ServerTokens OS→Prod
  • ServerSignature On→Off

sudo vi /etc/apache2/sites-available/default

  • Options Indexes FollowSymLinks MultiViews → Options FollowSymLinks MultiViews

(10行目のIndexesを削除)

  • AllowOverride None→All

sudo vi /etc/apache2/apache2.conf

ログ関係の設定項目を以下に書き換え
これでローカルホスト内からのアクセスはログに記録されない

	LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
	SetEnvIf Remote_Addr 192.168.1. no_log
	SetEnvIf Remote_Addr 127.0.0.1. no_log
	CustomLog ${APACHE_LOG_DIR}/access.log combined env=!no_log
  • ServerName hogehoge.com //末尾に追記

設定を反映

sudo /etc/init.d/apache2 restart

公開用ディレクトリ(var/www)のパーミッションを変えておく

sudo chown -R ユーザー名 /var/www/
sudo chmod 755 /var/www/

バーチャルホストを利用する場合

/etc/apache2/apache2.confからエラーログ項目以外のログ設定項目とServerName項目を削除。
各ホスト名は/etc/apache2/sites-availableに記述する

sudo vi /etc/apache2/sites-available/hogehoge

<VirtualHost *:80>
	ServerName hogehoge.com
	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www
	<Directory /var/www/>
		Options None
		AllowOverride All
	</Directory>
	LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
	SetEnvIf Remote_Addr 192.168.1. no_log
	SetEnvIf Remote_Addr 127.0.0.1. no_log
	SetEnvIf User-Agent "^.*mirall.*$" no_log
	SetEnvIf User-Agent "^.*csyncoC.*$" no_log
	SetEnvIf Request_URI "\.(jpg|png|gif|css|js|ico)$" no_log
	CustomLog ${APACHE_LOG_DIR}/access.log combined env=!no_log
	LogLevel warn
	ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

最後におまじないかけないと有効化されないので注意

sudo a2ensite /etc/apache2/sites-available/hogehoge

設定後Apache2要再起動

PHPの設定

インストール

sudo apt-get install php5 libapache2-mod-php5

各種設定変更

sudo vi /etc/php5/apache2/php.ini

変更した設定項目はこいつら

MySQLの設定

インストール

sudo apt-get install mysql-server php5-mysql

インストールの途中でrootに対するパスワード設定を求められるので入れておく
文字コードを全てUTF-8に変更する

sudo vi /etc/mysql/my.cnf

以下を追記

[client]
default-character-set=utf8

[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

設定反映

sudo /etc/init.d/mysql restart

ログインして確認

mysql -u root -p

ちゃんとエンコード設定できているか確認しておくと吉

show variables like 'character_set%';

WordPressのインストール

実質PHPMySQLの動作確認のため
zipを解凍できるようにしておく

sudo apt-get install unzip

FTP使うなどして、ここからWordpress本体をDLして/var/www下に配置

cd /var/www
unzip wordpress-3.8-ja.zip
sudo mv wordpress blog

次にあらかじめMySQL側でデータベースを作っておく

mysql> CREATE DATABASE wp;

最後にwp-config.phpを編集する

cd /var/www/blog
sudo cp wp-config-sample.php wp-config.php

以下の2つを編集

/** WordPress のためのデータベース名 */
define('DB_NAME', 'database_name_here');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'username_here');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password_here');
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

キーの生成にはhttp://api.wordpress.org/secret-key/1.1/salt/使うと便利
最後に./blogにアクセスして初期設定するばおk

owncloudの導入

以前使った時よりもかなり進化してて驚いた
インストールはなんとapt-getで可能(ただし12.04だとupdate必要っぽい?)

apt-get update
apt-get install owncloud

あとは予めowncloud用のデータベースを作成しておき、./owncloudにアクセスすれば初期設定できる。以上。