使用環境
- Ubuntu 22.04
- Webサーバとしてnginx(Apacheでなく)
- DBサーバとしてMariaDB
- Laravelをインストールしている
上記の環境でphpMyAdminを入れたら、「mysqli拡張がありません」という表示が出たのでその対処法。
まずはLaravelでphpinfoを見れるようにする
Laravelをインストールしてあるディレクトリのroutes/web.phpに追加
Route::get('/phpinfo', function () {
phpinfo();
});
mysqli拡張をインストール
SSHでコマンド入力。
sudo apt-get install php-mysqli
php.iniを編集
先ほど設置したphpinfoページでphp.iniを検索するとパスが分かる。
SSHでコマンド入力。nanoツールで編集します。
sudo nano /path/to/php.ini
ctrl wでmysqliを検索。
;extension=mysqliの先頭の;を削除して有効化する。
ctrl o ⇒ エンターキーで上書き保存。
ctrl xでnanoツールを抜ける。
PHP-FPMを再読み込み
ApacheではなくNginxなので、sudo systemctl restart apache2は効かない。
まずはSSHでPHP-FPMの名前を確認する。
systemctl list-units | grep php
そうするとphp8.1-fpm.serviceというのが出てきた。これをマウスで選択してctrl cでコピー。手ごたえはないが、これでコピーできている。
次に、再読み込み。
sudo systemctl restart php8.1-fpm.service
最後の部分をさっき確認したPHP-FPM名で置き換える。
ここでファイルインポートしようとしたら、
🌟413 Request Entity Too Largeが出た🌟
nginxのclient_max_body_sizeを変更
nginxの設定ファイルは、chatGPT様のお告げによると、
/etc/nginx/nginx.conf、/etc/nginx/conf.d/、または/etc/nginx/sites-available/ディレクトリ内にあります。設定ファイルの具体的な場所は、サーバーの設定により異なることがあります。だそう。
私の場合は、/etc/nginx/sites-available/ドメイン名にあった。
先ほどと同じ要領で、
sudo nano /etc/nginx/sites-available/ドメイン名
で設定ファイルを編集する。
server{
}
のところに、
client_max_body_size 10M;
と追加する。
php.iniを編集
mysqliの設定を編集したのと同じ要領でphp.iniを再度編集し、post_max_size、upload_max_filesizeの数字を変更します。
sudo nano /path/to/php.ini
デフォルトはたぶん2Mなので必要なサイズの数字に変更する。
再起動
nginxを再起動。
sudo systemctl restart nginx
PHPも再起動。
sudo systemctl restart php8.1-fpm.service
※末尾は前述のように調べて置き換え。
phpinfoページを確認すると、反映されています。