さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える
2014/09/08
さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える
■環境
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:MySQLとphpMyAdminのインストール
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ライブラリ導入
関連記事
ServersManのVPSにRuby on Railsを導入する方法
Ruby on Railsを導入した際のメモ。Cens OSのバージョンは6.3 ...
DTIのServersMan@VPSでデータが全て消えた
2015/09/03の17時頃からDTIのServersMan@VPSで障害が発 ...
ConoHaのVPSの使用感について
ConoHaのVPSを試しに使ってみたので使用感をメモ。使用したプランはメモリ5 ...
DTIからKAGOYAのVPSに引っ越した際の作業内容と上手くいかなかった点をメモ
DTIのServersMan@VPSからKAGOYAのVPS(KVM)へ引越し作 ...
KAGOYA(OpenVZ)のVPSの使用感について
KAGOYAのVPSを試しに使ってみたので使用感をメモ。使用したプランはOpen ...