CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
Leanoteは、Golangで書かれたEvernoteに代わる無料で軽量なオープンソースの代替ツールです。Leanoteは、ユーザーエクスペリエンスを念頭に置いて、クロスプラットフォームサポート、MarkDown構文での書き込み、パブリックまたはプライベートブログ、知識の収集と共有、チームコラボレーションなど、実用的な機能を豊富に提供します。
この記事では、CentOS 7サーバーインスタンスでのLeanoteサーバーのセットアップについて説明します。セキュリティ上HTTPS support
の理由から、Let's Encrypt SSL証明書とNginxの使用を有効にすることもカバーされます。
203.0.113.1
ます。leanote
。leanote.example.com
上記のサーバーインスタンスをポイントしているドメイン。新しいVultr CentOS 7サーバーインスタンスを起動するときは、システムがスムーズに動作するように、常にスワップファイルを設定することをお勧めします。たとえば、2048MBサイズのスワップファイルの作成は、2GBのメモリを搭載したマシンに適しています。
sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
注: 別のサーバーサイズを使用している場合は、スワップファイルのサイズを変更する必要があります。
Leanote for 64-bit Linuxシステムの最新の安定リリースをダウンロードして解凍します。
cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
Leanoteの要求に応じて、Leanoteサーバーを正常にセットアップする前に、MongoDB NoSQL DBMSを準備する必要があります。
MongoDB 4.0 YUMリポジトリを次のように作成します。
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
以前に作成したMongoDB 4.0 YUMリポジトリを使用して、すべてのMongoDBコンポーネントとツールをインストールします。
sudo yum install -y mongodb-org
デフォルトでは、MongoDBは27017
作業時にポートを使用しますが、SELinuxがenforcing
CentOS 7マシンのモードにある場合は許可されません。次のコマンドを使用して、現在のSELinuxモードを確認します。
sudo getenforce
Vultr CentOS 7サーバーインスタンスでは、SELinuxはデフォルトで無効になっています。したがって、上記のコマンドの出力は次のようになります。
Disabled
この場合、SELinuxの設定に関する次の手順をスキップして先に進むことができます。
ただし、元のCentOS 7サーバーインスタンスを実行している場合、上記のコマンドの出力はになりますEnforcing
。MongoDBサービスを開始して有効にする前に、以下の3つのオプションのいずれかを実行する必要があります。
オプション1:MongoDBに27017
ポートの使用を許可する
sudo semanage port -a -t mongod_port_t -p tcp 27017
オプション2:SELinuxを無効にする
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo shutdown -r now
オプション3:SELinuxをpermissive
モードに変更する
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo shutdown -r now
MongoDBサービスを開始し、システムの再起動後にサービスを開始します。
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
以下のコマンドを使用して、初期LeanoteデータをMongoDBにインポートします。
rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/
セキュリティ上の理由から、MongoDBサービスが稼働した直後に、MongoDBへのアクセス制御を有効にする必要があります。このためには、ユーザー管理者アカウントとデータベース管理者アカウントの2つ以上のMongoDBユーザーアカウントを作成する必要があります。また、MongoDB構成を変更する必要があります。
MongoDBシェルに入ります。
mongo --host 127.0.0.1:27017
admin
データベースに切り替えます。
use admin
useradmin
パスワードを使用するという名前のユーザー管理者を作成しますuseradminpassword
。
db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
注: ユーザー管理者useradmin
はすべてのMongoDBユーザーを管理することになっているため、強力なパスワードを選択することをお勧めします。もちろん、より安全なヒントは、useradmin
推測しにくいユーザー名に置き換えることです。
leanote
データベースに切り替えます。
use leanote
leanoteadmin
というパスワードを使用するという名前のデータベース管理者を作成しますleanoteadminpassword
。
db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })
注:繰り返しになりますが、あまり知られていないユーザー名と推測されにくいパスワードを選択することをお勧めします。
MongoDBユーザーを作成したら、結果を確認できます。
use admin
db.auth("useradmin", "useradminpassword")
データベース管理者を確認します。
use leanote
db.auth("leanoteadmin", "leanoteadminpassword")
どちらも1
確認として出力されます。
MongoDBシェルを終了します。
exit
MongoDBへのアクセス制御を有効にするには、MongoDB構成ファイル/etc/mongod.conf
に次の2行を追加する必要もあります。
sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo ' authorization: enabled' >> /etc/mongod.conf"
変更を有効にするために、MongoDBサービスを再起動します。
sudo systemctl restart mongod.service
今後は、MongoDBへのアクセスと管理、2つのユーザーアカウントのみを使用して、useradmin
すべてのMongoDBユーザーleanoteadmin
を管理し、leanote
データベースのみを管理することができます。
Leanote構成ファイルをバックアップします/home/leanote/leanote/conf/app.conf
。
cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak
vi
エディターを使用してLeanote構成ファイルを開きます。
vi app.conf
次の行を1つずつ検索します。
site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y
以下に示すように、それぞれを置き換えます。
site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA
注: セキュリティ上のapp.secret
理由から、パラメーターの値は、元の文字列とは異なる64ビットのランダム文字列である必要があります。必ずE52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA
独自の64ビットのランダムな値に置き換えてください。
保存して終了:
:wq!
ポートでインバウンドTCPトラフィックを許可するようにファイアウォールルールを変更します9000
。
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service
公式スクリプトを使用してLeanoteを起動します。
cd /home/leanote/leanote/bin
bash run.sh
を確認しListening on.. 0.0.0.0:9000
たら、お気に入りのWebブラウザでhttp://leanote.example.com:9000
Leanoteサイトの使用を開始してください。
デフォルトのLeanote管理者アカウントを使用してサインインします。
admin
abc123
セキュリティ上の理由から、デフォルトのパスワードはサインイン直後に変更する必要があります。
HTTPS
アクセスを有効にする現在のところ、安全性の低いプロトコルであるHTTPプロトコルを使用してLeanoteサーバーにアクセスできます。システムのセキュリティを向上させるためにHTTPS
、Let's Encrypt SSL証明書とNginxリバースプロキシの両方をマシンに導入して有効にすることができます。
Let's Encrypt SSL証明書を取得する前に、マシンのホスト名とFQDNを適切に設定する必要があります。
まず、CTRL+ Cを押してLeanoteスクリプトを停止しますrun.sh
。
次に、ホスト名とFQDNを次のように設定します。
sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF
結果も確認できます。
hostname
hostname -f
ポートの着信トラフィックをブロック9000
しHTTP
、HTTPS
サービスのポートでの着信トラフィックを許可します。
sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Certbotユーティリティをインストールします。
sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot
ドメインのLet's Encrypt SSL証明書を申請しますleanote.example.com
。
sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d leanote.example.com
証明書とチェーンは次のように保存されます。
/etc/letsencrypt/live/leanote.example.com/fullchain.pem
秘密鍵ファイルは次のように保存されます。
/etc/letsencrypt/live/leanote.example.com/privkey.pem
デフォルトでは、Let's Encrypt SSL証明書の有効期限は3か月です。以下に示すようにcronジョブを設定して、Let's Encrypt証明書を自動更新できます。
sudo crontab -e
を押しIてinsert
モードに入り、次の行を入力します。
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
保存して終了:
:wq!
このcronジョブは、毎日正午にLet's Encrypt証明書を更新しようとします。
EPEL YUMリポジトリを使用してNginxをインストールします。
sudo yum install -y nginx
Leanoteの構成ファイルを作成します。
cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
listen 80;
server_name leanote.example.com;
return 301 https://\$server_name\$request_uri;
}
server {
# Setup HTTPS certificates
listen 443 default ssl;
server_name leanote.example.com;
ssl_certificate /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/leanote.example.com/privkey.pem;
# Proxy to the Leanote server
location / {
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host \$http_host;
proxy_set_header Host \$http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:9000;
proxy_redirect http:// https://;
}
}
EOF
変更を有効にするためにNginxを再起動します。
sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
site.url
Leanote構成ファイルの設定を変更します。
cd /home/leanote/leanote/conf/
vi app.conf
次の行を見つけます。
site.url=http://leanote.example.com:9000
それを交換してください:
site.url=https://leanote.example.com
保存して終了:
:wq!
Leanoteスクリプトを再度実行します。
cd /home/leanote/leanote/bin
bash run.sh
ここで、お気に入りのWebブラウザーをにポイントするhttp://leanote.example.com/
と、HTTPS
プロトコルが自動的にアクティブになります。admin
以前に設定した新しいパスワードでユーザーとしてサインインするか、チームコラボレーション用の新しいユーザーアカウントを登録するだけです。
もう一度、CTRL+ Cを押してLeanoteスクリプトを停止します。このスクリプトは後でデーモン化します。
wkhtmltopdf
プログラムをインストールするLeanoteは、wkhtmltopdf
プログラムを使用してHTMLページをPDFファイルとしてエクスポートすることを選択します。インストールwkhtmltopdf
:
cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf
提出することを忘れてはいけないwkhtmltopdf
バイナリパス/usr/local/bin/wkhtmltopdf
でExport PDF
Leanoteが再び稼働しているときLeanote Web管理ダッシュボードにセクションを。
注: エクスポートされたPDFファイルで判読できない文字が見つかった場合は、必要なフォントファイルを/usr/share/fonts/
ディレクトリに追加して、問題の修正を試みることができます。
Leanoteサイトをオンラインに保つために、スーパーバイザユーティリティを使用して、クラッシュした場合にLeanoteスクリプトを自動起動できます。
YUMを使用してスーパーバイザーをインストールします。
sudo yum install -y supervisor
.ini
Leanoteの簡単なスーパーバイザーファイルを作成します。
cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF
スーパーバイザーサービスとLeanoteサービスを開始します。
sudo supervisord -c /etc/supervisord.conf
Leanoteサービスのステータスを確認します。
sudo supervisorctl status leanote
出力は次のようになります。
leanote RUNNING pid 3707, uptime 0:02:36
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
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の未来は、日々成長を続けています。