#centos7でwebサーバー構築
環境構築というものは面倒くさくて時間がかかるので、構築手順をまとめました。いちいち他のユーザーに切り替えるのは面倒なので、すべてrootでログインしてから実行します。ちなみに、1つのネットワークに1つのサーバーを構築します。複数のサーバーを構築したいときはDNSサーバーを用意しますが、それはまた別のお話。。。いつか、まとめを書きます。
#webサーバー構築に必要なもの
1.pcとos(centos7-minimal)
2.apache...webを動作させる為に必要なソフト
3.ssh...外部からアクセス(htmlファイルの編集など)するため
4.ファイアーウォール
5.ドメイン
6.やる気
centos7のインストールの際にはネットに繋げておきましょう
centos7のインストール方法
#パッケージのインストール
apacheはhttpd,sshはopenssh-serverというパッケージをダウンロードして使います。ファイアーウォールはもともとダウンロードされているのでコマンドを打つ必要はありません。また、-yは無くても構いませんが後々面倒なので打っておいたほうがいいでしょう(後で"ほんまにダウンロードすんの?えぇ!?"みたいなこと言われるので)。
yum install -y httpd
yum install -y openssh-server
#ファイアーウォールの設定
apacheは80番、sshは22番のポートを使用するので、ファイアーウォールでそれらのポートと外部の通信を許可する必要があります。
systemctl start firewalld
上記のコマンドを実行してから以下のコマンド(firewall-cmd --list-all)で通信が許可されているポートと許可されたサービスを確認できます(それぞれports:とservices:)
[root@localhost ~]firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: wlp1s0
sources:
services: ssh dhcpv6-client
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
これで確認してから、80番、22番のポートとhttp(80番を使用)のサービスを追加します。もし、sshが表示されなかったらssh(22番を使用)も追加します。これらは、永続的な変更を行いたいので、--permanentを最後に記述します。ポートやサービスを停止させたい場合はaddをremoveに変更してください。
*変更に成功するとsuccessと表示されます。
firewall-cmd --add-port=***/tcp --permanent
firewall-cmd --add-port=80/tcp --permanent
***にはポート番号、tcpと記述されているところはプロトコルを指定します。httpとsshはすべてtcpで通信が行われます。
firewall-cmd --add-service=servicename --permanent
firewall-cmd --add-service=http --permanent
servicenameにはhttpやsshといったサービスの名前を記述してください。
systemctl restart firewalld
以上で、各々のサービスが外部と通信できるようになりました。
#sshの設定
ふぅ、疲れたのでこちらをご参照ください。そのままやればいいです。ユーザーはインストール時に作成していると思うので、それを使えばいいと思います。
CentOS7.3でSSH接続(パスワード認証)する方法
##ssh通信で、/var/www/html内のファイルを編集できるようにする
最初はパーミッションの関係で、/var/www/html下のファイルの編集ができませんでした。そこで/var/www/htmlを"sshの設定"で使用したユーザーのものに設定します。
chown username /var/www/html
これで、apacheがデフォルトで参照するディレクトリがssh通信で他のpcから変更できるようになりました。無論usernameにはユーザーの名前を入力してください。
##ssh通信でファイルをアップロード
ファイルまたはディレクトリのコピーをアップロードするにはscpコマンドを使用します。
scp [オプション] [転送したいもののパス] ssh_username@ipaddress:[転送先のパス]
ファイル転送の際はオプションを指定しません。ディレクトリの際は-rオプションを渡します。ipaddressとありますが、ドメインを指定することもできます。ssh_usernameはsshで使うアカウントです。例えば、pipiというアカウントでwww.example.comに./index.htmlを/var/www/html/にアップロードするときは,
scp ./index.html pipi@www.example.com:/var/www/html/
同じネットワーク内にあるとき(同じルーターに接続しているとき)はwww.example.comにローカルipaddressを指定しましょう。
ダウンロードする場合はこんなかんじ。ここでもipaddressにはサーバーのipaddressまたはドメインを指定しましょう。
scp [オプション] ssh_username@ipaddress:[転送元のパス(サーバー)] [転送先のパス(自分のパソコン)]
#ルーターの設定
ルーターで、外部からの22番と80番のポートにアクセスがあればサーバーに処理が届くように設定しておいてください(静的ipマスカレードの設定)。以下のサイトをご参照ください。
buffaloのルーターを使用中の方
softbankのルーターを使用中の方
ソフトバンクの方は少しデータが古いことを確認しています。静的ipマスカレードの設定は"ルーター機能の設定/ポート転送設定"で行ってください。(上記のサイトを参照,WAN側ポート番号とLAN側ポート番号は80などの必要なポート番号をすべての欄に入力してください。)
↑こんなかんじ
#ドメインの設定
皆さんのドメインのネームサーバーを設定しておいてください。(ドメインを取得したサイトでdnsサーバーの設定ができます。ddnsの設定もしておきましょう。)また、 whoisで個人情報が確認されないように設定しておきましょう。このへんは自身でお調べください。
こちらのサイトは参考程度に御覧ください。
・独自ドメイン取得 DNS情報設定
http://centos.server-manual.com/centos7_domain_value-domain.html
・ダイナミックDNS取得 DNS情報設定
http://centos.server-manual.com/centos7_domain_no-ip.html
#ホストネームの変更
インストールの時に設定していたらいいのですが、変更されていないとき
[root@localhost ~]#
となっているときは、/etc/hostnameにアクセスしてlocalhostという記述を消してから自分のドメインを入力して再起動するとホストネームが適用されます。
#最後に
systemctl start servicename
systemctl enable servicename
servicenameにはhttpd(apache),sshd(ssh),firewalldを指定します。(1つ1つ実行ましょう)また、startの部分に、"restart(再起動)"、"stop(停止)"も指定することができます。
あとは、他のコンピューターでアクセスしてみてください。
こんな画面が表示されると成功です。
同じLanの中の携帯やpcからはドメイン名ではアクセスできないため、以下のようにローカルipで検索する
http://192.167.3.6
または、携帯は4Gにする。pc(linux)は/etc/hostsに
local_ipaddress domain
192.167.3.6 www.example.com
というように入力するとドメイン名でアクセスできるようになります。
http://www.example.com
↑こんなかんじで検索
*ちなみに、macでは書き換えができないので、前者の方法をおすすめします。linuxのときもrootなってからアクセスしましょう。
#参考
・CentOS7でfirewalld(ファイアウォール)の設定。firewall-cmd –list-allでports(ポート番号)の指定をお忘れなく!
https://e-yota.com/webservice/post-2563/
・Linux(CentOS7)でSSHを利用する。
https://qiita.com/sango/items/816136188387221f05b3
・外部から自宅サーバー(web)にアクセスできるようにする手順
http://terakonya.sarm.net/wordpress/2011/02/22/accesswebserver/
・linux のコンソール画面でパワーセーブを無効にする方法
https://www.sssg.org/blogs/naoya/archives/702
・CentOS 7でノートPCを閉じてもスリープさせない方法
https://mseeeen.msen.jp/how-to-avoid-sleep-on-pc-closing-with-centos-7/
#シリーズ一覧