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を見るには
にアクセス。
画面が真っ白だ…
ソースコードを見るとちゃんと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