FeaturedImage

CentOS8でWebサーバーを建てる

概要

さくらのVPSにWebサーバーを建てた備忘録です。最終的にはWordpressを利用したwebサーバーにしますが、ちょっと長いのでWordpressの導入は次回パートに書き記します。

今回やりたいことはwebサーバーを建て、WinSCPなどのSFTPクライアントを使ってサーバーにファイルをアップロードできるようにすることです。

やること

  • Apacheをインストールする
  • ポートを開放する
  • SFTPでファイルをサーバーへアップロードする
Sponsored Link

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を導入します。