投稿

FreeBSD14にApache+SubversionをインストールしてNginxからリバースプロキシ

Subversionの容量が増えてきたので、複数サーバーにSubversionをインストールしてリポジトリを分けようとしているときの覚書。 環境: FreeBSD 14.0, Apache 2.4.59, Subversion 1.14.3 1. Apacheをインストール pkg経由でインストール。 # pkg search apache # pkg install apache24 ビルドオプションを確認。 # apachectl -V Server version: Apache/2.4.59 (FreeBSD) Server built:   unknown Server's Module Magic Number: 20120211:131 Server loaded:  APR 1.7.3, APR-UTIL 1.6.3, PCRE 10.43 2024-02-16 Compiled using: APR 1.7.3, APR-UTIL 1.6.3, PCRE 10.43 2024-02-16 Architecture:   64-bit Server MPM:     prefork   threaded:     no     forked:     yes (variable process count) Server compiled with....  -D APR_HAS_SENDFILE  -D APR_HAS_MMAP  -D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)  -D APR_USE_FLOCK_SERIALIZE  -D APR_USE_PTHREAD_SERIALIZE  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT  -D APR_HAS_OTHER_CHILD  -D AP_HAVE_RELIABLE_PIPED_LOGS  -D DYNAMIC_MODULE_...

FreeBSD 14 + Nginx + PHP + MariaDB + Postfixの環境を構築(2024年版)

ConohaでFreeBSDの仮想マシンを設定しているときの覚書。 環境: Conoha VPS 8GBプラン, FreeBSD 14.0 目次 初期設定 Nginxをインストール php8.3をインストール MariaDBをインストール phpMyAdminをインストール SSL設定 Postfix + DKIM(送信ドメイン認証)をインストール 次回取り込む設定(2025/08/27更新) FreeBSD14 + PHP8.3 + OPcache FreeBSD14 + Nginx + fail2banで不正なアクセスを自動ブロック FreeBSDのNginxをportsでビルド → 本番環境はダウンタイムなしで切り替える NginxのVTSモジュール でパフォーマンス分析(Netdataのインストールは失敗) コントロールパネルでPTRレコード(IPアドレスからの逆引きDNS)を設定する。 メールを送信するサーバーの評価(レピュテーション)を高める重要設定。 1.初期設定 keymapが日本語になっているので英語キーボードへ変更する。 管理画面のコンソールから設定する(keymap="jp"をコメントアウト)。 # less /etc/rc.conf #keymap="jp" あとはSSHでログイン。 FreeBSDのシステムアップデート。 # freebsd-update fetch # freebsd-update install パッケージマネージャをアップデート。 インストール済みパッケージを確認。 # pkg update # pkg upgrade # pkg info Timezone確認。 # date 時刻があってなければタイムゾーンを設定。 # bsdconfig シェルを確認してBashをインストール。 # echo $SHELL # pkg search bash # pkg install bash bash-completion 画面の指示通りにする。 ログインシェルなので.bashrcでなくて.bash_profileに記述する。 # vi .bash_profile bashに切り替えてデフォルトをBashにする。 # bash # chsh -s /usr/local/...

FreeBSD + Nginx + PHP + MariaDBの環境を構築

ローカルの仮想マシンにウェブ開発環境を設定しているときの覚書。 初期設定は前の記事を参考に。 参考:  FreeBSD13.1の仮想マシンをインストールして初期設定 環境: FreeBSD 14.0 OSのバージョン確認 # freebsd-version 14.0-RELEASE-p6 インストール済みのパッケージ情報を表示。 # pkg info 自動起動するサービスはbsdconfigが一覧で分かりやすい。 # bsdconfig 1.nginxのインストール 公式リポジトリを検索。 # pkg search nginx インストールしてconfの場所などビルドオプション確認。 # pkg install nginx # nginx -V nginx version: nginx/1.24.0 built with OpenSSL 3.0.12 24 Oct 2023 TLS SNI support enabled configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --user=www --group=www ... 自動起動ON、起動、確認。 # service nginx enable # service nginx start # service nginx status 設定ファイルを編集。 # cd /usr/local/etc/nginx/ # less nginx.conf worker_processes  auto; events {     worker_connections  1024; } http {     include      ...

FreeBSDを13.1から14.0にアップグレード

