STAFF BLOG スタッフブログ

【Vagrant】CentOS8の環境作ってみた(・囚・)v

CentOS8、昨年秋頃にリリースされましたね。
ってことで、早速ですが仮想環境Vagrantで環境構築してみたです。

CentOS8までの道のり・・・

「bento/centos-8」のboxを指定しvagrant up、エラー解消よくわからず。。

SSHにログイン、通常なら「ID=root:PW=vagrant」で接続できたのに鍵の認証をきいてくる。

「vagrant ssh-config」で確認すると、private keyのありかがわかります。SSHで鍵の場所を指定して接続します。

参考元:https://qiita.com/FKSM/items/789f8d8c71f0e9dc420a

共有フォルダのマウントに失敗(GuestAdditionsのver違いによる失敗)に気づき、エラー解消を実行。
実行して、おかしなエラーが発生、指定されたエラーログを見てくれとのことだったので、エラーログを確認。
「Kernel configuration is invalid.」、、、なんだこれ。。

カーネル、手動でインストールしても解消されず・・・。
ということで、わからない場合は、VirtualboxとVagrantのアップデート実行してしまおう。

VirtualboxとVagrantのアップデート実行

まずは既存の構築済のboxを、Virtualboxのアップデート実行後、vagrant up。
んん??なんかおかしなエラー。。。

No usable default provider could be found for your system.

Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.

The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.

If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn't working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.
PS C:\Vagrant\xxxxx> vagrant up --provider=PROVIDER
The provider 'PROVIDER' could not be found, but was requested to
back the machine 'default'. Please use a provider that exists.

あっ、Vagrantのアップデート忘れてた。。。
Vagrantアップデート後、vagrant up。

The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

vagrant plugin expunge --reinstall

Or you may want to try updating the installed plugins to their latest
versions:

vagrant plugin update

Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-vbguest (= 0.15.0)'

まだ、エラー起こる。。。
たぶん、プラグインのアップデート必要っぽい。。

プラグインのアップデート実行。
「vagrant plugin update」を実行。

Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false

今度は、共有フォルダのマウントに失敗。。。
昔のバージョンは、Vagrantfileに共有フォルダの指定はいらなかったけど、共有フォルダの指定が必要になったみたい。。

# Vagrantfile内に以下の記述を追加。(※Windowsの記述)
config.vm.synced_folder "C:\\xxxx\\xxxx", "/vagrant", owner: "vagrant", type: "virtualbox"

共有フォルダの指定して、vagrant up。
既存の構築済の各環境が、共有フォルダのマウントに失敗(GuestAdditionsのver違いによる失敗)で立ち上がらず。

参考元:https://www.qript.co.jp/blog/technique/4002/


# SSHに接続しアップデート
sudo yum update

# vagrant-vbguestプラグインでGuestAdditionsを再インストール
vagrant plugin install vagrant-vbguest

# vagrant-vbguestプラグインの実行
vagrant vbguest

# vagrantリロード
vagrant reload default

GuestAdditionsのver違いによる失敗を解消したのはいいが、わわわぁぁぁ・・・・・。
vagrant reloadを実行したから一から全部実行。。。

しかも一部、レポジトリのURL変わってるのがある。。
環境構築できてない。。。

ふぅ・・・、なんとか環境戻すことできた。。
VirtualboxとVagrantのアップデートは慎重に。
そして「bento/centos-8」は何事もなく立ち上がる。

やっぱり、最新のboxを使用する際は、VirtualboxとVagrantも最新がいいみたいです。
そしてCentOS8の環境構築につづく・・・。

Centos8の構築

インストールしたのは以下です。

  • apache2.4.37
  • php7.4
  • mysql8.0
  • phpmyadmin
  • ssmtp
  • MailHog

CentOS8から、インストール関係はdnfコマンドの使用になったみたいです。
yumのコマンドも、まだ使用可能です。

参考元:https://qiita.com/yunano/items/eedd3da40d67394881a2

レポジトリ登録

dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

apacheのインストール&設定

