OpenBSDs HTTPDを備えたOpenBSD 6.5でWordPressを実行する

前書き

OpenBSDのインストールをデフォルトに近づけ、パッケージを追加しない限り、より安全になります。WordPressのより一般的な設定はApacheとPHPを使用することですが、OpenBSDの組み込みhttpdを使用することは間違いなく可能(そして望ましい)です。このチュートリアルでは、Let's Encrypt証明書、Webサーバー、WordPressの完全なセットアップから始めます。これを行うには、rootアクセスが必要です。

初期構成

まだ行っていない場合は、/etc/doas.confファイルを作成する必要があります。doasコマンドは、のためにOpenBSDの交換が容易ですsudo

su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf

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 pecl73-mcrypt pecl73-imagick 
doas su -
cp /etc/php-7.3.sample/* /etc/php-7.3/.

Let's Encrypt証明書を取得する

OpenBSDには、acme-clientと呼ばれる優れたアプリケーションがあります。この小さなイノベーションが、アカウントキーと秘密キーを生成し、証明書を取得します。acme-clientは、Webサーバーを配置することに依存しているため、簡単なデフォルトサーバー定義を定義します。

お気に入りのエディターを使用して、を作成します/etc/httpd.conf。他のサーバー定義は後でファイルに追加します。ここで必要なのは、httpdがチャレンジ/レスポンスを実行して無料の有効なSSL証明書を取得するように準備することです。

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-v01.api.letsencrypt.org/directory"
    account key "/etc/acme/letsencrypt-privkey.pem"
}

authority letsencrypt-staging {
    api url "https://acme-staging.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.fullchain.pem"
    sign with letsencrypt
}

httpdを有効にして起動し、発行された証明書を取得します。証明書が発行されていることがわかります。

doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd

サーバー定義の追加

/etc/httpd.confLet's Encryptの定義の直後に、次の設定行を追加します。無料のSSL証明書があり、安全でないリンクを介してログインとパスワードを送信するリスクを冒したくないので、httpdをhttpからhttpsへのリダイレクトを実行するように設定します。location "/posts/*"この行に注意してください。これは、WordPressパーマリンクをきれいに見せている部分です。また、この設定には、ブルートフォースがWordPress管理サイトにログインしようとするのを防ぐ方法が含まれています。

server "example.com" {
    listen on egress port 80
    alias "www.example.com"
    block return 302 "https://$SERVER_NAME$REQUEST_URI"
}

server "example.com" {
    listen on egress tls port 443
    alias "www.example.com"
    root "/htdocs/example.com
    directory index "index.php"

     location "/posts/*" {
        fastcgi {
             param SCRIPT_FILENAME "/htdocs/example.com/index.php"
             socket "/run/php-fpm.sock"
        }
     }

     location "/wp-json/*" {
        fastcgi {
           param SCRIPT_FILENAME "/htdocs/example.com/index.php"
            socket "/run/php-fpm.sock"
        }
     }

    location "/wp-login.php*" {
        authenticate "WordPress" with "/htdocs/htpasswd"
        fastcgi socket "/run/php-fpm.sock"
     }

    #Uncomment the following lines to disable xmlrpc. You increase security 
    #at the expense of being able to use to use 
    #the Android and iPhone WordPress App.
    #location "xmlrpc.php*" {
    #    block return 404
    #}        

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
     }

    tls {
        certificate "/etc/ssl/example.com.fullchain.pem"
        key "/etc/ssl/private/example.com.key"
    }
}

WordPress管理サイトのセキュリティを強化するために、ユーザー名とパスワードのファイルを作成します。適切なパスワードを選択してください。これにより、wp-login.phpスクリプトを実行するためにユーザー名とパスワードの入力を求められます。

doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd

MariaDBの準備と構成

MariaDBは、MySQLのドロップイン置換フォークです。WordPressの初期設定とデータベース準備作業を行う必要があります。

MariaDBを効果的に使用する前に、mysqlデーモンがデフォルトより多くのリソースを使用できるようにする必要があります。これを行うには、/etc/login.confこのエントリを下部に追加して、に次の変更を加えます。

mysqld:\
    :openfiles-cur=1024:\
    :openfiles-max=2048:\
    :tc=daemon:

MariaDBを有効にして起動します。この手順では、ルートパスワードを設定し、オプションでテストデータベースを削除します。安全なインストール段階での提案に従うことをお勧めします。

 doas mysql_install_db
 doas rcctl enable mysqld
 doas rcctl start mysqld
 doas mysql_secure_installation

WordPressデータベースとデータベースユーザーを作成します。

mysql -u root -p 
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT

WordPressのインストールと構成

WordPressは、箱から出してすぐに動作するため、かなり長い間、公式のOpenBSDポートを備えていませんでした。WordPressインストールフォルダーをダウンロード、抽出、移動します。

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/example.com
chown -R www:www /var/www/htdocs/example.com

我々はコピーに持っている/etc/resolve.conf/etc/hostsします/var/www/etc。これは、WordPressが市場に成功するためです。WordPress管理サイトからプラグインとテーマをダウンロードするには、これが必要です。

doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.

httpdとを起動しphp73_fpmます。

doas rcctl start httpd php73_fpm

サーバー定義で使用したURLを参照します。WordPressインストールウィザードが表示されます。データベースサーバーオプションの場合、localhostをに置き換えます127.0.0.1

WordPressがインストールされたら、パーマリンクを設定して、SEOフレンドリーに見えるようにします。WordPress管理画面からにアクセスしSettings -> Permalinksます。をクリックしCustom Structureて入力し/posts/%postname%ます。この変更を行った後、Save Changesボタンをクリックします。これで見栄えの良いリンクができました。たとえば、パーマリンクは次のようになります。https://example.com/posts/example-blog-post



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。