勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える

      2014/09/08

さくらVPSでLAMP環境とphpMyAdminFTP接続環境を整える

■環境
windows7 64bit
Tera Term4.80
さくらVPS HDDプラン 1G

--------

1:rootパスワードの変更とユーザーの作成
Tera Tarmでログインして、

passwd

を入力。新しいパスワードと再入力を行って変更完了。
安易なパスワードだと「BAD PASSWORD」云々と言われるけど、
設定は可能。

次にユーザーの作成。
ここではユーザー名を仮にhogeuserとする。

useradd -d /hogeuser -G wheel hogeuser
passwd hogeuser

どちらも入力すると先ほどみたいにパスワードを
2回聞かれるので入力する。

visudo

を入力し、

 

##Allows people in group wheel to run all comma
#wheel ALL=(ALL) ALL

の#wheel ALL=(ALL) ALLのコメントアウト部分(#)を削除する。
削除するにあたっては、
/(スラッシュ)wheelで検索が出来る。

xキーで削除もできるしiかinsertキー押してから
backspaceもしくはdeleteキーで消せる。

画面を抜けるときはEscキーを押してから
:wqで保存の上終了ができる。
間違えた時とかは:qで保存せず終了。

teratarmのSSH接続から抜けたい場合は
exitと入力すれば抜けられる。

useraddはユーザーの生成、

-d /hogeuserはホームディレクトリを指定?

-G wheel hogeuserはhogeuserをwheelグループに入れて、
visudoでsudoの設定ファイル(sudores)を開き、
wheelグループに実行権限を付与?

--------

2:セキュリティ設定

sudo vi /etc/ssh/sshd_config

と入力し、

#Port 22

になっているところのコメントアウトを外して
適当な番号にする。

wikiみた感じ49152–65535の範囲内が良さそう?
http://ja.wikipedia.org/wiki/TCP%E3%82%84UDP%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7

もう一点、

PermitRootLogin yes→PermitRootLogin no

にしてrootからのログインを拒否。
Escキー押してコマンドモードに戻って
:wqで保存して終了。

sudo /etc/rc.d/init.d/sshd restart

sshを再起動させる。
再起動させないと反映されないみたい。

あとrc.dとかinit.dとかあんまり見慣れないフォルダやなと
思って調べると、

Linuxのシステムサービスの起動を制御する場合は、
/etc/rc.d/init.d内にスクリプトを作成して行ないます。」

と、そういうものらしい。

■参考サイト
http://www015.upp.so-net.ne.jp/unixlife/linux/boot-rcd.html

次にiptablesの設定。ファイアウォールのことらしい。

sudo vi /etc/sysconfig/iptables

で設定ファイルを開き、

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, FTP1, FTP2, WEBMIN
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport ここにSSHのポート番号入れる -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

を書き込む。ポート番号を忘れず入れる。
入れ方はiかinsertキー押してから、右クリックして貼り付け。
Escキー押して:wqで保存して抜ける。

sudo /etc/rc.d/init.d/iptables restart

でiptablesを再起動する。

--------

3:Apacheのインストールと設定

yumでApacheのインストール。

sudo yum install httpd

完了したらApacheを自動起動にする。

sudo /sbin/chkconfig httpd on

viで設定ファイルを編集。

sudo vi /etc/httpd/conf/httpd.conf

編集内容とその意味を調べたのでメモ。

・OSの表示をなくす。
ServerTokens OS→ServerTokens Prod

・ネットワーク上で、接続が有効であることを確認するために
 定期的に行われる通信。on/offには諸説あるみたい。
KeepAlive Off→KeepAlive On

・名前ベースの仮想ホストの設定
ServerName www.example.com:80→ServerName *:80

・ファイルの一覧を表示させないようにする?
Options Indexes FollowSymLinks→Options FollowSymLinks

・htaccessの下位ディレクトリに対する扱い? ちょっとよく分からなかった。
AllowOverride NONE→AllowOverride ALL

・サーバ署名を一切表示しないようにする。
ServerSignature On→ServerSignature Off

書き終わったらApachの起動。

sudo /sbin/service httpd start

この時点でhttp://ipアドレスで表示が確認できる。

--------

4:PHPのインストール

sudo yum install php-devel

でインストール。

--------

5:MySQLphpMyAdminのインストール

sudo yum install mysql-server

MySQLのインストールし、

