コンテンツにスキップ

webサーバ

nginx

mkdocs

  • mkdocs.yml
site_name: example
site_url: https://www.example.com/

theme:
  name: material
  language: ja

extra_css:
  - stylesheets/extra.css

HTMLファイル

/var/www/mkdocs

mkdocs build
scp -r site example.com:

sudo rsync -av --delete site/ /var/www/mkdocs/

SVGファイル

dot -Tsvg network.dot -o network.svg

設定

  • /etc/nginx/sites-available/mkdocs
server {
    listen 80;
    listen [::]:80;

    server_name www.example.com;

    root /var/www/mkdocs;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
sudo ln -s /etc/nginx/sites-available/mkdocs \
    /etc/nginx/sites-enabled/mkdocs
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

HTTPS

sudo certbot --nginx -d www.example.com

Apacheの場合

次の表のとおりである。

項目
Webサーバ Apache
証明書 Let's Encrypt

Apache設定

次のコマンドは、次項のcertbotコマンドにより有効化されるので、実行は不要である。

$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

Let's Encrypt設定

次のコマンドを実行する。

$ sudo apt install python3-certbot-apache
$ sudo certbot --apache

favicon.ico

/var/www/html/favicon.ico

analog

  • /etc/analog.cfg
OUTFILE Report.html
$ analog /var/log/apache2/access.log*
$ nkf --url-input Report.html > Report._dec.html

その他

Google Search Console

ドメインで登録する場合、TXTレコードをDNSサーバに設定する。

sitemap生成

  • https://www.mediawiki.org/wiki/Manual:Sitemap/ja
  • https://www.mediawiki.org/wiki/Manual:GenerateSitemap.php/ja

MediaWiki バージョン: 1.32 – 1.39

$ php /usr/share/mediawiki/maintenance/generateSitemap.php --memory-limit=50M --fspath=/path/to/examplecom/sitemap/ --identifier=example.com --urlpath=/sitemap/ --server=https://www.example.com --compress=yes --skip-redirects

systemd timerで自動更新

systemdディレクトリ

  • /etc/systemd/system
$ sudo systemctl edit --force --full sitemap.service
[Unit]
Description=sitemap

[Service]
Type=oneshot
ExecStart=/usr/bin/php /usr/share/mediawiki/maintenance/generateSitemap.php --memory-limit=50M --fspath=/var/www/html/sitemap/ --identifier=medeshima.com --urlpath=/sitemap/ --server=https://www.medeshima.com --compress=yes --skip-redirects
$ sudo systemctl edit --force --full sitemap.timer
[Unit]
Description=sitemap

[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target
$ sudo systemctl enable sitemap.timer
$ sudo systemctl start sitemap.timer

グローバルIP取得

Webサーバ

  • /var/www/html/ip/index.php
<?php
header("Content-Type: text/plain;charset=UTF-8");
echo $_SERVER['REMOTE_ADDR'];
?>

クライアント

$ curl https://SERVER/ip/
systemd timer
  • ~/bin/ip-addr.sh
#!/bin/sh

/usr/bin/curl -s https://SERVER/ip/ | /usr/bin/mail -s "IP address" MAIL
$ chmod +x ~/bin/ip-addr.sh

ユーザ用systemdディレクトリ

  • ~/.config/systemd/user
systemctl --user edit --force --full ip-addr.service
[Unit]
Description=IP address

[Service]
Type=oneshot
ExecStart=/home/USER/bin/ip-addr.sh
systemctl --user edit --force --full ip-addr.timer
[Unit]
Description=IP address

[Timer]
#OnCalendar=daily
OnCalendar=*-*-* 06:00:00
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target
$ systemctl --user enable ip-addr.timer
$ systemctl --user start ip-addr.timer
cronの場合
$ crontab -e

0 6 * * * /usr/bin/curl -s https://SERVER/ip/ | /usr/bin/mail -s "IP" MAIL