dnf -y install httpd

systemctl enable httpd.service

cat >> /etc/httpd/conf/httpd.conf << "EOF"
<Directory "/var/www/html">
    AllowOverride all
    Require all granted
</Directory>

FileEtag None
RequestHeader unset If-Modified-Since
Header set Cache-Control no-store
EOF

phpのインストール&設定

参考元:https://vertys.net/centos8-installed-php73/

# デフォルト以外のphpバージョンをインストールしたかったので
dnf module disable php

dnf module install -y php:remi-7.4
dnf install -y which

# 上記のphpパッケージにないものを個別にインストール
dnf install -y php-mysqlnd
dnf install -y php-xmlrpc
dnf install -y php-pear
dnf install -y php-gd
dnf install -y php-pdo
dnf install -y php-intl
dnf install -y php-mysql
# /etc/php.iniの設定
cat >> /etc/php.ini << "EOF"
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = pass
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
sendmail_path = /usr/local/sbin/ssmtp -t -i
upload_max_filesize = 128M
post_max_size = 128M
EOF

mysqlのインストール&設定

dnf -y module install mysql

systemctl enable mysqld.service

# /etc/my.cnfに追記
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
EOF

phpMyAdmin

dnf config-manager --set-enabled remi
dnf install -y phpMyAdmin

細かくphpの設定がまだだったようで。。

CentOS8からは、phpの設定必要が増えたようです。

参考元:https://edasaka.hatenablog.jp/entry/2020/01/06/120000

# php.iniの設定(※参考元にそって設定してね)
vi /etc/php.ini

# php-fpmの設定(※参考元にそって設定してね)
vi /etc/php-fpm.d/www.conf

# php-fpmの起動
systemctl start php-fpm
systemctl enable php-fpm

# 起動後、php.ini、php-fpmを編集したら再起動をかける
systemctl restart php-fpm
systemctl restart httpd

apache、php-fpmのステータス確認

# apacheのステータス確認
systemctl status httpd

# php-fpmのステータス確認
systemctl status php-fpm

# warningエラーがでていないか確認しておく。

php-fpmでALC setでwarningがでた場合は、以下を参考にお願いします。
私は、alc.group、alc.userをコメントアウトすることでwarningが消えました。

参考元:https://itneko.com/php-fpm-acl/

# php-fpmの設定
vi /etc/php-fpm.d/www.conf
;listen.acl_users = apache,nginx
;listen.acl_groups =

# 編集し終わったら、再起動
systemctl restart php-fpm
systemctl restart httpd

ssmtpのインストール

dnf -y install gcc

systemctl stop postfix
systemctl disable postfix

wget http://ftp.de.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.64.orig.tar.bz2
tar xjf ssmtp_2.64.orig.tar.bz2
cd ssmtp-2.64
./configure
make

make install

# host等の入力要求聞いてくるが、すべてエンターでOK
cp ./ssmtp /usr/local/sbin/ssmtp

cat >> /usr/local/etc/ssmtp/ssmtp.conf << "EOF"
mailhub=localhost:1025
EOF

# /etc/php.iniのメール送信設定が以下になっているか確認
sendmail_path = /usr/local/sbin/ssmtp -t -i

MailHogのインストール

wget --quiet -O ~/mailhog https://github.com/mailhog/MailHog/releases/download/v1.0.0/MailHog_linux_amd64

chmod +x ~/mailhog
cp ~/mailhog /usr/local/sbin/

上記まですべて完了

MailHog、apache、mysqlを起動

systemctl enable mailhog.service
systemctl start mailhog.service

systemctl start httpd.service
systemctl start mysqld.service

systemctl enable httpd.service
systemctl enable mysqld.service

最後に

OSが1版かわると、こうもかわるんですね。

前、CentOS6⇒7にバージョンUPされて、7に慣れ始めたころ、8にUPで。。

また、お勉強になりましたわ。

ご参考までに~~~(・囚・)ノ

INDEXブログ一覧へ
CONTACTお問い合わせはこちら