sudo /sbin/chkconfig mysqld on
sudo /etc/rc.d/init.d/mysqld start

起動と常駐。

mysql_secure_installation

と入れることで初期設定が行える。
下記ページが詳しかった。

http://lightly.wjg.jp/wiki/858

とりあえずパスワードだけちゃんと入れる。

$ mysql -u root -p

でパスワードが聞かれるのでrootのパスワードを入力。

GRANT ALL PRIVILEGES ON *.* TO ここにユーザー名 IDENTIFIED BY 'ここにパス';

でユーザーを作成できる。

exitでMySQLを抜けて、

sudo vi /etc/my.cnf

で設定ファイルを開く。
既に何か書かれているので、下記を追記する形で書く。
eucとかでいく場合はその旨書く。

[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8

:wqで抜けて、MySQLを再起動させる。

sudo /etc/init.d/mysqld restart

yumでphpMyAdminをインストール。

sudo yum install phpmyadmin

設定ファイルを開く。

sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

下記を追記する。

Order allow,deny
Allow from all

■詳しくはこちら参照
http://www.koikikukan.com/archives/2013/05/24-011111.php

この時点でhttp://IPアドレス/phpmyadmin/で開くはず。
ベーシック認証は作成したアカウントID/PASSで入れた。

--------

6:FTPサーバーのインストール

sudo yum install vsftpd

でインストールし、

sudo vi /etc/vsftpd/vsftpd.conf

で設定ファイルを開く。

変更及び追記内容は下記。

↓↓変更。

・匿名(anonymous)ログインを拒否する。
anonymous_enable=YES→anonymous_enable=NO

・ASCII モードでのアップロード/ダウンロードを許可
ascii_upload_enable=NO→ascii_upload_enable=YES
ascii_download_enable=NO→ascii_download_enable=YES

・サブフォルダ以下まとめてアップ・ダウンロードさせる
ls_recurse_enable=NO→ls_recurse_enable=YES

↓↓追記。

・更新時刻を日本時間にする。
use_localtime=YES

・ホームディレクトリの設定
local_root=/var/www/html

・dot files をデフォルトで見えるようにする
force_dot_files=YES

vsftpdを起動し、常駐させる。
sudo /etc/init.d/vsftpd start
sudo /sbin/chkconfig vsftpd on

このままだとドキュメントルートにファイルを
アップできないので、作成したユーザーに所有権を変更。

sudo chown hogeuser /var/www/html

■参考
http://e-class.jp/modules/smartsection/item.php?itemid=47

--------

・その他やりたい事
phpmyadminにIP制限
PEAR等のPHPライブラリ導入

■参考サイト
http://blog.aroundit.net/vps-lamp/

 - VPS, サーバー

  関連記事

images
サーバのメモリやロードアベレージが変に上がっていた

PVやリアルタイムのアクティブユーザーはあまり変わらないのに、以前よりメモリ使用 ...

images
VPSとクラウドの違い

会社でAWSの話になって、そういえば クラウドとVPSって同じじゃないの? 違う ...

images
海外IPの制限

海外IPの制限を行ったので手順のメモ。 まず「サーバー立てたらすぐ攻撃が来る」と ...

images
FTP接続のIP制限を解除する(hosts.allow)

とあるサーバーにて「FTP接続のIP制限を解除してほしい」と言われた。自身が設定 ...

images
suとsu -の違い

スーパーユーザーになる際にsuだけ打っていたけど su -の方がいろいろ出来るか ...

images
CentOSでPHPを5.5から5.3にバージョンダウンする方法

事情があってVPSに入れているPHPを5.5系から5.3系にバージョンダウンした ...

images
サーバのホストネーム(hostname)を確認する

「そのサーバのホストネーム調べて」と言われて 調べ方が分からなかったのでメモ。 ...

images
APCの導入。pecl install apcで入らなかったのでyumで導入。

APC入れたらPHPのメモリ消費を抑えられるというのを見たので導入。 調べながら ...

images
PHP5.4系でAPCが上手く動かなかったので5.5にアップデート&Zend OPcache導入

PHP5.3系から5.4系にアップデートしてから、WordPressがちょっと重 ...

images
お手軽に負荷分散(DNSラウンドロビン)を行う方法

サーバ設定か何かの記事を見ていて「DNSラウンドロビン」という聞いたことのない言 ...