月別: 2021年9月

WordPressをインストールして構成する

依存関係をインストールします

$ sudo apt update
$ sudo apt install apache2 php mysql-server libapache2-mod-php ghostscript php-bcmath php-curl php-imagick php-intl php-json php-mbstring php-mysql php-xml php-zip

WordPressをインストールします。

 /var/www/wordpressに展開

sudo mkdir -p /var/www/wordpress
sudo chown www-data: /var/www/wordpress
curl https://wordpress.org/latest.tar.gz | sudo -u www-data tar zx -C /var/www

WordPress用にApacheを構成します

$ sudo vi /etc/apache2/sites-available/wordpress.conf 
<VirtualHost *:80>
    DocumentRoot /var/www/wordpress
    <Directory /var/www/wordpress>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
    <Directory /var/www/wordpress/wp-content>
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
$ sudo a2ensite wordpress
$ sudo a2enmod rewrite
$ sudo a2dissite 000-default
$ sudo service apache2 reload

データベースを構成します

$ sudo mysql -u root
mysql> CREATE DATABASE wordpress;
mysql> CREATE USER wordpress@localhost IDENTIFIED BY 'password';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
    -> ON wordpress.*
    -> TO wordpress@localhost;
mysql> FLUSH PRIVILEGES;
mysql> quit
$ sudo systemctl start mysql

データベースに接続するようにWordPressを構成します

$ sudo -u www-data cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
$ sudo -u www-data sed -i 's/database_name_here/wordpress/' /var/www/wordpress/wp-config.php
$ sudo -u www-data sed -i 's/username_here/wordpress/' /var/www/wordpress/wp-config.php
$ sudo -u www-data sed -i 's/password_here/password/' /var/www/wordpress/wp-config.php

/var/www/wordpress/wp-config.phpの該当行をhttps://api.wordpress.org/secret-key/1.1/salt/ のデータに置き換える。
・ AUTH_KEY
・ SECURE_AUTH_KEY
・ LOGGED_IN_KEY
・ NONCE_KEY
・ AUTH_SALT
・ SECURE_AUTH_SAL
・ LOGGED_IN_SALT
・ NONCE_SALT

$ sudo -u www-data vi /var/www/wordpress/wp-config.php

WordPressを構成します

ブラウザで開く
http://192.168.1.104/

RaspberryP4 Ubuntuインストール

OS起動

Raspberry Pi ImagerによりSDカード作成

SDカードをRaspberryPiにいれて電源On

ログインする とすぐにパスワード変更が促される
ログイン user: ubuntu passwd: ubuntu

IPアドレス変更

IPアドレス確認

$ ip a

IPアドレス変更

$ sudo vi /etc/netplan/50-cloud-init.yaml
eth0:
  dhcp4: false
  dhcp6: false
  addresses: [192.168.1.104/24]
  gateway4: 192.168.1.1
  nameservers:
    addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
  version: 2
$ sudo netplan apply

ホスト名、タイムゾーン変更

ホスト名

$ sudo hostnamectl set-hostname iroiro

タイムゾーン設定

$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl

Webminインストール

リポジトリ登録

$ sudo vi /etc/apt/sources.list

末尾に追加

deb http://download.webmin.com/download/repository sarge contrib
$ wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
$ sudo apt update

webminインストール

$ sudo apt -y install webmin
$ sudo ufs allow 10000

パッケージ最新化

$ sudo apt upgrade

webmin起動

https://192.168.1.104:10000/

Certbot

certbot –

28 / 5000

certbot – certbotスクリプトのドキュメント

利用方法:

 certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] ...

Certbotは、HTTPS / TLS / SSL証明書を取得してインストールできます。 デフォルトでは、証明書の取得とインストールの両方にWebサーバーを使用しようとします。 最も一般的なサブコマンドとフラグは次のとおりです。

証明書の取得、インストール、および更新: obtain, install, and renew certificates:

(default) run 現在のWebサーバーで証明書を取得してインストールします

