STAFF BLOG スタッフブログ

【Vagrant】設定時のエラーまとめ

PC新しくなった。
サクサク動いて快適。\(^囚^)/

Vagrantも旧から新PCにエクスポート⇒インポートで大丈夫かと思ってたけど、PCのOSやVagrant・VirtualBoxのバージンが違いすぎるのかエラーがでて調べてもエラー対処に困った。。。
旧PCの時とエラーが全然違う・・・。
諦めて一からapacheやphpのインストールをすることにしました。
私のWindows環境は、CentOSのバージョンによっても対処が違い、いろいろエラーが表示され設定環境するまでに時間がかかりました。

PC環境

  • Windows10
  • VirtualBox 5.1.14
  • Vagrant 1.9.1

インストール&初期設定


設定方法↓↓↓
http://qiita.com/ozawan/items/160728f7c6b10c73b97e

開発用途にあわせ、CentOS6.8とCentOS7.2を用意。

apacheやphpのバージョンは以下です。↓↓↓
https://www.qript.co.jp/blog/technique/3986/

※上記でCentOS7.2は、インストールまでできたのでOKだと思ってましたが細かい設定が漏れていたようです。。。


パッケージboxを追加してエラーがでるのであれば

==> default: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

ARPCHECK=no /sbin/ifup eth1 2> /dev/null

Stdout from the command:

Device eth1 does not seem to be present, delaying initialization.

Stderr from the command:


参考元:http://qiita.com/rojiuratech/items/459f1dec234a3873d3d3


# SSHで実行
sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules

# vagrantリロード
vagrant reload


vagrant up後、private_networkができてない


127.0.0.1は接続できるので127.0.0.1でSSH接続後以下を実行。
なぜかCentOS6.8では起こらず、CentOS7.2だけ発生。

参考元:http://qiita.com/junqiq/items/a19d3ea48b072a1b28d3


# ネットワーク確認
ls -l /etc/sysconfig/network-scripts/ifcfg*

# 各設定を確認
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

# ifcfg-enp0s8に、xxxx.xxxx.xxxx.xxxx(※private network)が設定されていれば念のため、権限を変更
chown vagrant:root /etc/sysconfig/network-scripts/ifcfg-enp0s8

# ネットワーク再起動
systemctl restart network.service

# Vagrantファイルに設定する場合は以下を追記
config.vm.provision "shell", run: "always", inline: "chown vagrant:root /etc/sysconfig/network-scripts/ifcfg-enp0s8"
config.vm.provision "shell", run: "always", inline: "systemctl restart network.service"


共有フォルダのマウントに失敗(カーネル再インストール)

Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=500,gid=500 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device


※CentOS6.8で発生しました。

参考元:http://qiita.com/okoi/items/05921db3612b7476aa60


# Guest Additionsの再インストール
vagrant plugin install vagrant-vbguest

# SSHでカーネルをインストール
sudo yum install ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6.8/x86_64/updates/security/kernel-devel-2.6.32-642.6.2.el6.x86_64.rpm

# SSHでインストールされたか確認
ls /usr/src/kernels/2.6.32-642.6.2.el6.x86_64

# SSHでGuest Additionsを再ビルド
sudo /etc/init.d/vboxadd setup

# ゲストOSを再起動
vagrant reload


共有フォルダのマウントに失敗(GuestAdditionsのver違いによる失敗)

Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device


※CentOS7.2で発生しました。

参考元:http://tech.withsin.net/2015/07/10/virtualbox-vagrant-mount-fail/


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

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

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

# vagrantリロード
vagrant reload default


vhostやphpMyAdminの設定


以前、私はCentOS6とCentOS7のvhostの設定の違いについて書いたこちらをご参考に。
https://www.qript.co.jp/blog/technique/3986/

public_html直下のトップページは表示されたのに、下層ページを遷移すると『Server was not found.』となる場合


/etc/httpd/conf/httpd.conf の設定を確認して見てください。


# CentOS6系
<Directory />
    AllowOverride None
</Directory>

『None』となっていれば『All』に変更し、apacheをrestart。

# CentOS7系
<Directory />
    AllowOverride none
    Require all denied
</Directory>

『None』となっていれば『All』、『denied』となっていれば『granted』に変更し、apacheをrestart。


webサイトのキャッシュが強くてcssやjs等を変更しても効かない


参考元:http://ameblo.jp/itboy/entry-11392756539.html
参考元:http://qiita.com/toshihirock/items/e2d187e91ee5446c7a69


# /etc/httpd/conf/httpd.confに追記
FileEtag None
RequestHeader unset If-Modified-Since
Header set Cache-Control no-store

# 一度、キャッシュされたものを解放しておく
sh -c "echo 1 > /proc/sys/vm/drop_caches"

# 設定変更後 apache再起動(CentOS6)
service httpd restart

# 設定変更後 apache再起動(CentOS7)
systemctl restart httpd.service

# 上記対応でも、キャッシュが効いているようであれば、/etc/httpd/conf/httpd.confに追記
<Directory [対象のディレクトリ]>
    EnableMMAP Off
    EnableSendfile Off
</Directory>

# 設定変更後 apache再起動(CentOS6)
service httpd restart

# 設定変更後 apache再起動(CentOS7)
systemctl restart httpd.service


phpMyAdminのセッションタイムアウトの時間が早すぎる


※初期設定は1440秒(26分)で設定されております。
phpMyAdminをインストール後、以下を設定します。
参考時間は12時間に変更です。


# /etc/phpMyAdmin/config.inc.php の最後に以下を追記
$cfg['LoginCookieValidity'] = 43200;

# php.ini の一番最後に「session.gc_maxlifetime = 43200」を追加、もしくは「session.gc_maxlifetime」を変更
session.gc_maxlifetime = 43200

# 設定変更後 apache再起動(CentOS6)
service httpd restart

# 設定変更後 apache再起動(CentOS7)
systemctl restart httpd.service


CentOS7でMailhogが自動起動で立ち上がらない


MailHogのインストール&概要はこちらを参考に↓↓↓
http://qiita.com/hideji2/items/1919d5759cf42146f919

MailHogをインストールする前に「ssmtp」をインストール。
ssmtpを設定し、/etc/php.ini に「sendmail_path = /usr/local/sbin/ssmtp -t -i」を追記。
Macはssmtpをインストールしなくても大丈夫で
/etc/php.ini に「sendmail_path = /usr/sbin/sendmail -S mail:1025」を追記でよいらしい。

CentOS6では、/etc/init/mailhog.conf で自動起動するように設定してましたが
CentOS7では、/etc/init/ のディレクトリ自体がない。

自動起動設定が変更になっている。。。∑(・囚・|||

参考元:http://qiita.com/DQNEO/items/0b5d0bc5d3cf407cb7ff

MailHogをインストール後、以下を行って下さい。


# 下記の内容を、/etc/systemd/system/mailhog.service に保存する
[Unit]
Description = MailHog

[Service]
ExecStart = /usr/local/sbin/mailhog > /dev/null 2>&1 &
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target


# サービスを有効に
systemctl enable mailhog.service

# サービス起動
systemctl start mailhog.service




やっと、できた・・・。_(・囚・)⌒)_


参考元URLの方々、感謝です。

設定失敗することで、Linux環境に対して
かなり慣れてきました。


(・囚・)ノ
INDEXブログ一覧へ
CONTACTお問い合わせはこちら