2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Virtualbox+VagrantにCentOS8.1入れて、nginxのVirtualhostとAliasでのphpMyAdminの設定

2
Last updated at Posted at 2020-05-04

環境

  • ホスト:Windows 10 Pro
  • VM環境:Virutalbox+Vagrant

目標

ゲストOSのCentOS8.1にNginx、php、MySQL、phpMyAdminを入れて動作を確認する。
ウェブサイトの動作確認用に使用するVM環境であるため(開発はWindows上で行っている)、Vagrantの共有フォルダ機能を用いてソースファイルを共有し、ゲストへのUpload作業をしないでいいようにします。

※これまでにLAMPでやっていたのを、LEMPで構築したいので、ついでにCentOS8.1を試したという経緯です。

作業内容

Nginxのインストール

  • Version: 1.16

CentOSは8.1だが、元々は8.0を入れてからの更新であるためか、8.1でもそうなのか、nginx1.14がデフォルトになっていたので、どうせならと思い、1.16を入れてみる。

dnf module reset nginx
dnf module enable nginx:1.16
dnf -y module install nginx

を実行しました。

phpのインストール

  • Version : 7.4

Centos8のデフォルトはPHP7.2とか、8.1はPHP7.3なのかな?なので、

dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module reset php
dnf list php
dnf -y module install php:remi-7.4

でPHP7.4をremiから入れました。

MySQLのインストール

  • Version: 8.0

バージョンについては本当はMySQL5.7を入れた方が実環境なのだけど、Centos8.1にMySQL5.7は面倒っぽかったのと、新しいものを入れて試しておきたい気持ちもあって、8.0を入れてみる。
よくわかってないけど、CentOSに入ってるmysqlってCommunity-Serverじゃないのかな?ライセンスとかどうなんだ?ということでCommunity-Serverを入れてみる。

wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz
tar -zxvf phpMyAdmin-5.0.2-all-languages.tar.gz
mv phpMyAdmin-5.0.2-all-languages /usr/share/phpMyAdmin
cd /usr/share/phpMyAdmin/

これで配置は終わったので、nginxのVirtualhostかaliasでのアクセス設定が必要ですね。

NginxでのAlias設定

さて、ここで問題発生です。ずっとApacheしか触って来てないので、全くわかりません。ググります。
簡単な記述でできることが判明したので、

location /phpmyadmin {
    alias /usr/share/phpMyAdmin;
    index index.php;
}

そして、Virtualhostの設定も

server {
    listen 80;
    server_name test.centos81.vm;
    access_log /var/log/nginx/access_logs/test.vm.log main;

    location / {
        root /projects/test;
        index index.html index.php;
    }
}

で終わったと思いきや、、、動かないですね-、両方とも。。。
403エラー出ってますねー。failed (13: Permission denied)というのがerror.logに残ってますねー。

ここから数時間経過します

そして、原因がいくつか判明。

原因その1) PHPをAliasで動かすには fastcgiの設定が必要

下記のサイトを参考にさせて頂きました。

んで、

location /phpmyadmin {
    alias /usr/share/phpMyAdmin;
    index index.php;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_read_timeout 360;
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
    }
}

fastcgi_pass の表記は参考にさせて頂いたサイトもどこのサイトも
unix:/var/run/php-fpm/php-fpm.sock; とか unix:/var/run/php5-fpm/php-fpm.sock; とかってなってたけど、今回の環境は7.4だしCentOS8.1だしで、違うので、/var/run/ の中を確認してwww.sockを見つけた。これは正解なのかわかりません。

でもやっぱり動かない。

原因その2)SELinuxっていう守護神

これは、エラーが403なので、ユーザー変えたり、chmodしたり、chownしたりしても解決できずに諦めかけた時に見つかりました。

こちらのページで、まさに私の探していた情報がありました。※ハマッたので、記載ありがとうございます。

というわけで、

getenfoece
> Enforcing
setenforce 0
getenfoece
> Permissive

の後、無事にVirtualhostも表示できたし、phpの実行も確認できました。なので、SELinuxはおやすみなさい。

vi /etc/selinux/config

-SELINUX=Enforcing
+SELINUX=Permissive 

おまけ

Aliasは動くようになったけど、mysqliが無いって怒られたので、

dnf -y install php-mysqlnd

これで、phpMyAdmin 動いた。

結果

NginxやCentOSの常識を書いてるかもしれないけれど、私には常識ではなかったので勉強になりました。
NginxとApache、どっちがいいとかはないんだろうけど、両方知ってた方がいいんだろう。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?