CentOS8でWebサーバーを建てる
概要
さくらのVPSにWebサーバーを建てた備忘録です。最終的にはWordpressを利用したwebサーバーにしますが、ちょっと長いのでWordpressの導入は次回パートに書き記します。
今回やりたいことはwebサーバーを建て、WinSCPなどのSFTPクライアントを使ってサーバーにファイルをアップロードできるようにすることです。
やること
- Apacheをインストールする
- ポートを開放する
- SFTPでファイルをサーバーへアップロードする
Apacheをインストールする
dnfコマンドでhttpサーバーapacheをインストールします。CentOSのデフォルトhttpサーバーはapacheですので、httpdはapacheを指します。
dnf install httpd
Total download size: 2.3 M
Installed size: 6.6 M
Is this ok [y/N]: y
...
Complete!
たったこれだけでhttpサーバーのインストールは完了です。
Apacheのインストールを終えたので起動します。
systemctl start httpd
ポートを開放する
ファイアウォールの設定を変更し、HTTP通信及びHTTPS通信を許可します。それぞれのポート番号は以下の通りです。
- 80/tcp HTTP
- 443/tcp HTTPS
ポート番号を直接指定するか、サービス名を指定することでもポートを開放することができます。
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent
ファイアウォールサービスを再起動して設定を適用します。
systemctl restart firewalld
以上でWebサーバーが使用できる状態になりました。
SFTPでファイルをサーバーへアップロードする
作業ユーザーの作成
SFTPクライアントで使う作業ユーザーを作成します。ユーザー名は適当に付けます。
useradd webftp
passwd webftp
changing password for user webftp.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
htmlディレクトリの権限を変更する
先ほど作った作業ユーザー(webftp)でファイルをアップロードしようとすると権限がないためエラーが出ます。サーバーへファイルをアップロードする行為は”write”行為なので、権限がないユーザー(webftp)ではファイルをアップロードすることができません。このエラーはhtmlディレクトリにwebftpで書き込みできる権限を与えることで解消します。
また、wordpressなどのCMSの管理画面からファイルをアップロードしたりする行為も”write”にあたります。CMSの管理画面経由ではApacheのユーザーである”apache”でファイルを書き込むことになりますので、こちらにもwrite権限を与えます。(CMSを使うつもりがないのならapacheに権限を与える必要はありません。)
つまり、webftpとapacheのどちらのユーザーでもファイルを書き込める権限が必要になりますね。
まずはhtmlディレクトリの所有者をapacheに、所有グループをwebftpにします。そして、htmlディレクトリの所有者と所有グループの両方にwrite権限を与えます。
chown apache:webftp html
chmod 775 html
lsコマンドを使って権限を確認します。
ls -l
drwxrwxr-x. 2 apache webcat 6 Dec 24 05:47 html
これでサーバーへファイルをアップロードすることができるようになりました。
htmlファイルをアップロードすれば静的サイトを作成できますね。次回はwordpressを導入します。