インストールの続き
http(s) アクセスの統一、www の有り無し
Apache の rewrite モジュールで、http アクセスは https に、www なしのアクセスは www ありのアクセスにする。
http でのアクセス(https が off)の場合、https にリダイレクトさせるには、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
www 有り無しの統一の場合、www ありに統一するなら、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^foo\.jp$
RewriteRule ^(.*)$ http://www.foo.jp/$1 [R=301,L]
</IfModule>
両方なら、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^foo\.jp$
RewriteRule ^(.*)$ https://www.foo.jp%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
意味としては…
1 行目::
モジュール mod_rewrite.c が有効な場合
2 行目:
状態が「ホスト名が foo.jp」の場合
3 行目:
リクエスト文字列を「http://www.foo.jp/<リクエスト文字列>」とした URL に Moved Permanently したよと返答して終了
4 行目:(この行へは上記にあてはまらなかったら流れてくる)
状態が「HTTPS が off」の場合
5 行目:
「https://%{HTTP_HOST}%{REQUEST_URI}」(プロトコルを https にした URL)に Moved Permanently したよと返答して終了
という感じ。
PHP
PHP のインストール。必要そうな mbstring と pear を入れておく。
$ sudo apt install php8.1-cli php-pear php8.1-mbstring php-curl composer
タイムゾーンとか設定する。
[mbstring]
mbstring.language = Japanese
mbstring.substitute_character = none
mbstring.detect_order = UTF-8,SJIS-win,eucJP-win,ISO-2022-JP,ASCII
[Date]
date.timezone = “Asia/Tokyo”
$ sudo vi /etc/php/8.1/cli/php.ini
PHP FPM
最初から FPM で入れてみる。
$ sudo apt install php-fpm
/etc/php/8.1/fpm/php.ini に cli と同様の修正を入れておく。
サイトの設定ファイルの <VirtualHost>
に、
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/"
</FilesMatch>
と追記しておいて、
$ sudo a2enconf php8.1-fpm
$ sudo a2enmod proxy_fcgi
$ sudo systemctl restart apache2
適当な php ファイル(中身は <?php system('/usr/bin/id'); ?>
みたいなの)を用意してアクセスしてみる。
収容ドメインは別ユーザで html 等を管理するので、php もそのユーザで動作するようにする。
$ sudo cp /etc/php/8.1/fpm/pool.d/{www.conf,webadm.conf}
$ sudo vi /etc/php/8.1/fpm/pool.d/webadm.conf
$ sudo vi /etc/apache2/sites-available/<additional_domain>-ssl.conf
$ sudo systemctl restart apache2
$ sudo systemctl restart php8.1-fpm
同様の php ファイルを収容ドメインに置いてアクセスしてみる。
MariaDB
MariaDB をインストール・設定する。
Set root password で No で答える。ホストで sudo mysql で root で接続。
$ sudo apt install mariadb-server mariadb-client
$ sudo mysql_secure_installation
コメント
[…] https://www.netarium.jp/p-537/ […]