この投稿は 限定共有に設定されています。 投稿者本人及びURLを知っているユーザーのみアクセスすることができます。

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

  • 0
    コメント

自分メモです。
画像とかないのでわかりにくいです。
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する。

ミドルウェアの導入

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

http -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/mysql.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うまくいくようになる。

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