LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

VMWareのCentOS7(最小構成)→Symfony3環境構築まで

Last updated at Posted at 2017-08-01

自分メモです。
画像とかないのでわかりにくいです。
VMを人に渡すことを想定しています。

事前準備

VMWareをDLしておきます。(今回使っているのは7.1.0 build-2496824)
64bitのCentOS7のDVDのisoをDLします。

VMWareのウィザード

VMWareを起動し、「新規仮想マシン」を選択します。

次のように設定します。

項目タイトル 設定項目 設定内容
新規仮想マシン作成ウィザードへようこそ インストール元(ラジオボタン) 後でOSをインストール
ゲストOSの選択 ゲストOS Linux(デフォルト)
ゲストOSの選択 バージョン CentOS 64ビット(デフォルト)
仮想マシンの名前 仮想マシン名 任意
仮想マシンの名前 場所 特に変更しない
ディスク容量の指定 ディスク最大サイズ(GB)(S) 20.0(デフォルト)
ディスク容量の指定 - 仮想ディスクを単一ファイルとして格納(人に渡すとき便利だから)

完了。

CentOS7のインストール

VMWareの一覧に表示されるので、「仮想マシン設定の編集」を押します。

ハードウェアタブのCD/DVD(IDE)の接続で「ISOイメージファイルを使用する(M)」を選びます。
DLしておいたisoファイルを選択して設定画面を閉じます。

仮想マシンを起動します。

「Install CentOS 7」を選択します。
(仮想なのでメディアのチェックが不要なため)

言語を選択します。

インストールの概要画面で、不足している設定を実施します。
私のときはインストール先が選択されていなかったので選択しました。
その他に、ソフトウェアの選択で、
「ベース環境」「最小限のインストール」
「選択した環境のアドオン」「開発ツール」
にします。

インストールの開始ボタンを押します。
インストール中にRootパスワードを設定します。
(設定できます)

インストールが終わったら再起動しろと言われるのでします。

Linuxの設定

ネットワークの設定

ip addrで見ると、IPアドレスが設定されていないように見えます。
次のファイルを設定します。

$ vi /etc/sysconfig/network-scripts/ifcfg-eno…[インターフェイス名]

このファイルでONBOOT=yesにします。
また、UUIDをコメントアウトします。(人に渡す想定があるため)

再起動します。

pingで外部のサーバを叩いてみます。(google.comとか適当に)

通ります。

wget

wgetコマンドは使うのでインストールします。

$ yum install -y wget

時刻合わせ

大体の時刻を合わせます。

timedatectl set-time "YYYY-MM-DD hh:mm:dd:ss"

VMの場合、時刻同期はVMWareToolsで取得できます。
ただ、CentOSの場合は下記をインストールします。

$ yum install -y open-vm-tools

そして、後述の参考サイト通りに有効化します。

systemctl enable vmtoolsd.service
systemctl start vmtoolsd.service

参考:http://qiita.com/tbuchi888/items/fae2bc002cf7a12632d5

その後、timedatectlコマンドを打てば(引数なし)でOK。

ハードウェアクロックとソフトウェアクロック

参考:http://www14.plala.or.jp/campus-note/vine_linux/system/clock.html

ハードウェアクロックは、マザーボードが持つ内部時計であり、BIOS クロックやCMOS クロックとも呼ばれます。 システムクロックは、Linux がカーネル内部に持っている時計であり、私達が画面上で見るのはこのシステムクロックになります。

ハードウェアクロックが大元の時間で、システム起動時に参照されるらしい。
だから時刻を設定しても戻ってしまうときがある。

文字コードの確認

/etc/locale.confを確認して、LANG="ja_JP.UTF-8"になっていなければ変更します。

SELinuxの無効化

SELinuxは使用しないので無効化します。

getenforceコマンドで現状を確認。
Enforcingなら動いている。

無効化。

setenforce 0

もう一度getenforceコマンドで現状を確認し、PermissiveでOK。

永続化させるため、/etc/sysconfig/selinuxSELINUX=disabledを追加する。

firewallの設定

firewallの確認

systemctl status firewalld

設定

firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --add-service=mysql --zone=public --permanent

※mysqlも使うので追加

firewallコマンド使用オプション

オプション 説明
--list-services 現在使用しているサービスを表示
--zone=public publicゾーンを表示(初期で9つのゾーンがある)
--add-service サービスを追加する
--permanent 永続化(表示の場合は永続化したものを表示)

参照:http://www.server-memo.net/centos-settings/firewalld/firewalld.html

ここまで設定したらrebootする。

バーチャルボックスの場合

https://qiita.com/take-ookubo/items/930f2619268c15c4e6b2
を参考にNAT設定するとよい。