(default) run現在のWebサーバーで証明書を取得してインストールします
certonly 証明書を取得または更新しますが、インストールしない
renew 以前に取得した、有効期限が近い証明書をすべて更新します
-d DOMAINS 証明書を取得するためのドメインのコンマ区切りリスト
–apache認証とインストールのためのApacheプラグインを設定します
–standalone認証のためにスタンドアロンのWebサーバーを実行する
–nginx認証とインストールにNginxプラグインを使用する
–webroot認証のためにサーバーのwebrootフォルダーにファイルを配置します
–manualインタラクティブに、またはシェルスクリプトフックを使用して証明書を取得します
-n非対話的に実行する
–test-certステージングサーバーからテスト証明書を取得します
–dry-run証明書をディスクに保存せずに「更新」または「証明書のみ」をテストする

証明書の管理:

certificates Certbotから取得した証明書に関する情報を表示します
revoke証明書を失効させます(supply –cert-path)
delete証明書を削除する

Let’sEncryptでアカウントを管理します。

registerLet’s EncryptACMEアカウントを作成する
–agree-tosACMEサーバーのサブスクライバー契約に同意する
-m EMAIL重要なアカウント通知のメールアドレス

オプションの引数:

-h, –helpこのヘルプメッセージを表示して終了します
-c CONFIG_FILE, –config CONFIG_FILE 設定ファイルへのパス(デフォルト:/etc/letsencrypt/cli.ini および〜/ .config / letsencrypt / cli.ini)
-v, –verboseこのフラグを複数回使用して、出力の詳細度を段階的に上げることができます。 -vvv。 (デフォルト:-2)
-n, –non-interactive, –noninteractiveユーザー入力を要求せずに実行します。 これには、追加のコマンドラインフラグが必要になる場合があります。 クライアントは、不足しているものが見つかった場合、どれが必要かを説明しようとします(デフォルト:False)
–force-interactiveターミナルで実行されていないことを検出した場合でも、Certbotを強制的にインタラクティブにします。 このフラグは、renewサブコマンドでは使用できません。 (デフォルト:False)
-d DOMAIN, –domains DOMAIN, –domain DOMAIN適用するドメイン名。 複数のドメインの場合、複数の-dフラグを使用するか、ドメインのコンマ区切りリストをパラメーターとして入力できます。 (デフォルト:質問)
–cert-name CERTNAME適用する証明書名。 Certbotの実行ごとに使用できる証明書名は1つだけです。 証明書名を表示するには、「certbotcertificates」を実行します。 新しい証明書を作成するときに、新しい証明書の名前を指定します。 (デフォルト:なし)
–dry-runクライアントのテスト実行を実行し、テスト(無効)証明書を取得しますが、ディスクには保存しません。
これは現在、「certonly」および「renew」サブコマンドでのみ使用できます。注:-dry-runはシステムに永続的な変更を加えないようにしますが、完全に副作用がないわけではありません。apacheやnginxなどのウェブサーバーオーセンティケータープラグインで使用すると、一時的な構成変更が行われ、元に戻されます。テスト証明書を取得し、Webサーバーをリロードしてデプロイし、それらの変更をロールバックします。また、更新を正確にシミュレートするために必要な場合があるため、定義されている場合は–pre-hookコマンドと–post-hookコマンドも呼び出します。
–renew-hookコマンドは呼び出されません。 (デフォルト:False)
–debug-challengesチャレンジを設定した後、CAに送信する前にユーザー入力を待ちます(デフォルト:False)
–preferred-challenges PREF_CHALLS承認中に使用する優先チャレンジのソートされたカンマ区切りのリスト。最も優先されるチャレンジが最初にリストされます(例:「dns」または「tls-sni-01、http、dns」)。 すべてのプラグインがすべての課題をサポートしているわけではありません。 詳細については、https://certbot.eff.org/docs/using.html#pluginsを参照してください。 ACMEチャレンジはバージョン管理されていますが、「http-01」ではなく「http」を選択すると、Certbotは最新バージョンを自動的に選択します。 (ディフォルト: [])
–user-agent USER_AGENクライアントのカスタムユーザーエージェント文字列を設定します。 ユーザーエージェント文字列を使用すると、CAは、OS、プラグイン、ユースケースごとの成功率に関する高レベルの統計を収集し、過去のPythonバージョンとフラグのサポートを廃止する時期を知ることができます。 Let’s Encryptサーバーからこの情報を非表示にする場合は、これを「」に設定します。 (デフォルト:CertbotACMEClient / 0.16.0(certbot; Ubuntu 16.04.2 LTS)Authenticator / XXX Installer / YYY(SUBCOMMAND;フラグ:FLAGS)Py / 2.7.12)。 ユーザーエージェントでエンコードされるフラグは、-duplicate、-force- renew、-allow-subset-of-names、-n、およびフックが設定されているかどうかです。