仮想マシンのFreeBSDをアップグレードしたときの覚書。 環境: VMware Fusion 13.5.1 参考 Chapter 26. Updating and Upgrading FreeBSD | FreeBSD Documentation Portal 今のバージョンを確認。 # freebsd-version 13.1-RELEASE-p9 14.0にアップグレード # freebsd-update upgrade -r 14.0-RELEASE いくつかシステムファイルを手動で更新しないといけない。 インストール実行 # freebsd-update install Kernel updates have been installed.  Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. 再起動しないとダメらしい。再起動して再実行。 # shutdown -r now # freebsd-update install Completing this upgrade requires removing old shared object files. Please rebuild all installed 3rd party software (e.g., programs installed from the ports tree) and then run "/usr/sbin/freebsd-update install" again to finish installing updates. もう一度やれというのでやっておく。 # freebsd-update install バージョン確認。 # freebsd-version 14.0-RELEASE-p6 パッケージマネージャをアップデート。 # pkg update ld-elf.so.1: Shared object "libssl.so.111" not found, required by "pkg" よく分からないので再起動する。 # shutdown -r now ...

PHPでog:imageの日本語部分だけをencodeURIする

Facebookに記事のURLを張り付けたときに画像が表示されなくなったので調査したときの覚書。 環境: WordPress 6.5.2 おそらくog:imageに日本語が含まれているから。 PHPのurlencodeを使うとスラッシュとかもエンコードしてしまうので、日本語部分だけをURLエンコードしたい。 いろいろ調べた結果、WordPressのformatting.phpにある「utf8_uri_encode」を使うのが簡単そう。 確認はシェアデバッガーを使う(旧名はFacebook linter)。 シェアデバッガー - Meta for Developers 【関連記事】 ホームページにOpen Graphを埋め込んでFacebookにURLを張り付けられたときの見え方をコントロール

KUSANAGIでHTTP/3 QUICを試す

KUSANAGIはHTTP/3に対応したNginxとQuicに対応させたOpenSSLをバンドルしているということで試してみたときの覚書。 参考:  KUSANAGI 9 が対応した HTTP/3 とは - KUSANAGI Tech Column 環境: ConoHa VPS メモリ8G/CPU6コア、KUSANAGI Version 9.4.12-1.el9 Nginxを1.25に切り替え 公式ページを参考にしながらkusanagiコマンドを実行する。 参考:  KUSANAGI 9 バージョンアップ情報 9.3.0-1 - 超高速CMS実行環境 KUSANAGI # kusanagi nginx --use nginx125 # kusanagi nginx --update-conf 確認 # nginx -V # cd /etc/opt/kusanagi/nginx/ # less conf.d/ssl_listen.inc firewalldで443/UDPが登録されている確認。 # systemctl status firewalld # firewall-cmd --list-all public (active)   target: default   icmp-block-inversion: no   interfaces: eth0   sources:   services: cockpit dhcpv6-client http https ssh   ports: 443/udp 60000/tcp 443/udpが登録されていた。 KUSANAGIが登録してくれたんだと思う。 UDPで待ち受けしているポート一覧表示(ssコマンドにuオプションで実行)。 # ss -anu ちなみにTCPでの待ち受けポートはtオプションで実行する。 # ss -ant クライアントから443/UDPの疎通確認 ConoHaのコントロールパネルでセキュリティグループを変更してないから、まだ443/udpで通信できないはず。 ChromeのDevToolsのNetworkタブでProtocol...

KUSANAGIのチューニング設定を調査

KUSANAGIを試したときにチューニング設定がとても勉強になるなぁと思って調査したときの覚書。 環境: ConoHa VPS メモリ8G/CPU6コア、KUSANAGI Version 9.4.12-1.el9 設定項目を1つずつ調査して意味を理解していく。 PHPのチューニング設定 PHPの設定確認。 # cd /etc/opt/kusanagi/ # less php.d/php.ini post_max_size = 16M ;POSTメソッドの最大サイズ upload_max_filesize = 16M ;アップロードされるファイルの最大サイズ date.timezone = UTC ;タイムゾーン。"Asia/Tokyo"に変更 php-fpmの設定を確認。 参考:  PHP: 設定 - Manual # less php-fpm.d/www.conf user = httpd group = www listen = 127.0.0.1:9000 ;unix socketに変更 pm.start_servers = 10 ;プロセス開始時のプロセス数 pm.min_spare_servers = 5 ;待ち状態の最小プロセス数 pm.max_spare_servers = 15 ;待ち状態の最大プロセス数 pm.max_requests = 500 ;再起動するまでの実行リクエスト数 slowlog = /var/opt/kusanagi/log/php-fpm/www-slow.log request_slowlog_timeout = 10 request_terminate_timeout = 180 catch_workers_output = yes ;ワーカーの標準出力を本体にリダイレクト decorate_workers_output = no ;ワーカーの標準出力の文字装飾 clear_env = no ;FPM ワーカー内の環境をクリア php_admin_value[error_log] = /var/opt/kusanagi/log/php-fpm/www-error.log php_admin_flag[log_errors] = on php_value[session.save_handler]...

