- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-01-07T03:47:02+00:00","default:bokupi","bokupi")
#author("2023-01-07T05:59:10+00:00","default:bokupi","bokupi")
* AlmaLinux9に移行 [#c8e9b87d]
主に自分の備忘録としての内容です。
CentOS6のサポートが切れて久しいので、新しいOSに移行しました。
CentOSは開発中止となったので、AlmaLinuxを代替として選択しました。
** 以前のOSからデータ移行 [#f7925d8a]
必要なデータを、tarで圧縮します。パーミッションは維持しておきます。
tar cvzfp httpd.tar.gz httpd
新しいサーバで展開します。
tar xvzfp httpd.tar.gz
apacheなどのアプリケーション設定ファイルは、特に保存しませんでした。
アプリケーションのバージョンが変わって設定方法が変わる可能性があるからです。
面倒でなければ保存しておいた方が安心かと思います。
** AlmaLinuxの環境整備 [#w8b17397]
tarなどのコマンドも初期状態では使えませんので、不足しているコマンド等があれば、逐次インストールします。
# dnf install tar
# dnf install php
# dnf install ruby
# dnf install mysql-server mysql
# dnf install php-mysqlnd
** Perl関連の修正 [#tdc8445a]
Perlのバージョンが上がったことで、jcode.plでエラーが出るようになりました。
jacode.plを代わりに使います。
https://metacpan.org/release/INA/jacode-2.13.4.18
色々ファイルがありますが、必要なファイルはjacode.plのみです。
こちらをjcode.plがあるディレクトリに配置し、require対象をjcode.plからjacode.plに書き換えるだけでOKです。
** pukiwikiの更新 [#wdcfd377]
PHP8.1となったので、pukiwikiを1.5.3から1.5.4にアップデートする必要があります。
update_pukiwiki_153to154_eucjp.patch.zip の内容を適用しました。
数箇所衝突が発生しましたが、手動で直せそうなところは直し、対応箇所が見つからない部分は放置しました。
またwikiディレクトリ配下でも衝突が起きていましたが、マニュアル系かと思うので無視します。
パッチで更新した1.5.3なので、こうした衝突が起きたのかと思います。
下記のエラーが発生しましたが、該当ファイルのパーミッションを0666にして解決しました。
pkwk_chown(): fopen() failed for: CACHEDIR/pkwk_chown.lock
** SSL対応 [#eed3b05e]
必要なパッケージをインストールします。
# dnf install openssl
# dnf install mod_ssl
# dnf install epel-release
# dnf install certbot
# dnf install certbot-apache
certbotで証明書を発行する場合、自分がサーバ管理者であることを証明するために、httpd.confをいじる必要があります。~
https://hacknote.jp/archives/48748/
続いてssl.confを更新します。~
https://hacknote.jp/archives/48748/
設定ファイル修正後は、apacheを再起動します。
# systemctl restart httpd
** サブドメイン対応 [#f5a6f374]
httpd.confにサブドメインの情報を設定します。
とりあえず末尾に追加しておきます。
# for subdomain
<virtualHost *:80>
ServerName album.omoshiro-joho.com
DocumentRoot /var/www/yyy
AllowEncodedSlashes On
<Directory /var/www/yyy>
SetEnv HTTP_X_FORWARDED_PROTO http
SetEnv REAL_HOST_NAME album.omoshiro-joho.com
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
ssl.confにサブドメインの情報を設定します。
必要な項目だけで良いです。
<VirtualHost *:443>
DocumentRoot "/var/www/yyy"
ServerName album.omoshiro-joho.com:443
SSLCertificateFile /etc/letsencrypt/live/omoshiro-joho.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/omoshiro-joho.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/omoshiro-joho.com/chain.pem
</VirtualHost>
** Apache関連 [#a457f893]
その他の設定を反映します。まずはエイリアス設定です。
Alias /blog /var/www/httpd/d/prof/wp
続いて文字化け対策で、下記を設定します。これが指定されていると、htmlコンテンツ内の文字コード(実際の文字コードやmetaタグによる指定)を無視して、それより手前の段階で文字コードを設定してしまうため、複数の文字コードのページが混在している場合にはOffにする必要があります。
AddDefaultCharset Off
** mysql関連 [#n2c93454]
** サービス起動 [#b2711a7e]
まずサービスを起動します。
# systemctl start mysqld
下記で自動起動設定をします。
# systemctl enable mysql
設定変更後などで再起動したい場合は下記です。
# systemctl restart mysqld
** ユーザアカウント設定 [#q585c4c6]
管理ユーザを設定します。
# mysqladmin -u root password "****"
mysqlクライアントを起動します。
$ mysql -u root -p
mysql > CREATE USER 'bokupi'@'localhost' IDENTIFIED BY '****';
mysql > GRANT ALL PRIVILEGES ON *.* TO 'bokupi'@'localhost' WITH GRANT OPTION;
以前は下記のコマンド1発でユーザを作成できましたが、今はできないようです。
GRANT ALL PRIVILEGES ON *.* TO 'bokupi'@'localhost' IDENTIFIED BY '****' WITH GRANT OPTION;
** データのリストア [#u0ea40b2]
mysqldumpでダンプしたSQLデータを用いてリストアします。通常はシステムテーブルを含めた環境一式をそのまま復元できますが、今回はMySQLのバージョンが8に上がったことでシステムテーブルのデータベースエンジンがMyISAMからinnoDBに変わったことでそのまま復元できません。
対応としては、ダンプしたSQLデータからmysqlデータベースの部分(恐らく先頭にある)を削除した上でリストアすることです。
その代わりユーザー設定などは改めて行なう必要があります。
$ mysql -u root -p < all_db_dump.sql
** PHPのバージョンアップに伴う対応 [#k8a3b4af]
言語仕様の変化や厳格化により、古いコードに影響が出る場合があります。
result[enable] → result['enable']
apacheのerror_logに情報は出るはずですが、出ないケースもあるので、php-cgiを使ってデバッグするのが良いです。
$ php-cgi detail.php id=1670652116
----
** 履歴 [#i715743f]
- 2023/01/07 bokupi : 新規作成