オートメーション:実行とその他の調整を自動化するための引数

—keep-until-expiring, –keep, –reinstall要求された証明書が既存の証明書と一致する場合は、更新が必要になるまで常に既存の証明書を保持します( ‘run’サブコマンドの場合、これは既存の証明書を再インストールすることを意味します)。 (デフォルト:質問)
–expand既存の証明書が要求された名前の厳密なサブセットである場合は、常に展開して追加の名前に置き換えてください。 (デフォルト:質問)
–versionプログラムのバージョン番号を表示して終了します
–force-renewal, –renew-by-default要求されたドメインの証明書がすでに存在する場合は、有効期限が近づいているかどうかに関係なく、今すぐ更新してください。 (多くの場合、-keep-until-expiringの方が適切です)。 –expandも意味します。 (デフォルト:False)
–renew-with-new-domains要求された証明書名の証明書がすでに存在しているが、要求されたドメインと一致しない場合は、有効期限が近づいているかどうかに関係なく、今すぐ更新してください。 (デフォルト:False)
–allow-subset-of-namesドメイン検証を実行するときに、要求されたドメインの厳密なサブセットに対して承認を取得できない場合でも、失敗とは見なさないでください。 これは、一部のドメインがこのシステムをポイントしなくなった場合でも、複数のドメインの更新を成功させるのに役立つ場合があります。 このオプションは–csrと一緒に使用することはできません。 (デフォルト:False)
–agree-tosACMEサブスクライバー契約に同意します(デフォルト:Ask)
–duplicate既存の証明書系統を複製する証明書系統の作成を許可します(両方を並行して更新できます)(デフォルト:False)
–os-packages-only(certbot-autoのみ)OSパッケージの依存関係をインストールしてから停止します(デフォルト:False)
–no-self-upgrade(certbot-autoのみ)certbot-autoスクリプトがそれ自体を新しいリリースバージョンにアップグレードしないようにします(デフォルト:自動的にアップグレードします)
–no-bootstrap(certbot-autoのみ)certbot-autoスクリプトがOSレベルの依存関係をインストールしないようにします(デフォルト:OS全体の依存関係をインストールするように求めますが、ユーザーが「いいえ」と言った場合は終了します)
-q, –quietエラーを除くすべての出力を無音にします。 cronによる自動化に役立ちます。 –non-interactiveを意味します。 (デフォルト:False)

安全:セキュリティパラメータとサーバー設定

–rsa-key-size NRSAキーのサイズ。 (デフォルト:2048)
–must-stapleOCSP MustStaple拡張機能を証明書に追加します。 サポートされているセットアップ用にOCSPステープリングを自動構成します(Apacheバージョン> = 2.3.3)。 (デフォルト:False)
–redirect新しく認証された仮想ホストのすべてのHTTPトラフィックをHTTPSに自動的にリダイレクトします。 (デフォルト:質問)
–no-redirect新しく認証された仮想ホストのすべてのHTTPトラフィックをHTTPSに自動的にリダイレクトしないでください。 (デフォルト:質問)
–hstsすべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。 ドメインに常にSSLを使用するようにブラウザを強制します。 SSLストリッピングから防御します。 (デフォルト:False)
–uirすべてのHTTP応答に「Content-Security-Policy:upgrade-insecure-requests」ヘッダーを追加します。 すべてのhttp://リソースに対してhttps://を使用するようにブラウザに強制します。 (デフォルト:なし)
–staple-ocspOCSPステープリングを有効にします。 有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。 (デフォルト:なし)
–strict-permissionsすべての構成ファイルが現在のユーザーによって所有されていることを要求します。 構成が/ tmp /のように安全でない場合にのみ必要です(デフォルト:False)

