Help us understand the problem. What is going on with this article?

プログラムが動くための下拵え

More than 1 year has passed since last update.

Vagrantでの開発環境構築

はじめに

システム開発と言ってもピンキリで、幅の広い分野。
自分は今までPGとかDBでSQLと戯れたり、いろいろやってきたけれど
動いているプログラムの土台部分は全然わからないときたもんでして。

勉強のためにとりあえず土台を作ってみようということです。

以下備忘録というか四苦八苦のメモ書きです。

構築予定の環境

CentOS 7
Apache
MySQL5.7
PHP

必要なものをMacにインストール

仮想環境の初期準備

  • 起動するOSを決めて以下よりURLを探す
    • CentOSにも種類がいっぱいあるらしい
    • 困ったぞ。どれにしようか。とりあえず最新っぽいやつでいいかな。

http://www.vagrantbox.es/

-- 仮想環境を作成するフォルダを作成
mkdir [フォルダ名]
cd [フォルダ名]

-- この呪文で仮想環境が出来上がるらしい
vagrant box add [Box名] [URL]

-- 上記で決めたURLからvagrantのboxをaddするのかな?
-- コマンドの利用方法は記載いろいろあるけど、そもそも何がどうなっているのかはわからない

-- 初期設定ファイルの作成
vagrant init [Box名]

VagrantFile設定

  • 開発用途だけの利用目的なので以下を有効にする
config.vm.network "private_network", ip: "192.168.33.10"
  • 他に使えそうな部分
    • config.vm.synced_folder
      • フォルダ同期
      • こっちは業務で使っているのでなんとなくわかる
    • vb.memory = "1024"
      • 仮想環境に割りあてるメモリーだと思う
      • 時間があったら要調査

Vagrantの起動!

  • 魔法の呪文 vagrant up
    • 同期関係でエラーが出ていた
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

よくわかわないのが残念。
後日調べたい

起動自体は出来ている

.ssh権限変更

chmod 0700 /home/vagrant/.ssh
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh

yum update

  • yum update 経由でインストールしているパッケージのバージョンアップを行っている

Apacheインストール

sudo yum -y install httpd // Apacheのインストール(apache = httpd)

sudo service httpd start // Apacheの起動

sudo chkconfig httpd on // システム起動時に自動的にApacheを起動する設定

mysqlインストール

  • CentOS7を選択したためデフォルトでMariaDBがはいってる?
// 確認
rpm -qa | grep maria
mariadb-libs-5.5.50-1.el7_2.x86_64

// 削除
yum remove mariadb-libs
rm -rf /var/lib/mysql/
// インストール
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql mysql-devel mysql-server mysql-utilities

// 確認
rpm -qa | grep mysql
mysqld --version
-- mysqlの初期化
mysqld --user=mysql --initialize
// 自動起動設定
systemctl enable mysqld.service
  • 本番にあげる場合はセキュリティ設定をするべき
    • mysql_secure_installation
      • 今回は本番じゃないので割愛

PHPのインストール

  • リポジトリの追加
    • リポジトリとはなんぞや。
    • 後日調査したい
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

PHPのインストール

yum -y install --enablerepo=remi,epel,remi-php70 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlnd

ひととおりの準備完了

早速アクセスしてみた。。。

ダメでした。
つながらない。

firewalldというものがなんか関係あるっぽいので無効にする

-- firewalld を止める
systemctl stop firewalld

再度アクセス
apacheの画面が出たのでとりあえずできたみたい

その後Vagrant再起動したら繋がらなくなった

firewalldがまた生き返ったようでした。

-- 状態の確認
systemctl is-enabled firewalld

-- 常時起動の無効化
systemctl disable firewalld

振り返り

プログラムが動くまでにはいろいろ用意が必要なわけでして、
ただ実装するだけじゃダメなんですね。

ken_y
bizwind
保育園向けサービス「ママれん!メール」、およびWebシステム開発・iOSアプリ開発などを行っている会社です。
https://mren.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away