サーバー上でウェブサイトをホストするには、自分で手を汚し、環境全体を自分で設定する必要があります。以下に、実行中の仮想プライベートサーバーを使用して物事を成し遂げる方法の一般的な例を示します Ubuntu 18.04
つまり、次のことを行う必要があります。
-
- サーバーの初期セットアップを実行する
- DNSゾーンを設定してドメインをポイントする
- ソフトウェアスタックをインストールする
- 仮想ホストを作成する
- ウェブサイトを稼働させる
追伸これらの複雑な手順を実行したくない場合は、Webホスティングを取得することを検討してください.
Contents
1.サーバーの最初のセットアップ手順
専用サーバーまたはVPSをレンタルする場合は、最初に強固な基盤を築く必要があります。これには、ターミナルまたはSSHクライアントを介してサーバーにアクセスし、セキュリティの調整と更新を行うことが含まれます.
サーバーに接続する
まず、サーバーに接続します。次のコマンドでトリックを実行します。
ssh [メール保護] _server_IP -port
初めて接続するときに、サーバーIPを既知のホストのリストに追加するように求められる場合があります。入力する はい 続行すると、入力するように求められます ルートパスワード.
すべてが正常に行われた場合に画面に表示される例を次に示します.
最新のアップデートを入手する
次のコマンドを実行して、Ubuntu 18.04サーバーの最新の更新を取得します。
sudo apt update
sudo apt upgrade
2番目のコマンドを実行すると、確認画面が表示されます。入力する Y 続行します.
新しいユーザーを作成する
次に、日常的なタスクにrootユーザーを使用することは推奨されていないため、新しいユーザーを追加する必要があります。それをウェブマスターと呼びましょう。ユーザーの作成を開始するには、次のコマンドを実行します。
adduserウェブマスター
パスワードを作成すると、一般的な詳細(空白のままにすることができます)を入力するように求められます。次に、 Y 新しいユーザーの作成を確認する.
デフォルトでは、新しいユーザーには必要なすべてを実行するための十分な権限がないため、手動で追加する必要があります。方法は次のとおりです。
usermod -aG sudoウェブマスター
それでおしまい!新しい管理ユーザーが準備できました。 rootの代わりに使用を開始するには、次を実行:
su –ウェブマスター
公開鍵認証のセットアップ(オプション)
認証にパスワードを使用すると、ブルートフォース攻撃に対して脆弱になり、サーバーを中程度のリスクにさらします(特に、ユニークで強力なパスワードを設定するのが面倒な場合)。.
サーバーの整合性を向上させる優れた方法は、通常のパスワードの代わりにSSHキーを使用することです。実行しているLinuxディストリビューションに関係なく、手順は同じである必要があります。始める ログアウト サーバーの次のコマンドを実行します ローカルコンピュータ 新しい公開鍵を作成するには:
ssh-keygen
追加のパスフレーズと公開鍵を保存する場所の場所を入力するよう求められます。デフォルトでは、すべてを /Users/Your_User/.ssh ディレクトリ(他の計画がない限り、保持できます).
完了したら、次を使用してSSHキーをサーバーにコピーします。
ssh-copy-id [メール保護] _server_IP
念のため、rootユーザーに対しても同じことを行うことができます。
ssh-copy-id [メール保護] _server_IP
最後に、もう一度サーバーにログインする必要があります。今回のみ、SSHキーとそのパスフレーズを使用して認証します。接続が成功するためには公開鍵が必要であるため、誰かがパスワードを推測した場合、そのユーザーはログインできません。.
パスワード認証を無効にする(オプション)
これで、新しく生成されたSSHキーでサーバーにアクセスできるようになったので、通常のパスワード認証を無効にすることをお勧めします。これを行うには、 ナノ テキストエディタ:
sudo nano / etc / ssh / sshd_config
#PasswordAuthentication yesという行を探して、削除します # そして、 はい に 番号. 最終結果は次のようになります。
これらの変更を保存してnanoエディターを終了するには、 CTRL + X, 入力する Y そして押す 入る. そして最後に、sshdサービスをリロードしてすべてを適用します。
sudo systemctl reload sshd
以上です!パスワードの代わりに公開鍵を使用して認証します。これは、サーバーにアクセスして管理するためのより安全な方法と考えられています.
ファイアウォールを設定する
最後に、重要なことですが、Webに潜む危険から身を守るためにファイアウォールを使用することをお勧めします。複雑でないファイアウォールは、この仕事に最適なツールの1つです。設定するには、次を実行:
sudo apt-get install ufw
ファイアウォールをインストールすると、手動でオンにしない限り機能しません。次のコマンドを使用して有効にできます。
sudo ufw enable
稼働しているかどうかを確認するには、次のコマンドを実行します。
sudo ufw status verbose
2. DNSゾーンを設定する
次の課題は、DNSゾーンを作成することです。DNSゾーンは、ドメイン名とサーバー間のバインディングマテリアルとして機能します。それを2つの小さなステップに分解できます。
- サーバー内にDNSゾーンを設定する
- ドメインレジストラーでのカスタムネームサーバーの作成
新しいDNSゾーンを作成する
新しいDNSゾーンを作成するには、bind9というツールを使用します。結局、これは、IPアドレスではなくドメイン名を使用してWebサイトをロードできるようにするサービスです。.
Ubuntu 18.04サーバーにBind9をインストールするには、次のコマンドを実行します。
sudo apt-get install bind9
インストールすると、すべてのファイルが / etc / bind ディレクトリ。最初にそれに移動しましょう:
cd / etc / bind
すべてを整理して整理するために、DNSゾーン用に別のディレクトリを作成します。
sudo mkdir -pゾーン
ドメインの新しいDNSゾーンファイルを作成してみましょう。使用します domain-example.com デモ用(実際のドメイン名に置き換える必要があります).
sudo nanoゾーン/domain-example.com
DNSゾーンスニペットの例:
;
; domain-example.comのBINDデータファイル
;
$ TTL 3時間
@ IN SOA ns1.domain-example.com。 admin.domain-example.com。 (
1;シリアル
3時間; 3時間後に更新
1時間; 1時間後に再試行
1w; 1週間後に期限切れ
1h); 1日のネガティブキャッシングTTL
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.
domain-example.com。 YOUR_SERVER_IP
YOUR_SERVER_IPのns1
YOUR_SERVER_IPのns2
www IN CNAME domain-example.com.
YOUR_SERVER_IPでメール
CNAME domain-example.comのftp.
domain-example.com。 IN MX 10 domain-example.com.
のすべてのインスタンスを必ず置き換えてください Your_Server_IP そして domain-example.com 実際の値で。を押してゾーンファイルを保存します。 CTRL + X そして入力 Y 変更を確認する.
次に、ローカル構成を編集して、新しく作成したDNSゾーンの場所を指定する必要があります。これにより、サーバーはどのゾーンファイルがどのドメイン名に属しているかを確実に認識できます。.
sudo nano named.conf.local
置換しながら、ファイルの下部にある次の行を貼り付けます domain-example.com あなたの実際のウェブサイトアドレス.
ゾーン "domain-example.com" {
タイプマスター;
ファイル "/etc/bind/zones/domain-example.com";
};
押す CTRL + X そして入力 Y 変更を保存してnanoエディターを終了するには.
次のコマンドを実行して、すべてが正しく追加および構成されているかどうかをテストすることもできます。
sudo named-checkzone domain-example.com /etc/bind/zones/domain-example.com
最後に、次の2つのコマンドを実行してサーバーのDNSサービスを再起動し、サーバーが実行されていることを確認します。
sudo /etc/init.d/bind9 restart
sudo /etc/init.d/bind9 start
この時点で、DNSゾーンはサーバー側から準備できています。確定するには、ドメインレジストラー内にカスタムネームサーバーエントリを作成する必要があります.
ドメインのカスタムネームサーバーを作成する
2つのネームサーバー(ns1.domain-example.com そして ns2.domain-example.com)DNSゾーンの例では、ドメインレジストラーでこれらのエントリを作成して使用する必要があります。.
エントリは次のようになります。
カスタムネームサーバー | に指差す |
ns1.domain-example.com | Your_Server_IP |
ns2.domain-example.com | Your_Server_IP |
作成したら、ドメインにこれらの新しいネームサーバーを指定する必要があります.
3. LAMPスタックをインストールする
LAMPは、Webで最も使用されているソフトウェアスタックの1つです。 Linux、Apache HTTPサーバー、MySQL / MariaDB、PHPの略です。サイトをホストする前に、これらすべての要素がサーバーで利用可能であることを確認する必要があります。次に、Ubuntu 18.04を使用した場合の設定プロセスを示します。
Apache
Apache HTTPサーバーは、サーバーに付属するデフォルトパッケージにすでに含まれている場合があります。そうでない場合は、次を実行します。
sudo apt-get install apache2
ファイアウォールがあるため、Apacheが正常に動作しないため、これらのポートが開いていることを確認する必要があります。ファイアウォールの通過を許可する必要があるものは次のとおりです。
sudo ufwは80 / tcpを許可します
sudo ufwは443 / tcpを許可します
次に、再起動して変更が適用されたことを確認します。
sudo ufw reload
この時点で、以下にアクセスすると表示されるはずです サーバーのIPアドレス ブラウザ経由:
PHP
WordPressに必要ないくつかの追加モジュールを含む最新のPHPバージョンを取得するには、次のコマンドを実行します。
sudo apt-get install php php-common php-mysql php-gd php-cli
次のように入力して、サーバーにインストールされているPHPのバージョンを確認できます。
php -v
MySQL / MariaDB
MariaDBとMySQLは、Linuxでのデータベースサーバーの上位2つの選択肢です。この例では、MariaDBを使用します。サーバーにインストールするには、次のコマンドを実行します。
sudo apt-get install mariadb-server mariadb-client
完了したら、パッケージに付属する追加のスクリプトを使用する必要があります。データベースサーバーの基本的なセキュリティ対策を確立します。次のように入力して開始します。
sudo mysql_secure_installation
最初のステップで、ルートMySQLパスワードを入力するよう求められます。を押す 入る ボタンがまだ作成されていないため、続行します。次に、コマンドラインインターフェースにポップアップ表示される残りの指示に従います.
最後に、次のコマンドを実行して、データベースサーバーが動作しているかどうかを確認できます。
sudo systemctl status mysql
4仮想ホストを作成する
次のタスクは、Webサイトファイル用の専用ディレクトリを作成することです。まず、作業ディレクトリを変更します。
cd / var / www / HTML
このコマンドを使用して、ドメイン用のフォルダーと、その中に追加のフォルダーを作成します。
sudo mkdir -p domain-example.com/public_html
次に、 ウェブマスター 以前に所有者を作成して使用したユーザー:
sudo chown -R webmaster:webmaster domain-example.com/public_html
また、Apacheルートディレクトリに読み取り権限が適用されていることを確認する必要もあります。この場合:
sudo chmod -R 755 / var / www / html /
この時点で、Apacheはすべての設定を 000-default.conf ファイル。このファイルの内容をコピーして、ドメイン名用に別のファイルを作成する必要があります。仮想ホスト構成のテンプレートをコピーする最も簡単な方法は、次のコマンドを使用することです。
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf
基本的に、これは同じディレクトリに別の名前でファイルのコピーを作成します。これは、ドメインのルートディレクトリ、エラーログ、およびその他の重要なパスの場所をApache Webサーバーに通知するファイルです。コンテンツを変更するには、nanoを使用します。
sudo nano /etc/apache2/sites-available/domain-example.com.conf
Apacheの設定例:
#ServerNameディレクティブは、要求スキーム、ホスト名、およびポートを設定します
#サーバーが自身を識別するために使用します。これは作成時に使用されます
#リダイレクトURL。仮想ホストのコンテキストでは、ServerName
#リクエストのHost:ヘッダーに表示する必要があるホスト名を指定します
#この仮想ホストに一致します。デフォルトの仮想ホスト(このファイル)の場合、これ
#値は関係なく最後の手段として使用されるため、決定的ではありません.
#ただし、それ以上の仮想ホストには明示的に設定する必要があります.
ServerAdmin [メール保護]
DocumentRoot /var/www/html/domain-example.com/public_html
ServerName domain-example.com
ServerAlias www.domain-example.com
#利用可能なログレベル:trace8、…、trace1、debug、info、notice、warn,
#エラー、クリティカル、アラート、emerg.
#特定のログレベルを設定することも可能です
#モジュール、例えば.
#LogLevel info ssl:warn
エラーログ$ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.logの組み合わせ
#conf-available /のほとんどの設定ファイルについては、
#グローバルレベルで有効または無効にすると、
#1つの特定の仮想ホストのみの行を含めます。たとえば
#次の行は、このホストのみのCGI構成を有効にします
#グローバルに無効化された後 "a2disconf".
#conf-available / serve-cgi-bin.confを含める
domain-example.comのすべてのインスタンスを実際のドメイン名に置き換えてください。ファイルを保存するには、 CTRL + X 入力して確認します Y. 最終結果は次のようになります。
この時点で、デフォルトの仮想ホスト構成ファイルをオフにして、新しく作成したものを使用する必要があります。このコマンドはそれを無効にします:
sudo a2dissite 000-default.conf
次に、以下に示すように、最近作成した構成ファイルを追加します。
sudo a2ensite domain-example.com.conf
最後に、変更を適用するにはApacheを再起動する必要があります。これを実行するには、次のようにします。
sudo systemctl reload apache2
サーバーにLAMPが正常にインストールされました。ドメインはすでにサーバーを指しているため、DNSが完全に伝達されるまで数時間待つ必要がある場合があります。次に、ブラウザからドメインにアクセスすると、同様の画面が表示されます.
5. WordPressのセットアップ(またはWebサイトのアップロード)
サーバーの初期設定がようやく完了したので、ここでWebサイトをホストします。このセクションでは、WordPressサイトを稼働させる方法の一般的な例を示します。.
新しいMySQLデータベースとユーザーを作成する
端末からMySQLインターフェースにアクセスすることから始めます。
sudo mysql
>次の構文を使用して、新しいデータベースを作成します。
CREATE DATABASE wpdatabase;
次に、新しいユーザーを作成し、パスワードを指定します。
CREATE USER ‘wpuser’ @ ‘localhost’ IDENTIFIED BY ‘SuperSecurePassword123’;
次に、新しく作成したユーザーに管理者権限を割り当てます。
wpdatabase。*にすべての特権を付与します ‘TO’ wpuser ‘@’ localhost ‘;
それでおしまい! MySQLユーザーとデータベースの準備が整いました。インターフェイスをオフにするには、次のように入力します。
出口
WordPressファイルをサーバーに移動する
最後に重要なことですが、ドメインのルートディレクトリに実際のウェブサイトファイルをアップロードする必要があります。ステップバイステップで説明するアプローチは2つあります。
- wgetコマンドを使用して最新のWordPressバージョンを取得する
- FTPクライアント(FileZillaなど)の構成
方法1:コマンドラインツールを使用する
最初の方法は、次のコマンドを使用することです wget. サーバーで使用するには、インストールする必要があります。
sudo apt-get install wget
次に、作業ディレクトリをドメイン名のルートフォルダーに変更します。
cd /var/www/html/domain-example.com/public_html
wgetコマンドを使用して、WebからWordPressの最新バージョンをダウンロードします。
wget https://www.wordpress.org/latest.zip
次に、以下を使用してアーカイブのすべてのコンテンツを抽出します。
unzip latest.zip
デフォルトでは、すべてのファイルが新しいディレクトリに表示されます ワードプレス (これにより、Webサイトが domain-example.com/wordpress)。すべてが正しく機能するためには、すべてのファイルをそのディレクトリから上のディレクトリに移動する必要があります。方法は次のとおりです。
CDワードプレス
次のコマンドは、現在のディレクトリから指定した場所にすべてのファイルを移動します。
sudo mv * /var/www/html/domain-example.com/public_html/
インストールを開始する前に、wp-config.phpファイルを準備する必要があります。サンプルのみ提供していますので。まず、名前を変更します。
sudo mv wp-config-sample.php wp-config.php
次に、nanoを使用してファイルを編集し、MySQLデータベース構成の詳細を追加します。.
sudo nano wp-config.php
必ず更新してください MySQL ユーザー, データベース, そして ホスト 以前に作成した値を持つセクション.
最後に、ブラウザでドメイン名にアクセスすると、WordPressの初期設定画面が表示されます.
完了したら、オールインワンWP移行などの移行プラグインをインストールして、既存のWordPress Webサイトをインポートできます.
方法2:FTPクライアントを使用する
または、FileZillaなどのFTPクライアントを使用することもできます。 SSHキーを設定してパスワード認証を無効にした場合は、通常のユーザー名とパスワードの組み合わせではなく、SSHキーを使用してログインする必要があります。 SFTP接続を構成するには:
- に行く FileZillaサイトマネージャー そして追加する 新しいサイト.
- プロトコルを SFTP – SSHファイル転送プロトコル.
- サーバーIPを ホスト フィールドに設定し、ポートを 22.
- ログインタイプを キーファイル.
- SSHキーへのパスを指定します(例:. /Users/Name/.ssh/id_rsa).
- FileZillaはそれを .PPK ファイルを使用して、接続を確立できます。.
最終的な構成は次のようになります。
これで、FTP経由でサーバーにアクセスし、コンピューターから直接ファイルをアップロードできるようになります。.
おめでとう! Ubuntu 18.04を実行している仮想プライベートサーバーでウェブサイトをホストする方法を学びました。サーバーの初期設定からソフトウェアスタックの準備まで、すべてがカバーされています。あとはサーバーをつかんで手を汚すだけです!
この記事はHostinger.comの助けを借りて公開されました.