CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
OpenBSDのセキュリティに対する好意を考えると、特にWordPressとPHPがスクリプトキディのターゲットを移動する傾向があるため、WordPress Webサイトを強化するだけで意味があります。OpenBSDのhttpdは主に静的ページを提供するように設計されているため、POST操作はfastcgiおよびslowcgiプロセス用に予約されています。これにより、悪意のあるアクターがWebサーバーのプロセスを破壊し、サーバーにアクセスすることが困難になります。POST操作はfastcgiプロセスにパイプされ、外部インタープリターを使用します。この記事では、WordPressサイトの設定だけでなく、いくつかの基本的なメンテナンス手法、およびサイトとそのデータベースのバックアップと復元の方法について説明します。example.com
ドメインとして表示される場所はどこでも、ドメインに置き換えてください。
まだ行っていない場合は、/etc/doas.conf
ファイルを作成する必要があります。doasコマンドはOpenBSDのsudoの簡単な置き換えです。便宜上、doasを使用するときにパスワードを再入力する必要がないように、nopassオプションを追加しました。これを望まない場合は、単にnopassを省略してください。
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
OpenBSDがどのように展開用にパッケージ化されているかによって、パッケージマネージャーにリポジトリが構成されていない場合があります。OpenBSD公式リポジトリを設定するには、/etc/installurl
ファイルを作成する必要があります。
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
次に、画像や暗号化などを処理するためにWordPressが必要とするPHPといくつかの追加モジュールを追加する必要があります。プロンプトが表示されたら、PHPの最新パッケージのインストールを選択します。あなたがしなければならない一つのことは、モジュールのiniファイルをサンプルディレクトリからメインのディレクトリにコピーすることです。これは、追加のPHPモジュールを有効にするために実行する必要があります。
doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli php-zip pecl73-mcrypt pecl73-imagick wget
doas cp /etc/php-7.3.sample/* /etc/php-7.3/.
今日の世界では、WebサイトはSSLを介して提供されるか、検索エンジンによってダウンランクされている必要があります。幸い、OpenBSDにはacme-clientという素晴らしいアプリケーションがあります。acme-clientは自動的に新しい秘密鍵を生成し、新しい完全に有効な証明書を要求します。acme-clientは、Webサーバーを配置することに依存しているため、簡単なデフォルトサーバー定義を作成する必要があります。
お気に入りのエディターを使用して、を作成します/etc/httpd.conf
。他のサーバー定義は後でファイルに追加します。今のところ、acme-clientが正しく機能するためにはこれで十分です。
prefork 5
types { include "/usr/share/misc/mime.types" }
server "default" {
listen on egress port 80
root "/htdocs"
directory index "index.html"
location "/.well-known/acme-challenge/*" {
request strip 2
root "/acme"
}
}
また、お気に入りのエディタを使用して、を作成します/etc/acme-client.conf
。
authority letsencrypt {
api url "https://acme-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
api url "https://acme-staging-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-staging-privkey.pem"
}
domain example.com {
alternative names { www.example.com }
domain key "/etc/ssl/private/example.com.key"
domain full chain certificate "/etc/ssl/example.com.crt"
sign with letsencrypt
}
次に、httpdを有効にして起動する必要があります。これを実行したら、acme-clientを実行して、新しい新しい証明書が取得されるのを待ちます。これを実行した後、7日ごとに新しいジョブを自動的に要求するcronジョブを追加するので、有効期���切れを心配する必要はありません。
doas rcctl enable httpd
doas rcctl start httpd
doas acme-client -v example.com
次に、cronジョブを作成します。最後のエントリの下にこの行を追加します。この場合、acme-clientに毎週土曜日の午前1時に新しい証明書を要求するように指示しています。
doas crontab -e
0 1 * * 6 acme-client -F example.com && rcctl reload httpd
WordPress用にhttpdをセットアップする時が来ました。Webサイトの定義を直接に/etc/httpd.conf
配置するので/etc/httpd.conf.example.com
はなく、それをと呼ばれる別のファイルに配置し、メイン構成ファイルに含めます。一般に、2つを分離し、サイト全体の定義をメインの構成ファイルに保持し、ドメイン固有の設定を別の構成ファイルに保持することをお勧めします。
/etc/httpd.conf
ファイルの最後に次の行を追加します。
include "/etc/httpd.conf.example.com"
次に、お気に入りのエディターを使用して、を作成します/etc/httpd.conf.example.com
。便宜上、ドメインごとに個別のログファイルを作成します。これにより、サイトの潜在的な問題を追跡する際の作業が容易になります。
server "example.com" {
listen on egress port 80
alias "www.example.com"
# Automatically redirect to SSL
block return 302 "https://$SERVER_NAME$REQUEST_URI"
log {
access "access-example.com"
error "error-example.com"
}
}
server "example.com" {
listen on egress tls port 443
alias "www.example.com"
root "/htdocs/wordpress"
directory index "index.php"
log {
access "access-example.com"
error "error-example.com"
}
tcp { nodelay, backlog 10 }
tls {
certificate "/etc/ssl/example.com.crt"
key "/etc/ssl/private/example.com.key"
}
hsts {
# max-age value is the number of seconds in 1 year
max-age 31556952
preload
subdomains
}
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
location "/posts/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/page/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/feed/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/comments/feed/*" {
fastcgi {
param SCRIPT_FILENAME \
"htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-json/*" {
fastcgi {
param SCRIPT_FILENAME \
"htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-login.php*" {
authenticate "WordPress" with "/htdocs/htpasswd"
fastcgi socket "/run/php-fpm.sock"
}
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
}
セキュリティを強化するために、WordPress管理サイトにログインするときに、ユーザー名とパスワードの追加プロンプトを実装します。スクリプトキディはWordPressのログインを繰り返しブルートフォースで試したいので、Webサーバーレベルで追加のログインを作成します。通常、WordPressが401 Unauthorizedエラーをスローする前に、それらは約5つの推測を取得します。
doas su
cd /var/www/htdocs
doas htpasswd htpasswd <user>
doas chown www:www htpasswd
doas chmod 0640 htpasswd
doas rcctl reload httpd
WordPressのインストールでメールを送信できるように、phpを変更する必要があります。WordPressと一部のプラグインは、アップグレード、アラート、変更を通知するメールを送信する機能に依存しています。メールを送信できないと、WordPressの特定の機能が動作しなくなる可能性があります。httpdはchroot環境で実行されるため、phpにメールの送信方法を通知する必要があります。さらに、php-fpmに対していくつかのパフォーマンス週間を行う必要があります。
のsendmail_path
行を探して、/etc/php-7.3.ini
次の変更を加えます。
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; sendmail_path =
sendmail_path = /bin/femail -t -i
で次の行を探し、次の/etc/php-fpm.conf
ように変更します。
pm.start_servers = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 6
次のステップは、php-fpmを有効にして起動することです。
doas rcctl enable php73_fpm
doas rcctl start php73_fpm
MariaDBは、MySQLのドロップイン置換フォークです。WordPressの初期設定とデータベース準備作業を行う必要があります。
MariaDBを効果的に使用する前に、mysqlデーモンがデフォルトより多くのリソースを使用できるようにする必要があります。これを行うには、/etc/login.conf
このエントリを下部に追加して、に次の変更を加えます。
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
MariaDB設定ファイルにいくつか変更を加える必要があります/etc/my.cnf
。MySQLクライアントとサーバーがTCPではなくUNIXドメインソケットを介して通信するようにすることで、サーバーのメモリ使用量を低く抑えることができます。以下に提案されているすべての変更を行う必要はありません。変更する2つの重要なものは、socket
行と行をコメント化することbind-address
です。これにより、ソケットが/var/www
chroot環境内に移動し、WordPressがデータベースに接続できるようになります。このbind-address
行をコメント化することで、MariaDBがTCPポートで待機しないようにします。
[client-server]
socket=/var/www/var/run/mysql/mysql.sock
#port=3306
# This will be passed to all MariaDB clients
[client]
#password=my_password
# The MariaDB server
[mysqld]
# To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0"
#bind-address=127.0.0.1
# Directory where you want to put your data
#data=/var/mysql
# This is the prefix name to be used for all log, error and replication files
#log-basename=mysqld
# Logging
#log-bin=/var/mysql/mariadb-bin
#max_binlog_size=100M
#binlog_format=row
#expire_logs_days = 7
#general-log
#slow_query_log
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 16M
次に、MariaDBインストールバイナリを実行し、MariaDBを有効にして起動する必要があります。この手順では、ルートパスワードを設定し、オプションでテストデータベースを削除します。安全なインストール段階ですべての提案に従うことをお勧めします。
doas mysql_install_db
doas rcctl enable mysqld
doas rcctl start mysqld
doas mysql_secure_installation
WordPressデータベースとデータベースユーザーを作成します。<wp_user>
選択したデータベースのユーザー名と、選択<password>
した複雑なパスワードに置き換えることを忘れないでください。
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
WordPressは、箱から出してすぐに動作するため、かなり長い間、公式のOpenBSDポートを備えていませんでした。WordPressインストールフォルダーをダウンロード、抽出、移動します。
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/.
doas chown -R www:www /var/www/htdocs/wordpress
doas chmod 0755 /var/www/htdocs/wordpress
cd /var/www/htdocs/wordpress/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
コピー/etc/resolv.conf
し/etc/hosts
て、という名前の作成するディレクトリにコピーする必要があります/var/www/etc
。これは、WordPressが市場に成功するためです。WordPress管理サイトからプラグインとテーマをダウンロードするには、これが必要です。Jet Packプラグインが適切に機能することも重要です。
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
ここから、Webサーバー定義で指定したURL経由でhttpsを使用してWordPress Webサイトにアクセスします。すべてが正常に機能している場合は、WordPressインストールウィザードが表示されます。データベースサーバーを指定するオプションが表示されたら、次を使用する必要がありますlocalhost:/var/run/mysql/mysql.sock
WordPressがインストールされたら、パーマリンクを設定して、SEOフレンドリーに見えるようにします。WordPress管理画面からにアクセスしSettings -> Permalinks
ます。カスタム構造をクリックして、と入力し/posts/%postname%
ます。この変更を行った後、[変更を保存]ボタンをクリックします。これで見栄えの良いリンクができました。たとえば、パーマリンクは次のようになります。https://example.com/posts/example-blog-post
ここからは、基本的なウェブサイトの準備が整います。Jet PackやWP-Super Cacheなどのプラグインをインストールしていることを確認してください。WP-Super Cacheプラグインは、Webページをキャッシュし、一定のデータベース参照を排除することにより、Webサイトの高速化に役立ちます。JetPackは、優れた視聴統計を提供します。
言うまでもなく、Webサイトとデータベースのバックアップは非常に重要です。ありがたいことに、これは比較的簡単なことです。両方をホームディレクトリにバックアップすると、scp経由で別の場所にコピーできます。Vultrコントロールパネルからスナップショットを作成することもできます。両方を実行することをお勧めします。
cd /var/www/htdocs
tar cvfz wordpress.tgz wordpress/
cp wordpress.tgz /home/user
mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql
データベースが破損し、復元が必要な場合は、次の手順を実行します。
gunzip wordpress.sql.gz
mysql -u root -p wordpress
DROP USER '<user>'@'localhost';
DROP DATABASE wordpress;
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
mysql -u root -p wordpress < wordpress.sql
WordPressスクリプトファイルに変更を加えて問題が発生した場合は、管理コントロールパネルからいつでもWordPressを再インストールできます。Updates
セクションを探して、リンクをクリックしてください。というラベルの付いたボタンを探しますRe-install Now
。これにより、少なくとも問題のある部分は修正されますが、構成のほとんどはそのまま維持されます。
データベースの状態は良好であるが、誤ってファイルを編集し、WordPress管理コンソールにアクセスできないほどに壊れてしまった場合は、次のようにします。
rm /var/www/htdocs/wordpress
cp /home/user/wordpress.tgz /tmp
tar xvfz wordpress.tgz
mv wordpress /var/www/htdocs/.
chown -R www:www /var/www/htdocs/wordpress
cd /var/www/htdocs/wordpress
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
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の未来は、日々成長を続けています。