前提条件
前回の記事、 さくらのVPSを使ったサーバの初期設定(一般ユーザ作成とrootアクセスの禁止) が終わっていること
Apacheをインストールする
httpサーバ、webサーバと呼ばれるものの大半はイコールこいつである。
yum install httpd #httpサーバをダウンロードする
Is this ok [y/d/N]: #ここでyを入力、Enterを押す。
Complete!が出ればOK.
しゅてぃまる は Apache を てにいれた !
Apache「Apacheは装備していかないと意味がないぜ」
systemctl restart httpd #httpサーバを再起動する
FireWallを無効化する
デフォルトではCentOS7はFWでHTTP通信等は拒否されているらしいので、それを許可に変更する必要がある。
# http通信を許可
firewall-cmd --add-service=http --zone=public --permanent
# https通信を許可
firewall-cmd --add-service=https --zone=public --permanent
success
と出ればOK.これでhttp,httpsの通信を許可する準備ができた。
systemctl restart firewalld
するとなにやら怖い文章が出てくるがそのままrootのパスワードを打ち込む
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
と出てコマンドが入力可能な状態になればOK.
サーバがダウンしたときにHTTPサーバが自動で再起動するようにする
でも、このままではサーバがダウンしたときに再起動を行ってもhttpサーバは死んだままになる。なのでサーバが復旧すると同時にHTTPサーバも復活するように設定を行う。
systemctl enable httpd
先ほどのように警告とrootのパスワードが求められるので入力する。
設定を見返してみよう
下記を入力するとサービスの有無がわかる
アルファベット順に並んでいるのでhttpを探してみよう。enableになっていたらOK.
systemctl list-unit-files -t service
htmlを自分の作ったページに置き換えてみよう
先ほど表示されたページはサーバ内のスタートページだ。そのファイルをWinSCPを使って自作のhtmlファイルに置き換えよう。
WinSCPはダウンロードをしてNEXTを連打していたら使えるようになる。
基本情報としてサーバの一般ユーザとパスワード、SFTP(ssh)のポート番号を指定してやる必要がある。
ログインを押したらパスワードを入力し、接続しよう。
あとはドラッグ&ドロップで投入できるのだが、Permission Deniedとでるはず。
なぜか?
これはファイルの書き込み権限がユーザにないからだ。
一般ユーザが読み書き実行ができるようにする
cd /var/www # var以下のwwwに移動
ls -l # フォルダ内ファイルの詳細情報を見る
上記を実行すると、
drwxr-xr-x 2 root root 6 Jun 27 22:49 html
↑↑↑権限↑↑↑ ↑作成者 ↑グループ ↑ファイル名
という一文がいるはず。
この一文だけでこのファイルの所有者や他人がこのファイルにどれだけ干渉できるかがわかる。
注目すべきは
drwxr-xr-x
の「権限」。
前から3文字ずつが所有者、グループ、他人の権限を表しており、この場合だと
対象ユーザ | 権限 |
---|---|
所有者 | rwx |
グループ | r-x |
他人(others) | r-x |
とわけることができ、それぞれの意味は
文字 | 略なし | 意味 |
---|---|---|
r | read | 読み込み |
w | write | 書き込み |
x | execute | 実行 |
- | - | なし |
となる。 | ||
よって、上記の権限は作成者は全ての権限を持っており、グループと他人は読み込みと実行ができ、書き込みはできないことになる。 |
WinSCPでの処理は書き込みに当たり、一般ユーザには所有者ではなく、rootグループにも属していないため、他人の扱いになっている。
よってhtmlフォルダに一般ユーザでwrite(書き込み)できる権限をつけることで解決できる。
su - #rootユーザに移行
cd /var/www #wwwに移動
chown apache:[一般ユーザ名] html #所有者をapche,グループを[一般ユーザ]に変更
chmod 775 html # htmlフォルダの権限をrwxrwxr-xに変更する
※775はr=4(2^2),w=2(2^1),x=1(2^0)と2進数で表されておりその足し算の数字となる。
変更が終わったら再度WinSCPでアップロードしてみる。

移動できた!
こんな感じでWebページが自分の指定したhtml
ファイルの内容に書き換わった。(ファイル名はindex.htmlじゃないとだめみたい。)