ミドルウェアの導入

Apacheの導入

Apacheをインストールする。
参考:https://weblabo.oscasierra.net/apache-installing-apache24-yum-centos7-1/

まずApacheの情報を確認。

yum info httpd

※ここでRepodata is over 2 week old.みたいなメッセージが出たら、yum makecache fastしとく。(yumのキャッシュデータが古いため)

2.4.6が入るようです。

yum -y install httpd

httpd -versionで正常に入ったことを確認。

自動起動のために下記コマンドを実施。

systemctl enable httpd.service

起動後(systemctl start httpd.service)、systemctl status httpd.serviceでactiveになっていることを確認。

しかしこのままでは接続できず。(403エラー)
Apacheの初期画面がなかったからっぽい?
touch /var/www/html/index.htmlしたらOKぽかったです。

ちなみにエラーログは/var/log/httpd/error_logにいる。

初期画面の出方についてか下記のサイトが勉強になりそう。
http://www.task-notes.com/entry/20150629/1435546800

このサイトでIndexは外しておいた方がいいとあったので。/etc/htttpd/conf/httpd.confの設定からIndexs外しました。

これでapacheは完了。

MySQL

参考:https://weblabo.oscasierra.net/installing-mysql57-centos7-yum/

mariaDBの削除

競合を起こす可能性があるので、mariaDBを削除する。

yum remove mariadb-libs

参考サイトにはデータフォルダも削除とあったけど、データフォルダはないようなので先へ。

インストール

公式のyumリポジトリを追加。

yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

yum info mysql-community-serverで確認できるようになればOK。
MySQLのバージョンは5.7.19っぽい。
MySQLをダウンロード。

 yum -y install mysql-community-server

確認。

mysqld --version

自動起動設定。

systemctl enable mysqld.service

起動。

systemctl start mysqld.service

設定

参考:https://weblabo.oscasierra.net/mysql-57-init-setup/

パスワードが設定されているらしい、
初回起動でログに残るので、cat /var/log/mysqld.log | grep passwordで確認した。

mysql_secure_installationでは下記のことが設定できるとのこと。

root ユーザーのパスワードの変更
VALIDATE PASSWORD プラグインのインストール
ポリシーに沿った root ユーザーパスワードの設定 (VALIDATE PASSWORD プラグインをインストールした場合)
anonymous ユーザーの削除
リモートホストから root ユーザーでログインするのを禁止する
testデータベースの削除 (存在する場合)

mysql_secure_installationコマンドで、参考サイトのように入力する。
0かyでOK。
パスワードが大文字+小文字+数字+記号のフルコンボで辛かった。

設定ファイル/etc/my.cnfのmysqldに下記設定を追加。

character-set-server = utf8
default_password_lifetime = 0

これでMySQLは完了。

PHPの導入

参考:https://weblabo.oscasierra.net/centos7-php71-install/

EPELリポジトリ→Remiリポジトリの追加

EPELリポジトリ情報をインストール。

yum -y install epel-release

Remiのリポジトリ情報をインストールする。

cd /etc/yum.repos.d
curl -O http://rpms.famillecollet.com/enterprise/remi.repo
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

ls -l /etc/yum.repos.d/にremi系が入っていればOK。

PHP7.1があるかサーチする。
yum search php71

インストールする。

yum -y install php71 php71-php

phpinfoを作成。

/var/www/html/info.phpに下記を追記。

<?php
phpinfo();

info.phpにアクセスして見れればOK。
最初文字だけしか表示されなかったので焦ったw

phpコマンドがないな?と思ったら、php71って名前になっている模様。
phpでもできるようだけど、とりあえずは放置。71って付けるだけだし…。

Symfony3のインストール

参考:http://symdoc.kwalk.jp/doc/book/installation

curl -Ls https://symfony.com/installer -o /usr/local/bin/symfony
chmod a+x /usr/local/bin/symfony

これで終わり。
(あとはアプリケーション作成とかする)

開発環境をセットアップ

Composer

参考:http://symnote.kwalk.jp/blog/2015-12-05/composer

curl -sS https://getcomposer.org/installer | php71
mv composer.phar /usr/local/bin/composer

ここにきてComposerやSymfonyがコマンドとして動いていないことに気づく。
どうやら、php71phpにしないといけないらしい。
なので下記コマンドでphpとして使えるようにする。
(多分内部的にphpコマンド使ってるんだと思われ)
これにたどり着くまでPATH入れまくったので、もし下記コマンドでもできない場合はPATHを試すといいかも。

scl enable php71 bash

これ以降、symfonyとcomposerうまくいくようになる。

一応これで大体おしまい。なはず。

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