テスト:次のフラグは、テストと統合のみを目的としています。

–test-cert, –stagingステージングサーバーを使用して、テスト(無効な)証明書を取得または取り消します。 –server https://acme-staging.api.letsencrypt.org/directoryと同等(デフォルト:False)
–debugエラーが発生した場合にトレースバックを表示し、実験プラットフォームでのcertbot-自動実行を許可します(デフォルト:False)
–no-verify-sslACMEサーバーの証明書の検証を無効にします。 (デフォルト:False)
–tls-sni-01-port TLS_SNI_01_PORTtls-sni-01チャレンジ中に使用されるポート。 これは、Certbotがリッスンするポートにのみ影響します。 準拠するACMEサーバーは引き続きポート443で接続を試みます。(デフォルト:443)
–tls-sni-01-address TLS_SNI_01_ADDRESStls-sni-01チャレンジ中にサーバーがリッスンするアドレス。 (ディフォルト: )
–http-01-port HTTP01_PORThttp-01チャレンジで使用されるポート。 これは、Certbotがリッスンするポートにのみ影響します。 準拠するACMEサーバーは引き続きポート80で接続を試みます。(デフォルト:80)
–http-01-address HTTP01_ADDRESShttp-01チャレンジ中にサーバーがリッスンするアドレス。 (ディフォルト: )
–break-my-certs有効な証明書を無効な(テスト/ステージング)証明書に置き換えたり更新したりする意思がある(デフォルト:False)

パス:実行パスとサーバーを変更する引数

