MacでさくらサーバーにLAMP環境構築

順番

  • MacBookでSSH 接続用のRSA鍵を作成する
  • サーバーに使用するユーザーとパスワードの追加
  • 作成したRSA鍵をサーバーにSCPでコピー
  • MacBookから接続確認
  • サーバーのSSH設定変更
  • sudo設定変更
macbook:~ hogehoge$ ssh-keygen [Enter]
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): [好きなパスワードを入力]
Enter same passphrase again: [好きなパスワードを再入力]
Your identification has been saved in /Users/hogehoge/.ssh/id_rsa.
Your public key has been saved in /Users/hogehoge/.ssh/id_rsa.pub.
サーバーに使用するユーザーとパスワードの追加

次に、サーバーで使用するユーザーとパスワードを登録する。リモートコンソールを使ってサーバーにログイン。

[root@xxx ~]# useradd hogehoge[Enter]
[root@xxx ~]# passwd hogehoge[Enter]
Changing password for user hogehoge.
New UNIX password:[新しいパスワードを入力]
Retype new UNIX password:[新しいパスワードを再入力]
passwd: all authentication tokens updated successfully.
[root@xxx ~]#usermod -G wheel hoeghoge //root 制限用に wheel に所属させる

作成したRSA鍵をサーバーにSCPでコピー

今度はMacBookからサーバーに、先程作成したRSA鍵をコピーする。コピーにはSCPというコマンドを使用する。
/Users/hogehoge/.sshにあるid_rsa.pubをサーバーへコピー。sakuraにはサーバーのIPとかドメインを入れる。

macbook:~ hogehoge$ cd .ssh
macbook:.ssh hogehoge$ scp id_rsa.pub tokikane@150.000.00.00:~/.ssh


コピーできたら、リモートコンソールで再度サーバーにログインし設定を変更する。

CentOS release 5.5 (Final)
Kernel 2.6.18-194.26.1.el5 on an x86_64

wwwhogehoge.sakura.ne.jp login: hogehoge
Password:
Last login: Fri Apr  1 00:00:00 from hogehoge.hoge.hoge.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[hogehoge@xxx ~]$ cd .ssh
[hogehoge@xxx .ssh]$ cat id_rsa.pub >> authorized_keys
[hogehoge@xxx .ssh]$ chmod 600 authorized_keys

MacBookから接続確認

MacBookからターミナルで接続してみる。sakuraにはサーバーのIPとかドメインを入れる。初回はRSA鍵を作成した時のパスワード(パスフレーズ)を入力しろと言われるけど、二回目からは入力無しで繋がる。

macbook:~ hoge$ ssh hogehoge@sakura //RSA鍵を作成した時のパスワード入力を促される
Identity added: ~/.ssh/id_dsa (~/.ssh/id_dsa)
Last login: Fri Apr  1 00:00:00 from hogehoge.hoge.hoge.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[hogehoge@xxx root]$ exit
logout

Connection to hogehoge.hoge.hoge.ne.jp closed.

macbook:~ hoge$ ssh hogehoge@sakura //そのまま VPS サーバ内へ移動するはず
Last login: Fri Apr  1 00:00:00 from hogehoge.hoge.hoge.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[hogehoge@xxx ~]$

 

Apacheのインストール

インストールされてるか確認

$ rpm -qa httpd

入ってないので、インストールする。

$ sudo yum -y install httpd

インストールされたか以下のコマンドで確認

$ rpm -qa httpd
$ httpd -v

Apacheの初期設定をする

yum でインストールした場合は自動的に apache というユーザーが作成されている。

$ cat /etc/passwd | grep apache
apache:x:48:48:Apache:/var/www:/sbin/nologin

シェルに /sbin/nologin (稼働専用)となっているので、このユーザをそのまま使用する。

httpd.confのバックアップをとる

$ sudo cp /etc/httpd/conf/httpd.conf $HOME

viでhttpd.confを開き編集する

$ sudo vi /etc/httpd/conf/httpd.conf
1: 44行目のWeb サーバーにアクセスしたクライアントに返す情報を変更する

デフォルトだとhttpレスポンスヘッダにOSの情報が載ることになるので、ハッカーに余計な情報を与えないように
「OS」になっている部分を「Prod」に変える。
これでレスポンスヘッダには Server: Apache しか返らない。

ServerTokens OS
2: 251行目の障害発生時にユーザへ表示する連絡先メアドを適当なアドレスに変更する
ServerAdmin root@localhost
3: 265行目のサーバー名を変更

「#」を外してコメントアウト解除し、サーバーのホスト名を書く。
DNS に登録していないなら IP アドレスを指定。

#ServerName www.example.com:80
4: 320行目のオプション設定を変更

Indexsが設定されていると、もしユーザーがページを開いた時にindex.htmlがなければファイル一覧ページが自動生成されてしまい、ハッカーにファイル構成が知られてしまうので、無効にする。

「Indexes」の前に「-」を加える

Options Indexes FollowSymLinks
5: 524行目のエラーページなどに出力されるサーバー情報を変更

これも情報を与えすぎない様に「Off」にしておく。

ServerSignature On

以上変更したら保存し、設定に問題ないか確認。

$ sudo apachectl configtest
Syntax OK

Apacheを起動する

$ sudo service httpd start
httpd を起動中:                                            [  OK  ]

Apacheを起動する

$ sudo service httpd start
httpd を起動中:                                            [  OK  ]

サイトにアクセスしてテストページが表示されればOK。

最後にOS起動時にApacheも自動で起動されるようにする。

$ sudo chkconfig httpd on
$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQLをインストールする

$ sudo yum -y install mysql-server

インストールされたか確認する。

$ rpm -qa mysql-server
mysql-server-5.1.71-1.el6.x86_64

文字コードを設定する

UTF-8にする。

my.cnfファイルをHOMEディレクトリにバックアップしてから、
元ファイルを開く。

$ cd $HOME
$ cp /etc/my.cnf .
$ sudo vi /etc/my.cnf

以下のように記述

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# character-set
default-character-set=utf8
skip-character-set-client-handshake

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8
"/etc/my.cnf" 23L, 446C

保存する。

自動起動にする

Apacheと同じくOS起動時に自動起動するように設定する。

$ sudo chkconfig mysqld on
$ chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQLを起動する

$ sudo /etc/rc.d/init.d/mysqld start

rootユーザにパスワードを設定する

データベース操作の全権限を持っているrootユーザにパスワードを設定する

$ sudo mysqladmin -u root password パスワード

rootユーザでログインする

$ mysql -u root -p

PHPをインストールする

画像合成などに使えるgdやpearなどのライブラリもインストールしておく。

sudo yum -y install php php-mbstring php-mcrypt php-mysql php-pear php-gd

php.iniを編集

タイムゾーンを日本時間にする

下記に変える

date.timezone = “Asia/Tokyo”

GRANT構文の実行権限をもつユーザを作成 

mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

DB 作成 

文字コードを設定してDBを作成 

mysql> CREATE DATABASE データベース名 CHARACTER SET utf8;