見出し画像

Ubuntu20.04+Nginx&Apache2.4+PHP7.4にMariaDBとphpmyadminを入れる

環境

さくらのVPS1G
Ubuntu20.04
Nginx&Apache2.4
PHP7.4

ゴール

MariaDBとphpmyadminを入れる。Wordpress立てたいのでした。

MariaDBを入れる

http://serverarekore.blogspot.com/2020/05/ubuntu-2004phpmyadminmariadb.html にお世話になります。

インストールします。

sudo apt update
sudo apt upgrade
sudo apt-get -y install mariadb-server
sudo mysql -uroot -e "SET PASSWORD = PASSWORD('MariaDBのroot用パスワードを任意で決める'); FLUSH PRIVILEGES;"

これでユーザー:root PASS:(任意で決めたもの) が出来ます。
MariaDBのログ関係ファイルは/var/lib/mysqlに勝手に作られます。

phpmyadminのソースインストール

実はphpmyadminのデフォルト配置は/usr/share/phpmyadminなので少し改造して以下のようにしました。

sudo apt-get -y install apache2 \
php7.4 \
libapache2-mod-php7.4 \
php7.4-mysql \
php7.4-common \
php7.4-xml \
php7.4-zip \
php7.4-mbstring \
php7.4-curl \
unzip

wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz

tar xvfz phpMyAdmin-5.0.2-all-languages.tar.gz

sudo mv phpMyAdmin* /usr/share/phpmyadmin

sudo chown -R www-data:www-data /usr/share/phpmyadmin

sudo ln -s /usr/share/phpmyadmin htmlを置く予定の場所の絶対パスを全部

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'が出た場合

https://mitsuba.hateblo.jp/entry/20110226/1298732743 ここの方法がうまくいきました。

とりあえずCtrl+Cで強制的に抜けます。
locate grep | mysql.sock
ps aux | grep mysqld


mysql.sockがあれば
sudo ln -s var/run/mysqld/mysqld.sock /tmp/mysql.sock
#この場所は /etc/mysql/my.conf内で変更可能。
無ければ以下。
sudo /etc/init.d/mysql stop
sudo rm -f /var/run/mysqld/mysqld.sock
sudo rm -f /tmp/mysql.sock
sudo /etc/init.d/mysql start &

参考:ここも詳しいです。
MariaDB で ERROR 2002 (HY000): Can't connect to local MySQL server が発生する際の対処法

Apach2.4の設定

/etc/apache2/conf-available以下にphpmyadmin.confを新規作成。

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
<RequireAny>
Require all granted
</RequireAny>
</IfModule>
</Directory>
<Directory /usr/share/phpmyadmin/setup/>
<IfModule mod_authz_core.c>
<RequireAny>
Require all granted
</RequireAny>
</IfModule>
</Directory>

sudo a2enconf phpmyadmin
sudo systemctl restart apache2
します。
ここを参考にしました。
Ubuntu 20.04で最新のPhpMyAdminをインストールする方法

ブラウザからphpmyadminを見るには

http://VPSのIPアドレス/phpmyadmin

にアクセス。

画面が真っ白だ…

ソースコードを見るとちゃんとphpmyadminは吐き出されてる。なんでー?と思ってぐぐったら先人がいた。ありがとうございます。

Nginx から Apache にリバースプロキシするように設定しているのですが、その際に画像と CSS ファイル、JS ファイルは Nginx に処理させるようにしています。

まさに!!!これ!!!

私はリバースプロキシの部分を

location ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) {
root ルートディレクトリ/static;
index index.html;
ssi on;
}

と書いていたのですが、これからCSSとJSを消去して

location ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|inc|INC|ico|ICO) {
root ルートディレクトリ/static;
index index.html;
ssi on;
}

としたら、無事表示されました!
画像はstaticに入ってないから見えないけどね…。

ちなみにうまく入れない場合、PASS忘れた場合はここ参照。


phpMyAdminのパスワードの変更手順
【phpMyAdmin】パスワード設定後にログイン画面でエラーが出る原因・対策

pypmyadmin周りのuser,PASSを設定する箇所一覧

/usr/share/phpmyadmin/config.inc.php(初回はconfig.inc.exsample.phpをコピペして新規作成する)の
$cfg['Servers'][$i]['controluser'] = 'USER名;
$cfg['Servers'][$i]['controlpass'] = 'PASSワード;
/etc/dbconfig-common/phpmyadmin.confの
dbc_dbuser='phpmyadmin'
dbc_dbpass='yourpassowrd'

MariaDBのちゃんとした起動と停止方法

MySQL/MariaDBとサービス/サーバの起動・停止方法
によると、

ソースインストールの場合
起動:mysqld_safe &
停止: mysqladmin -u root -p shutdown

パッケージインストールの場合
起動:systemctl start mariadb.service &
停止:systemctl stop mariadb.service
状態を見る:systemctl status mariadb.service

トラベラーという昔のSFRPGのソロジャーナル化を頑張っています。印刷代の足しにしてやるぜ!という嬉しい方がいましたらメンバーシップ入って頂けると喜びます。