CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
Vultr仮想サーバーの一般的な使用法は、Wordpress Webサイトをホストすることです。このガイドでは、仮想サーバーの構成を最初から自動化し(Ansibleを使用)、複数の独立したWordpress Webサイトを展開する方法(Webmin / Virtualminを使用)について説明します。Virtualmin / Webminは、同じマシン上での複数の仮想サーバーアカウントの展開を管理できるグラフィカルユーザーインターフェイスです(LAMP / LEMPスタックを完備)。VirtualminはcPanelとPleskに非常に似ており、このチュートリアルでは無料のGPLエディションを使用します。Vultrサーバーの初期セットアップとVirtualminのインストール後、Virtualminインターフェイス内から複数の仮想サーバーを非常に迅速にセットアップし、独自のドメイン名を使用してWordpressをその仮想サーバーに直接インストールできます。
このチュートリアルでは、コマンドの長いリストを手動で入力する代わりに、Ansibleを使用します。Ansibleは、サーバータスクを確実かつ繰り返し自動化できるpythonベースの自動化ツールです。つまり、このチュートリアルを実行すると、いくつかのコマンドを使用するだけで、同じ方法で別のサーバーをデプロイできるようになります。
ローカルマシンまたは別のサーバーにAnsibleをインストールします。
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansibleは、SSH経由でサーバーにログインすることで機能します。SSHアクセスは、パスワードではなくキーを使用する場合に最も安全です。まず、公開鍵と秘密鍵のペアを生成しましょう。
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
ではssh_keys
、ディレクトリ今は二つのファイルも、だろうssh_keys
とssh_keys.pub
。ssh_keys
は秘密鍵ファイルであり、安全に保管する必要があります。ssh_keys.pub
これで、公開鍵を含むを開くことができます。
Vultr Webダッシュボードにログインし、をクリックしますDeploy New Server
。
地域、サーバーの種類(Ubuntu 16.04)、サーバーのサイズを選択し、パート6(SSH keys
)でをクリックしますAdd New
。次のページで、公開鍵を貼り付けて名前を付け、[]をクリックしますAdd SSH key
。最後に、キーが選択されていることを確認して、をクリックしますDeploy now
。
サーバーのデプロイが完了すると、そのIPアドレスが表示されます。ドメイン名のDNSサーバーにログインして、このアドレスを指定する必要があります。
Ansibleのオートメーションファイルはと呼ばれroles
ます。最初に、ディレクトリ構造(ansible
手順1で作成したディレクトリ内)と基本ファイルをセットアップします。
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
hosts
ファイルを編集して次の内容を含め、ip address
作成したサーバーの代わりにを使用します。Ansibleでは、Ubuntu 16.04にデフォルトでインストールされていないpython 2を使用しています。hosts
ファイルでは、Python 3を使用するようにAnsibleに指示しています。
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
deploy.yml
ファイルを編集して、以下を含めます。root
ユーザーを使用します。
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
/group_vars/all
ファイルを編集して、以下を含めます。これらの変数は、SSHキーの場所、スワップファイルのパラメーター、完全修飾ドメイン名、ルートパスワードをAnsibleに通知します。ファイルにはパスワードがクリアテキストで含まれているため、ファイルをソース管理に含めないでください。
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
common/handlers/main.yml
ファイルを編集して、以下を含めます。
- name: restart sshd
service: name=ssh state=restarted
Ansible自動化をタスクに分解すると、理解が容易になります。プロセスの各タスクのファイルを作成しましょう。
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
は、Ansibleコマンドを含む各ファイルを指す必要があるため、以下を含むように編集します。
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
新しいサーバーを設定する最初のステップは、リポジトリキャッシュを更新してタイムゾーンを設定することです。common/handlers/setup.yml
ファイルを編集して、以下を含めます。
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
ここで、rootユーザーにパスワード(virtualmin Webインターフェースにアクセスする必要があります)を指定しますが、SSHを介したパスワードログインを無効にします(より安全なキー認証方式を使用しているため)。users.yml
以下を含むように編集します。
- name: Change passwd
user: name=root password={{ new_password | password_hash('sha512') }} update_password=always
- name: Disable SSH password login
lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
セキュリティのために、ファイアウォールが必要です。複雑でないファイアウォールを使用して、ポート22
でのSSHアクセス、ポートでのWebアクセス、ポート80
での安全なWebアクセスを許可します443
。ufw.yml
ファイルを編集して、以下を含めます。
- name: Set default firewall policy to deny all
become: True
ufw: state=enabled direction=incoming policy=deny
tags: firewall
- name: enable SSH in firewall
ufw: rule=allow port=22
sudo: yes
- name: enable HTTP connections for web server
ufw: rule=allow port=80
sudo: yes
- name: enable HTTPS connections for web server
ufw: rule=allow port=443
sudo: yes
- name: enable firewall
ufw: state=enabled
sudo: yes
オプションで、スワップファイルを含めることができます。これは、メモリ不足によるクラッシュを回避するために、サーバーのRAMが2GB未満の場合に不可欠です。swap.yml
以下を含むように編集します。
- name: Set swap_file variable
set_fact:
swap_file: "{{swap_file_path}}"
tags:
- swap.set.file.path
- name: Check if swap file exists
stat:
path: "{{swap_file}}"
register: swap_file_check
tags:
- swap.file.check
- name: Create swap file
command: fallocate -l {{swap_file_size}} {{swap_file}}
when: not swap_file_check.stat.exists
tags:
- swap.file.create
- name: Change swap file permissions
file: path="{{swap_file}}"
owner=root
group=root
mode=0600
tags:
- swap.file.permissions
- name: Format swap file
sudo: yes
command: "mkswap {{swap_file}}"
when: not swap_file_check.stat.exists
tags:
- swap.file.mkswap
- name: Write swap entry in fstab
mount: name=none
src={{swap_file}}
fstype=swap
opts=sw
passno=0
dump=0
state=present
tags:
- swap.fstab
- name: Turn on swap
sudo: yes
command: swapon -a
when: not swap_file_check.stat.exists
tags:
- swap.turn.on
- name: Set swappiness
sudo: yes
sysctl:
name: vm.swappiness
value: "{{swappiness}}"
tags:
- swap.set.swappiness
Virtualminには、Ansibleでダウンロードして実行できる独自のインストーラーファイルがあります。ここでは、最小インストール(LINK
)を使用しています。追加の項目は、Virtualminによるインストール時に設定されないMySQLサーバーのパスワードを設定することです。パスワードを変更する前に、MySQLを一時的に停止して認証ディレクトリを追加する必要があります。virtualmin.yml
以下を含むように編集します。
- name: download virtualmin install script
get_url: >
url=http://software.virtualmin.com/gpl/scripts/install.sh
dest=/root/install.sh
mode=0755
- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
tags: non-idem
shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
args:
chdir: /root
- name: temp stop mysql
service:
name: mysql
state: stopped
- name: change owner (and group) of mysqld dir
file:
path: "/var/run/mysqld"
state: directory
owner: mysql
group: mysql
- name: virtualmin set mysql password
shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}
- name: restart mysql
service:
name: mysql
state: started
Ansibleロールが完了し、デプロイする準備が整いました。
ansibleフォルダーから、次のコマンドを実行するだけで、Ansibleが自動的に作成したすべてのタスクを実行します。初めて接続すると、SSHキーの警告が表示さyes
れます。プロンプトに「」と入力するだけです。
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
別のサーバーを使用したい場合は、hostsファイルのIPアドレスを変更し、そのコマンドを再度実行して、まったく同じ設定を完了することができます。
インストールが完了し、https://192.0.2.1:10000
(サーバーのIPアドレスを使用して)移動できるようになりました。証明書は自己署名されているため、ブラウザーはセキュリティ警告を発行するので、をクリックadvanced
して例外を追加します。ログインページが表示されます。ユーザー名はroot
で、パスワードはgroup_vars/all
手順3でファイルに入力したものです。Virtualminを初めて入力すると、インストール後のウィザードが表示されます。これらの設定を手動で実行するか、クリックcancel
してデフォルトを受け入れることができます。
最初のWordpressサーバーを起動して実行するには、Virtualminダッシュ��ードでをクリックしますCreate Virtual Server
。ドメイン名、説明、管理者パスワードを入力する必要があります。ドメイン名はVirtualminの完全修飾ドメイン名とは異なる必要があり、DNSレコードがサーバーのIPアドレスを指すようにする必要があります。
をクリックしCreate Server
ます。Virtualminがサーバーの作成を完了したらInstall Scripts
、左側のメニューをクリックします。を選択してWordpress
をクリックShow install options
し、次のページでWordpressのインストール場所を選択します。を選択してAt top level
をクリックするだけInstall Now
です。
それがあなたがする必要があるすべてです-あなたはhttp://example.net/wp-admin/install.php
(example.net
この仮想サーバーのドメイン名はどこですか)にアクセスすることでWordpressのインストールを完了することができます。DNSレコードがまだServices > Preview Website
反映されていない場合は、Virtualminメニューから移動できます。
この手順を複数回繰り返して、すべて同じVultrサーバー上に複数のWordpressサイトを作成できます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。