勉強したことのメモ

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
yumで既にインストールされているか確認する

新しくインストールする前に既に入っているか どうか確認したかった。 yum li ...

images
WordPressでメモリを節約しつつ高速化する設定方法

メモリ1GのVPSを借りてWordpress以外にも、ちょいちょいものを置いてい ...

images
VPSで決めた時間に自動でreboot(再起動)させる方法

VPSを常時起動させてると、どうもapache(httpd)がメモリを離してくれ ...

images
VPSとクラウドの違い

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

other
ServerQueenのVPSプランが非常に安いみたい

今のところ、スペックとかはあまりこだわらずに、値段だけでVPSを選ぶ際はDTIの ...

images
linuxのシェルスクリプト

とあるサイトで自動更新で随時データベースにデータが挿入されるという機能があった。 ...

images
pearのインストール状況を確認

pearがインストールされているのかどうか調べたかった。 pear versio ...

images
WordPress Popular Postsのサムネイルが表示されない

WordPressの人気記事を表示させるWordPress Popular Po ...

images
Sysstat Graphical Viewerにロードアベレージを追加

sysstatの各種情報をグラフ表示するSysstat Graphical Vi ...

msyql-image
MySQLが起動も再起動もできない

サイトで障害が発生した。FTPやSSH接続は出来るけどサイト自体は表示されない。 ...