–cert-path CERT_PATH証明書が保存された場所(auth –csrを使用)、インストール元、または取り消された場所へのパス。 (デフォルト:なし)
–key-path KEY_PATH証明書のインストールまたは失効のための秘密鍵へのパス(アカウント鍵が欠落している場合)(デフォルト:なし)
–fullchain-path FULLCHAIN_PATH完全な証明書チェーン(証明書とチェーン)への付随するパス。 (デフォルト:なし)
–chain-path CHAIN_PATH証明書チェーンへの付随するパス。 (デフォルト:なし)
–config-dir CONFIG_DIR構成ディレクトリ。 (デフォルト:/etc/letsencrypt)
–work-dir WORK_DIR作業ディレクトリ。 (デフォルト:/var /lib/letsencrypt)
–logs-dirログディレクトリ。 (デフォルト:/var/log/letsencrypt)
–server SERVERACMEディレクトリリソースURI。 (ディフォルト:
https://acme-v01.api.letsencrypt.org/directory)

manage:証明書を管理するために、さまざまなサブコマンドとフラグを使用できます。

certificates:

certificatesCertbotが管理する証明書を一覧表示する
delete証明書に関連するすべてのファイルをクリーンアップします
renewすべての証明書(または–cert- nameで指定された証明書)を更新します
revoke–cert-pathで指定された証明書を取り消します
update_symlinks/etc/letsencrypt/live/ディレクトリにシンボリックリンクを再作成します

run:証明書を取得してインストールするためのオプション

certonly:証明書の取得方法を変更するためのオプション

–csr CSRDERまたはPEM形式の証明書署名要求(CSR)へのパス。 現在、-csrは「certonly」サブコマンドでのみ機能します。 (デフォルト:なし)

renew:
‘renew’サブコマンドは、以前に取得したすべての証明書(より正確には、証明書の系統)が期限切れに近い場合に更新を試み、結果の要約を出力します。 デフォルトでは、「renew」は、各証明書系統の取得または最近の正常な更新の作成に使用されたオプションを再利用します。 最初に --dry-runで試すことができます。 よりきめ細かい制御のために、 certonlyサブコマンドで個々の系統を更新することができます。 フックは、更新の前後にコマンドを実行するために使用できます。 これらの詳細については、https://certbot.eff.org/docs/using.html#renewalを参照してください。

–pre-hook PRE_HOOK証明書を取得する前にシェルで実行するコマンド。 主に更新を目的としており、スタンドアロンプラグインと競合する可能性のあるWebサーバーを一時的にシャットダウンするために使用できます。 これは、証明書が実際に取得/更新される場合にのみ呼び出されます。 同一のプリフックを持つ複数の証明書を更新する場合、最初の証明書のみが実行されます。 (デフォルト:なし)
–post-hook POST_HOOK証明書の取得/更新を試みた後にシェルで実行するコマンド。 更新された証明書を展開したり、-pre-hookによって停止されたサーバーを再起動したりするために使用できます。 これは、証明書を取得/更新しようとした場合にのみ実行されます。 複数の更新された証明書に同一のポストフックがある場合、1つだけが実行されます。 (デフォルト:なし)
–renew-hook RENEW_HOOK正常に更新された証明書ごとに1回シェルで実行するコマンド。 このコマンドの場合、シェル変数$ RENEWED_LINEAGEは、新しい証明書とキーを含むconfig liveサブディレクトリ(「/etc/letsencrypt/live/example.com」など)を指します。 シェル変数$ RENEWED_DOMAINSには、更新された証明書ドメインのスペース区切りのリストが含まれます(たとえば、「example.comwww.example.com」(デフォルト:なし))。
–disable-hook-validation通常、-pre-hook / -post-hook / -renew-hookに指定されたコマンドは、実行中のプログラムが$ PATHにあるかどうかを確認するために有効性がチェックされるため、間違いを早期に発見することもできます。 フックがまだ実行されていないとき。 検証はかなり単純であり、より高度なシェル構造を使用すると失敗するため、このスイッチを使用して無効にすることができます。 (デフォルト:False)
certificates:Certbotが管理する証明書を一覧表示する
delete:証明書を削除するためのオプション
revoke:証明書の失効のオプション
–reason{keycompromise、affiliationchanged、superseded、unspecified、cessationofoperation}証明書を取り消す理由を指定します。 (デフォルト:0)

register:アカウントの登録と変更のオプション

–register-unsafely-without-emailこのフラグを指定すると、メールアドレスのないアカウントを登録できます。 キーの紛失やアカウントの侵害が発生した場合、アカウントへのアクセスが取り消せなくなるため、これは強くお勧めしません。 また、証明書の有効期限が迫っていたり、取り消されたりすることについての通知を受け取ることもできなくなります。 サブスクライバー契約の更新は引き続き影響を及ぼし、Webサイトに更新を投稿してから14日後に有効になります。 (デフォルト:False)
–update-registrationregister動詞を使用すると、新しいアカウントを登録するのではなく、電子メールアドレスなどの既存の登録に関連する詳細を更新する必要があることを示します。 (デフォルト:False)
-m EMAIL, –email EMAIL登録および復旧の連絡先に使用される電子メール。 (デフォルト:質問)
–eff-email電子メールアドレスをEFFと共有します(デフォルト:なし)
–no-eff-email 電子メールアドレスをEFFと共有しないでください(デフォルト:なし)

unregister:アカウントの非アクティブ化のオプション。

–account ACCOUNT_ID使用するアカウントID(デフォルト:なし)

install:証明書の展開方法を変更するためのオプション
config_changes: 表示する変更を制御するためのオプション

–num NUM表示する過去のリビジョンの数(デフォルト:なし)

rollback:サーバー構成の変更をロールバックするためのオプション

–checkpoints N構成をN個のチェックポイントに戻します。(デフォルト:1)

plugins:「プラグイン」サブコマンドのオプション

–initプラグインを初期化します。 (デフォルト:False)
–prepareプラグインを初期化して準備します。 (デフォルト:False)
–authenticatorsオーセンティケータープラグインのみに制限します。 (デフォルト:なし)
–installersインストーラープラグインのみに制限します。 (デフォルト:なし)

update_symlinks:
手動で変更した場合、または更新構成ファイルを編集した場合は、/ etc / testsencrypt / liveに証明書とキーのシンボリックリンクを再作成します
plugins:プラグインの選択:Certbotクライアントは、拡張可能なプラグインアーキテクチャをサポートしています。 インストールされているすべてのプラグインとその名前のリストについては、「certbotplugins」を参照してください。 以下に示すオプションを設定することで、特定のプラグインを強制できます。 –help を実行すると、そのプラグインに固有のフラグが一覧表示されます。

–configurator CONFIGURATORオーセンティケーターとインストーラーの両方であるプラグインの名前。 –authenticatorまたは–installerと一緒に使用しないでください。 (デフォルト:質問)
-a AUTHENTICATOR, –authenticator AUTHENTICATORオーセンティケータープラグイン名。 (デフォルト:なし)
-i INSTALLER, –installer INSTALLERインストーラープラグイン名(ドメインの検索にも使用されます)。 (デフォルト:なし)
–apacheApacheを使用して証明書を取得してインストールします(デフォルト:False)
–nginxNginxを使用して証明書を取得してインストールします(デフォルト:False)
–standalone「スタンドアロン」Webサーバーを使用して証明書を取得します。 (デフォルト:False)
–manual証明書を取得するための面倒な手動の指示を提供します(デフォルト:False)
–webrootwebrootディレクトリにファイルを配置して証明書を取得します。 (デフォルト:False)
–dns-cloudflareDNS TXTレコードを使用して証明書を取得します(DNSにCloudflareを使用している場合)。 (デフォルト:False)
–dns-cloudxnsDNS TXTレコードを使用して証明書を取得します(DNSにCloudXNSを使用している場合)。 (デフォルト:False)
–dns-digitaloceanDNS TXTレコードを使用して証明書を取得します(DNSにDigitalOceanを使用している場合)。 (デフォルト:False)
–dns-dnsimpleDNS TXTレコードを使用して証明書を取得します(DNSにDNSimpleを使用している場合)。 (デフォルト:False)
–dns-dnsmadeeasyDNS TXTレコードを使用して証明書を取得します(DNS Made Easy for DNSを使用している場合)。 (デフォルト:False)
–dns-googleDNS TXTレコードを使用して証明書を取得します(Google Cloud DNSを使用している場合)。 (デフォルト:False)
–dns-luadnsDNS TXTレコードを使用して証明書を取得します(DNSにLuaDNSを使用している場合)。 (デフォルト:False)
–dns-nsoneDNS TXTレコードを使用して証明書を取得します(DNSにNS1を使用している場合)。 (デフォルト:False)
–dns-rfc2136DNS TXTレコードを使用して証明書を取得します(DNSにBINDを使用している場合)。 (デフォルト:False)
–dns-route53DNS TXTレコードを使用して証明書を取得します(DNSにRoute53を使用している場合)。 (デフォルト:False)

apache:Apache Web Server plugin – Beta

–apache-enmod APACHE_ENMODApache’a2enmod ‘バイナリへのパス。 (デフォルト:a2enmod)
–apache-dismod APACHE_DISMODApacheの「a2dismod」バイナリへのパス。 (デフォルト:a2dismod)
–apache-le-vhost-ext APACHE_LE_VHOST_EXTSSL仮想ホスト構成拡張。 (デフォルト:-le- ssl.conf)
–apache-server-root APACHE_SERVER_ROOTApacheサーバーのルートディレクトリ。 (デフォルト:/ etc / apache2)
–apache-vhost-root APACHE_VHOST_ROOTApacheサーバーのVirtualHost構成ルート(デフォルト:/ etc / apache2 / sites-available)
–apache-logs-root APACHE_LOGS_ROOTApacheサーバーのログディレクトリ(デフォルト:/ var / log / apache2)
–apache-challenge-location APACHE_CHALLENGE_LOCATIONチャレンジ構成のディレクトリパス。 (デフォルト:/ etc / apache2)
–apache-handle-modules APACHE_HANDLE_MODULESインストーラーに必要なモジュールの有効化を処理させます(現在はUbuntu / Debianのみ)(デフォルト:True)
–apache-handle-sites APACHE_HANDLE_SITESインストーラーにサイトの有効化を処理させます(現在はUbuntu / Debianのみ)(デフォルト:True)

certbot-route53:auth:DNS TXTレコードを使用して証明書を取得します(DNSにAWS Route53を使用している場合)。

–certbot-route53:auth-propagation-seconds CERTBOT_ROUTE53:AUTH_PROPAGATION_SECONDSACMEサーバーにDNSレコードの検証を要求する前に、DNSが伝播するのを待機する秒数。 (デフォルト:10)


dns-cloudflare:
Obtain certificates using a DNS TXT record (if you are using Cloudflare            for DNS).

            --dns-cloudflare-propagation-seconds DNS_CLOUDFLARE_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 10)
            --dns-cloudflare-credentials DNS_CLOUDFLARE_CREDENTIALS
                                  Cloudflare credentials INI file. (default: None)

          dns-cloudxns:
            Obtain certificates using a DNS TXT record (if you are using CloudXNS for
            DNS).

            --dns-cloudxns-propagation-seconds DNS_CLOUDXNS_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 30)
            --dns-cloudxns-credentials DNS_CLOUDXNS_CREDENTIALS
                                  CloudXNS credentials INI file. (default: None)

          dns-digitalocean:
            Obtain certs using a DNS TXT record (if you are using DigitalOcean for
            DNS).

            --dns-digitalocean-propagation-seconds DNS_DIGITALOCEAN_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 10)
            --dns-digitalocean-credentials DNS_DIGITALOCEAN_CREDENTIALS
                                  DigitalOcean credentials INI file. (default: None)

          dns-dnsimple:
            Obtain certificates using a DNS TXT record (if you are using DNSimple for
            DNS).

            --dns-dnsimple-propagation-seconds DNS_DNSIMPLE_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 30)
            --dns-dnsimple-credentials DNS_DNSIMPLE_CREDENTIALS
                                  DNSimple credentials INI file. (default: None)

          dns-dnsmadeeasy:
            Obtain certificates using a DNS TXT record (if you are using DNS Made Easy
            for DNS).

            --dns-dnsmadeeasy-propagation-seconds DNS_DNSMADEEASY_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 60)
            --dns-dnsmadeeasy-credentials DNS_DNSMADEEASY_CREDENTIALS
                                  DNS Made Easy credentials INI file. (default: None)

          dns-google:
            Obtain certificates using a DNS TXT record (if you are using Google Cloud
            DNS for DNS).

            --dns-google-propagation-seconds DNS_GOOGLE_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 60)
            --dns-google-credentials DNS_GOOGLE_CREDENTIALS
                                  Path to Google Cloud DNS service account JSON file.
                                  (See https://developers.google.com/identity/protocols/
                                  OAuth2ServiceAccount#creatinganaccount forinformation
                                  about creating a service account and
                                  https://cloud.google.com/dns/access-
                                  control#permissions_and_roles for information about
                                  therequired permissions.) (default: None)

          dns-luadns:
            Obtain certificates using a DNS TXT record (if you are using LuaDNS for
            DNS).

            --dns-luadns-propagation-seconds DNS_LUADNS_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 30)
            --dns-luadns-credentials DNS_LUADNS_CREDENTIALS
                                  LuaDNS credentials INI file. (default: None)

          dns-nsone:
            Obtain certificates using a DNS TXT record (if you are using NS1 for DNS).

            --dns-nsone-propagation-seconds DNS_NSONE_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 30)
            --dns-nsone-credentials DNS_NSONE_CREDENTIALS
                                  NS1 credentials file. (default: None)

          dns-rfc2136:
            Obtain certificates using a DNS TXT record (if you are using BIND for
            DNS).

            --dns-rfc2136-propagation-seconds DNS_RFC2136_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 60)
            --dns-rfc2136-credentials DNS_RFC2136_CREDENTIALS
                                  RFC 2136 credentials INI file. (default: None)

          dns-route53:
            Obtain certificates using a DNS TXT record (if you are using AWS Route53
            for DNS).

            --dns-route53-propagation-seconds DNS_ROUTE53_PROPAGATION_SECONDS
                                  The number of seconds to wait for DNS to propagate
                                  before asking the ACME server to verify the DNS
                                  record. (default: 10)

          manual:
            Authenticate through manual configuration or custom shell scripts. When
            using shell scripts, an authenticator script must be provided. The
            environment variables available to this script depend on the type of
            challenge. $CERTBOT_DOMAIN will always contain the domain being
            authenticated. For HTTP-01 and DNS-01, $CERTBOT_VALIDATION is the
            validation string, and $CERTBOT_TOKEN is the filename of the resource
            requested when performing an HTTP-01 challenge. When performing a TLS-
            SNI-01 challenge, $CERTBOT_SNI_DOMAIN will contain the SNI name for which
            the ACME server expects to be presented with the self-signed certificate
            located at $CERTBOT_CERT_PATH. The secret key needed to complete the TLS
            handshake is located at $CERTBOT_KEY_PATH. An additional cleanup script
            can also be provided and can use the additional variable
            $CERTBOT_AUTH_OUTPUT which contains the stdout output from the auth
            script.

            --manual-auth-hook MANUAL_AUTH_HOOK
                                  Path or command to execute for the authentication
                                  script (default: None)
            --manual-cleanup-hook MANUAL_CLEANUP_HOOK
                                  Path or command to execute for the cleanup script
                                  (default: None)
            --manual-public-ip-logging-ok
                                  Automatically allows public IP logging (default: Ask)

          nginx:
            Nginx Web Server plugin - Alpha

            --nginx-server-root NGINX_SERVER_ROOT
                                  Nginx server root directory. (default: /etc/nginx)
            --nginx-ctl NGINX_CTL
                                  Path to the 'nginx' binary, used for 'configtest' and
                                  retrieving nginx version number. (default: nginx)

          null:
            Null Installer

          standalone:
            Spin up a temporary webserver

          webroot:
            Place files in webroot directory

            --webroot-path WEBROOT_PATH, -w WEBROOT_PATH
                                  public_html / webroot path. This can be specified
                                  multiple times to handle different domains; each
                                  domain will have the webroot path that preceded it.
                                  For instance: `-w /var/www/example -d example.com -d
                                  www.example.com -w /var/www/thing -d thing.net -d
                                  m.thing.net` (default: Ask)
            --webroot-map WEBROOT_MAP
                                  JSON dictionary mapping domains to webroot paths; this
                                  implies -d for each entry. You may need to escape this
                                  from your shell. E.g.: --webroot-map
                                  '{"eg1.is,m.eg1.is":"/www/eg1/", "eg2.is":"/www/eg2"}'
                                  This option is merged with, but takes precedence over,
                                  -w / -d entries. At present, if you put webroot-map in
                                  a config file, it needs to be on a single line, like:
                                  webroot-map = {"example.com":"/var/www"}. (default:
                                  {})

WordPressインストール

https://ubuntu.com/tutorials/install-and-configure-wordpress#1-overview

wordpressをインストール。apache2もインストールされる

$ apt -y install wordpress

SSLモジュールとバーチャルホストの有効化

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 restart

MariaDBのインストール

$ sudo apt -y install  mariadb-client-10.3
$ sudo apt -y install mariadb-server-10.3

MariaDBスタート

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

WoerPress用データベース作成

$ sudo mariadb
データベース作成
MariaDB [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
ユーザ作成
MariaDB [(none)]> GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;

wordpress を apacheに登録

$ sudo vi /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
    DocumentRoot /usr/share/wordpress
    <Directory /iusr/share/wordpress>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
    <Directory /usr/share/wordpress/wp-content>
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
sudo a2ensite wordpress
sudo a2ensite wordpress
sudo a2dissite 000-default

データバースの構成

$ sudo mariadb
MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]>CREATE USER wordpress@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
    -> ON wordpress.*
    -> TO wordpress@localhost;

データベースに接続するように WordPress を構成する

sudo -u www-data cp /usr/share/wordpress/wp-config-sample.php /usr/share/wordpress/wp-config.php