Ubuntu と MySQL と php と WordPress と phpMyAdmin
Ubuntu 22.04 のアップデート
いつもと変わらず Ubuntu を起動する。
何事もなく、普通に Ubuntu は目を覚ます。しばらく何もせずにいると、いくつかのアップデートの通知が開く。それらを処理させる。ひととおり終了すると、またアップデートの通知が開く。22.04 LTS のアップデートができるとのこと。これは実は待っていたことでもある。
20.04 LTS のときも同じような具合だった。同じように通知が開き、それにおまかせしてアップデートさせた。途中に何かエラーの通知が出ていたのかは、もう覚えてはいない。一見、なにごともなくアップデートは終了したかのように思えた。しかし、ひとつ不具合が発生してしまうこととなった。
全部で5台の PC が繋がっている。Ubuntu は一台だけであとは Windows10。その不具合というのは、メイン PC の Windows10 にある画像が大量に入っているフォルダを、ドキュメントルート以下のフォルダにマウントさせ、そのフォルダにある画像を、ローカルホストでアクセスしたブラウザで表示させることができなくなってしまったというもの。アップデート前は同じことが問題なく出来ていたし、ブラウザ経由でなければ、それらの画像を表示させることはできた。
アップデートする直前にも、ブラウザで画像のスライドショーをするページで、それらの画像を見ていたのが、この件についての問題が生じてしまった原因なのかもしれない。アップデートするまえに一度、リブートさせていればよかったのかもしれない。
とにかく、何をどうすれば改善されるのかもわからず、さほど重要なことでもなかったので、その件についてはあきらめてしまっていた。つぎのアップデートのときに、気をつけてやれば改善されるのではないか、ぐらいに思っていた。
と、いうことで、何気なく待っていた 22.04 へのアップデート。このときは、その前に何も動かしてはいなかったので、さっそくアップデートを始めさせた。
途中、いくつか通知が表示された。今回はしっかりとそれを書き留めていた。
主だったところをいくつか並べてみると。
「サードパーティが提供するリポジトリを使わない設定にしました。
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、ソフトウェアソース ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。」
「Failure restarting some services for GNU libc updrade
The following services could not be restarted for the GNU libc library upgrade: mysql
You will need to start these manually by running ‘invoke-rc.d <service> start’.」
「Libpam0g:amd64 を設定しています。
Most services that use PAM need to be restarted to use modules built for this new version of Libpam. Please review the following space-separated List of services to be restarted now, and correct it if needs.Services to restart for PAM LIbrary upgrade:
yaws cron」
「Starting in Ubuntu22.04, all new releases of Firefox are only available to Ubuntu users through the snap package.
This package update will transition your system over to the snap by installing it.
It is recommended to close all open firefox windows before proceeding to the upgrade.」
「’yaws-chat’がインストールできません
アップグレードを続けますが、’yaws-chat’パッケージが動かない状態にある可能性があります。この件に関してバグレポートを送信することを検討してください。
installed yaws-chat packege post-installation script subprocess returned error exit status 1」
だいたいこんなところ。yaws に関しては、yaws-chat の他に yaws-mail など内容は同じものでいくつも表示された。この yaws 関連のものは、アップデート終了後のリカバリーだかなんだかで(よく覚えていない)結局インストールできたのだと思う。
気になるのは、MySQL に関するもの。この時に、なぜ MySQL において restart できないのだろう?と気がついていれば、そもそもこの後でおこる落とし穴に落っこちることもなかったのかもしれない。
アップデートは再起動することもなく終わった。あれっ?と、いう感じ。再起動しなくてもいいのだろうか?と思いつつ。それとも気がつかないうちに再起動してしまったのだろうか。ログインした記憶もないのだけれど。
なんにしても、アップデートは終了した。何事も問題はなさそうだった。すぐに、python やら Rust で作ったプログラムを動かしてみる。そして、Windows10 のフォルダをマウントし、ブラウザを起動してマウントフォルダの画像を表示させてみると、うれしいことに問題なく表示されるようになっていた。
ふと、画面が青っぽいことに気がついた。これは、ディスプレイサーバーとして「Wayland」が起動していたから。そう、いままでは、従来からの「Xorg」を使っていた。と、いうのは Wayland においての モニターの色調整のやり方がわからなかったからである。その点、Xorg は gamma が使えたので、青が強いモニターの色を、それを抑えて赤を補正するようにしていた。と、いうことで、それも Xorg に戻して、ほぼ、元のままの画面表示となった。
MySQL にログインできない?
ちょっと気になっていた MySQL に関しての告知。ためしに、と、ばかりにログインしようと試みてみたが・・・、と、いうかこのあたりのことはあまり記憶にない。はたして起動すらしていなかったのか、それならば、sudo systemctl start mysql で起動させたのか。
が、なんにしてもログインを試みた結果、あっさりと拒否されてしまったのは確かなこと。
この MySQL。実のところ全く使っていなかったので、インストールはしてあるがはたしてその先どこまで設定したのか全く記憶にない。そんなことなので、パスワードなどは何にしたのか全くわからない。あれこれと思い当たるものを試してみるが全滅。ちょっと調べてみると、全く何もしてなくて、初めてログインするということなら、パスワードは未設定のはずなので、パスワード無しでログインできるということなのであるけれど、そうはうまくいかず、「 ERROR: Access denied 」と、怒られてしまう。
ネットで探してみると、root のパスワードを忘れてしまった場合の対処の仕方は、いくつも教えてくれているところがある。ありがたや~、とその恩恵にあずかりたいけれど・・・。
その時検索した結果で、一番、目に付いたのが初期パスワードにてログインする方法。/var/log ディレクトリにある mysqld.log というファイルに保存されているということだが、残念ながら見当たらなかった。他に my.cnf を使ったり、セーフモードで起動したりといろいろ教えてくれている方法を試してみたが、一切、状況がかわることはなかった。
これ、後で気がついたことで、とりあえずインストール後、初期設定だけは終わらせていたならば、もしかしたら sudo mysql -u root でログイン出来たのかもしれない、と。
しかし、どうにもできないことが苛立たしく、もう、あきらめて再インストールしようということにしてしまった。そして、アンインストールしてから再びインストール。
でもね、アンインストールにしてもそんなに単純なことでもないようで、再インストールした後、MySQL は起動すらしなくなってしまった。なんでもエラーコードだそうで。結局これも相当格闘したけれど、解決することはできず。どうも、アンインストールのやり方が悪かったようなので、完全に消す方法が書いてあったサイトを参考にして再度アンインストール+インストールを試みた。すると今度はなんとか正常に新規インストールができたようで、ログイン+ mysql_secure_installation と難なく処理することができ、その後、データベースも問題なく扱うことができた。
で、そのアンインストールの手順を忘れないように残しておく。
参考にさせてもらったページはここ→「UbuntuへのMySQLインストール手順と設定」
ひとつ気をつけることは、4行目にある autoremove –purge。実はこの流れではこの4行目は使わなかった。と、いうのは、この前で mysql をアンインストールしたときにすでにやっていたから。そしてその時に、なぜか使っている python3 も消えてしまったから。その時の Ubuntu の起動中には使わなかったから?なのだろうか。
と、いうことで、このコマンドで MySQL はきれいに消すことができたようで、再インストール後、正常に使うことができるようになった。
以下はここのページ→「Qiita Ubuntu22.04 MySQL8.0.30をインストールする」を参考にさせてもらってMySQL をインストールした手順。間違いなく忘れてしまうから残しておこう。
MariaDB に気を引かれる
これで MySQL も使えるようになったし、WordPress も使えるようにしておこうか、などと考えていたところで、ふとしたことを知ることとなる。それは Ubuntu 22.04 のOS標準データベースは MariaDB とのこと。えっ!となったけれど、それでインストールのときに MySQL に関しての告知が出たのかな!などと思ったりした。
しかし、OS標準が MariaDB なら、そちらの方がいいなぁ、と気を引かれる。WordPress でも使ってみたいし。と、そう考えだしたらもう先に進むことしかできず、再びの MySQL アンインストールとなった。MariaDB のインストールも難なくおわり、ログインして mysql_secure_installation もあっさりと済み正常に使えるようになった。MariaDB のインストールもほとんど MySQL の場合と同じ。
参考にさせてもらったのはこのページ→「Ubuntu 22.04 : MariaDB 10.6 インストールと設定 : Server World」。ちょっとわからないのが、apt install の -y オプション。このオプションに関する説明がどこにも見つけられなかった。
phpMyAdmin がインストールできない
それではっ!と WordPress をインストールしようと思ったが、ちょっとその前に phpMyAdmin の方を先に入れておこうと。なんてことはなかろう、と始めてみたものの、その予想は見事に裏切られ、なにやらパッケージの依存関係にエラーがあるとのことで、インストールは拒否されてしまった。下は他のサイトからコピーしてきたものだけれど、ほぼ、同じような内容のものが表示されていたと思う。
「インストールすることができないパッケージがありました。おそらく、あり得ない状況を要求したか、(不安定版ディストリビューションを使用しているのであれば)必要なパッケージがまだ作成されていなかったり Incoming から移転されていないことが考えられます。以下の情報がこの問題を解決するために役立つかもしれません:以下のパッケージには満たせない依存関係があります」
で、そのパッケージというのは、あまり記憶が定かではないけれど、php8.1-mysql か php8.1-mysqli と php8.1-common だったと思う。そして、どちらがどちらだったかも定かではないけれど、バージョン表示が8.1.9 と 8.1.2 とかになっていて確かに違ってはいた。このとき稼働していた php は最新だった 8.1.9。ちなみに phpMyAdmin のインストールはこのページを参考にさせてもらった。ありがたいことです。ここ→「たまーのテクノロジー 【Ubuntu】phpMyAdminをインストールしてWebブラウザで管理【データベース】」
間違いなく忘れてしまうので、これもか大まかなところを書きとどめておく。
さあて、と。これはいったいどうすれば良かったのだろうか。確かに、古い Windows が使えば使うほど著しく不安定になってしまった原因は、古いソフトのインストールによって、現行バージョンの DLL が旧バージョンのもので上書きされてしまうことだったからで、インストールされるソフトのバージョン管理は必須のことだというのはわかる。けれど、ちゃんと管理されているのであれば、なぜ 8.1.2 のものが存在しているのだろう、と文句を言ってもしょうがない。何度も MySQL をアンインストールしたのが原因だろうか。しかも一度目は不完全なアンインストールだったようだし。
この時点で、phpMyAdmin の方はちょっとあきらめて WordPress の方をインストールさせてみようと試してみた。WordPress のインストールは、大まかに言えば、データベースに WordPress 用のデータベースとユーザーを設定し、ダウンロードしたファイルを解凍して、ブラウザでセットアップページにアクセスしてデータベースの設定などすれば良いとのこと。が、いざセットアップページにアクセスしてみると、データベースにアクセスできないといわれ、セットアップページは止まったままで全く機能しない状態だった。
このあたりも、あまりはっきりとは覚えていないのだけれど、php.ini において mysqli の extension を設定しても、phpinfo() では確認できなかったので、php-mysql などのモジュールをインストールしないといけないのだろうと思い、それを試みた。けれど、結果は phpMyAdmin のときと全く同じ。全く同じものの依存関係の問題でインストール出来なかったのだと思う。
ネットを漁っていると、aptitude というコマンドを使う方法があったので、さっそくこれをインストールして試してみた。はじめに提案されたものを受け入れてお願いしてみるものの、何も変わらなかった。再度チャレンジして、はじめに提案されたものを拒否して、二番目の提案をお願いしてみた。いくつかの php- がついたものを 8.1.2 にダウングレードするという提案だった。
処理が終わってみると、結果は改善どころか php すら動かなくなってしまった。あれま!である。やはり何をやっているのかちゃんと理解していないまま、事をすすめても良い結果は得られないということだと思う。Windows の php にしろ MySQL にしろ phpMyAdmin にしろ WordPress にしろ、フォルダごともってきて、あとは少し設定ファイルをいじり、必要ならパスを通してやるだけのことで、実にシンプルでわかりやすい。自動でやってくれるのはありがたいけれど、ブラックボックスの部分が多いと、問題がおきたときに結局よくわからずバンザイとなる。勉強不足でよく知らないということがそもそもの原因なんだけれども。
php のインストールし直し
あっさりとバンザイして、php も再インストールさせた。バージョンは、たぶんこの時点での Ubuntu 22.04 デフォルトの 8.1.2。 これにより php は起動するようになり、モジュールのインストールも出来るようになった。けれど結局バージョンは 8.1.2 にダウングレードしてしまった。
WordPress の設定
WordPress のインストールは、「WordPress.org 日本語 WordPress のインストール」を見ればわかる。ただ、このページは日本語ページなのに、ダウンロードするファイルの url は英語バージョンのファイルである。そのままダウンロードすると英語になってしまうので気をつけるべし。まぁ、ただ、後で日本語版をダウンロードして上書きすれば事は済む。
あと、必要なことは WordPress をインストールしたフォルダのパーミッションの変更。これをしておかないと WordPress がファイルを扱えない。そして、Apache の rewrite モジュールを有効にする必要がある。これをしておかないと、投稿の保存の時に、「更新に失敗しました。返答が正しい JSON レスポンスではありません。」のエラーが出て保存ができなかったり、サイトヘルスで「 REST APIで予期しない結果が発生しました」の表示が出たりするし、パーマリンクを設定しても、当然のこと正常に機能してはくれない。
あとがき
その後、phpMyAdmin も無事インストールすることができた。
ただし、すべてが解決したわけではない。php のバージョンは 8.1.2 のままである。さて、これはアップデートしてしまっても良いのだろうけれど・・・、と、なんだか不安ではある。しかしアップデートするにしても、その後、何日経っても apt update による対象の中には入ってはこなかった。これは Ubuntu 22.04 の php の標準のバージョンがこの時点では 8.1.2 だったからということらしい。
ならばどうして無理やりダウングレードする前は 8.1.9 だったのだろう。これに関しては、22.04 にアップグレードする前に動いていたのが 8.1.9 だったからであって、それは ppa のリポジトリ ondrej/php を登録していたからにほかならない。22.04 にアップグレードした後、一向にアップデートされなかったのは、22.04 のアップグレード時に、サードパーティが提供するリポジトリは、使わない設定にされているからである。それはアップグレードの時にしっかりと告知されていたとおり。
ゆえに、「設定」を開いて、「ソフトウェアのアップデート」ー>「他のソフトウェア」タブにおいて表示されるリストのなかにある、php の ondrej/php にチェックを入れれば、再び機能するようになってくれて、めでたく php は 8.1.9 と元に戻すことができた。
こんなに手間がかかってしまったのは、すべて、よく知らないということが原因。もっと Ubuntu のことをよく知っておかないといけない。そろそろ Windows にも見切りをつけようかとも思っていることであるし。と、さっそく Linux の本を2冊と MySQL の「詳解」と題名のついた本を図書館で借りてきたのであった。
Post : 2022/08/24 16:40
Comments feed
Trackback URL : https://strix.main.jp/wp-trackback.php?p=172033