ConoHa VPSのKUSANAGIを試す

KUSANAGIを試したときの覚書 環境: CentOS Stream 9, KUSANAGI manager 0.5.2, KUSANAGI 9.4.12 KUSANAGIとは KUSANAGIはWordPress実行環境。 サーバーのスペックに合わせて、PHP, Nginx, MariaDBなどをいい感じに設定してくれて、WordPressの表示を高速化できる。 KUSANAGIとは - 超高速CMS実行環境 KUSANAGI Linuxのミドルウェアとの疎結合を保ちつつ、Nginx, OpenSSLなど必要な部分だけKUSANAGIのパッケージで提供している。 サーバーに詳しい人でも、KUSANAGIのチューニング方法は非常に勉強になる。 KUSANAGI環境の確認 kusanagiコマンドで設定状況を確認。 参考:  status - 超高速CMS実行環境 KUSANAGI # kusanagi status KUSANAGI Version 9.4.12-1.el9 conoha *** (active) nginx : nginx124 *** * nginx.service - The NGINX HTTP and reverse proxy server      Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)      Active: active (running) since Thu 2024-02-22 14:10:48 JST; 3 days ago *** (inactive) httpd : httpd24 *** * httpd.service - The Apache HTTP Server      Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)      Active: inactive (dead) *** (active) php : php74 *** * ...

PHPを8.0から8.2にdnfでアップグレード

PHP8.0の公式サポートが終了したのでPHP8.2にアップグレードしたときの覚書。 環境: CentOS Stream 8 WordPressがサポートしているphpバージョンも確認しておく。 参考:  PHP Compatibility and WordPress Versions – Make WordPress Core 1.PHP8.2をdnfモジュール一覧からアップグレード dnf moduleの中にphp8.2が追加されていた。 前の記事を参考に。 参考:  CentOS Stream 8のPHPを7.4から8.0にアップグレード 現在のモジュールを確認 # dnf module list php CentOS Stream 8 - AppStream Name                   Stream   php                    7.2 [d]  php                    7.3      php                    7.4      php                    8.0 [e]  php                    8.2      php8.0から8.2に切り替える。 phpを初期状態にresetしてphp8.2を有効にする。 # dnf module reset php # dnf module e...

ConoHa VPSを構築して初期設定

ConoHa VPSを初めて利用してみたときの覚書。 OS: CentOS Stream 9 アプリケーション: KUSANAGI manager 0.5.2 キーボードレイアウトを変更 VPS起動直後は日本語キーボードになっていたので英語配列に変更する。 (rootでログイン出来なくて少しハマった) まずは一時的に英語配列に変更 # loadkeys us 設定ファイルを変更。 # /etc/vconsole.conf KEYMAP="us" 日付確認。locale確認。 # date # timedatectl status IPアドレスを確認。 # ip a あとはSSHでリモートログインして設定した方がやりやすい。 セキュリティグループを設定 セキュリティグループが初期設定の「default」だと外部と通信できない。 コントロールパネルのVPSを選択して、セキュリティグループの項目で空けるポートを含んだセキュリティグループを追加する。 defaultは削除しなくていい。 SSH(22)のポートを開けたいので「IPv4v6-SSH」を追加。 HTTP(80), HTTPS(443)のポートを開けたいので「IPv4v6-Web」を追加。 SSHでリモートログインして初期設定 前の記事を参考にしながら初期設定 参考:  WebARENA IndigoのCentOS Stream 9を初期設定 ホスト名変更 # hostnamectl set-hostname conoha01.hoge.jp # hostnamectl status SELinuxを確認して無効化する。 # getenforce # less /etc/selinux/config SELINUX=disabled これで再起動。 # reboot どんなサービスが起動しているか確認。 # systemctl list-unit-files -t service EPELリポジトリは追加されていた。 gitの設定。 # git --version git version 2.43.0 # git config --global user.name "Hoge" # git config --global user.email "h...