Vagrant + CentOS 7.6 + nginx 1.14 + MySQL 8.0 + php 7.1 + Redis 5.0.3 + cakephp 3.7.4

2つのWebアプリと1つのDB(使っていない旧DB)をvagrantに押し込める。

– CentOS 7.6
– nginx 1.14
– MySQL 8.0
– php ~~7.3~~ 7.1
– Redis 5.0.3
– cakephp 3.7.4

Windowsに以下のソフトウェアがインストールされてあることが前提

– https://www.vagrantup.com/
– https://www.virtualbox.org/
– https://git-scm.com/downloads

基本的にGit Bashで操作します。(TeraTaerm等でも可)

※ワークディレクトリは各自で読み替えてください

**CentOSの準備**


作業ディレクトリを移動
$ cd /c/iWork/vagrants/
ディレクトリを作成
$ mkdir aaasub-xxxdomain.local
ディレクトリに移動
$ cd aaasub-xxxdomain.local/
BOXリストを確認
$ vagrant box list
OSイメージをダウンロード(イメージファイルはここで検索 https://www.vagrantbox.es/)
$ vagrant box add centos7 https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box
BOXリストを確認
$ vagrant box list
centos7 (virtualbox, 0)
初期化
$ vagrant init centos7
設定ファイルを編集
$ vi Vagrantfile
----------------
config.vm.network "private_network", ip: "192.168.33.10" # 各自WindowsPCのネットワーク設定と合わせる必要あり
config.vm.hostname = "aaasub-xxxdomain.local"
config.hostsupdater.aliases = ["bbbsub-xxxdomain.local", "phpmyadmin-xxxdomain.local", "phpredisadmin-xxxdomain.local"]
----------------
host名を自動で起動時に追加・停止時に削除をしてくれるプラグインをインストール
$ vagrant plugin install vagrant-hostsupdater
VM起動
$ vagrant up
ログイン確認
$ vagrant ssh
OSバージョン確認
[vagrant@aaasub-xxxdomain ~]$ cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
OSバージョンアップ(7.1 ⇒ 7.6)
[vagrant@aaasub-xxxdomain ~]$ sudo yum update
[vagrant@aaasub-xxxdomain ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

時刻を日本時刻に
[vagrant@aaasub-xxxdomain ~]$ timedatectl
[vagrant@aaasub-xxxdomain ~]$ sudo timedatectl set-timezone Asia/Tokyo
[vagrant@aaasub-xxxdomain ~]$ timedatectl

ファイアウォールを無効
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status firewalld
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl stop firewalld
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl disable firewalld
[vagrant@aaasub-xxxdomain ~]$ exit
VM再起動
$ vagrant reload
ログイン
$ vagrant ssh

SELinuxの設定を確認
[vagrant@aaasub-xxxdomain ~]$ sudo getenforce
Disabled

もしDisabledでなかったら変更が必要
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/selinux/config
----------------------
#SELINUX=enforcing
SELINUX=disabled
----------------------
設定を変更したらVM自体の再起動が必要
[vagrant@aaasub-xxxdomain ~]$ exit
$ vagrant reload
$ vagrant ssh

**php~~7.3~~ 7.1インストール**


[vagrant@aaasub-xxxdomain ~]$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[vagrant@aaasub-xxxdomain ~]$ sudo yum install yum-utils
[vagrant@aaasub-xxxdomain ~]$ sudo yum-config-manager --enable remi-php73 ←php7.3のini_set()関数でbbbsubアプリでエラー
[vagrant@aaasub-xxxdomain ~]$ sudo yum-config-manager --disable remi-php73
[vagrant@aaasub-xxxdomain ~]$ sudo yum-config-manager --enable remi-php71
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php
[vagrant@aaasub-xxxdomain ~]$ php -v
PHP 7.1.26 (cli) (built: Jan 9 2019 08:02:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.26, Copyright (c) 1999-2018, by Zend Technologies

**nginxインストール**


リポジトリ登録
[vagrant@aaasub-xxxdomain ~]$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
インストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install nginx
バージョン確認
[vagrant@aaasub-xxxdomain ~]$ nginx -v
nginx version: nginx/1.14.2
起動テスト
[vagrant@aaasub-xxxdomain ~]$ sudo nginx -t
ステータス確認
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status nginx
起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl start nginx
ステータス確認
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status nginx
自動起動設定
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl enable nginx
ログアウト
[vagrant@aaasub-xxxdomain ~]$ exit

ブラウザで以下のURLにアクセスしnginxのデフォルトページが表示されることを確認する
http://192.168.33.10/
http://aaasub-xxxdomain.local/ # これでもnginxのデフォルトページが表示されるはず。/etc/hostsファイルの設定が効いているため

**nginxでphpinfoを出すまで設定**


サーバ設定ファイルを編集
[vagrant@localhost ~]$ sudo vi /etc/nginx/conf.d/aaasub-xxxdomain.local.conf
----------------
server {
listen 80;
server_name aaasub-xxxdomain.local;
root /var/www/aaasub-xxxdomain.local;
index index.php;
access_log /var/log/nginx/aaasub-access.log;
error_log /var/log/nginx/aaasub-error.log;

location ~ \.php$ {
root /var/www/aaasub-xxxdomain.local;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
----------------

htmlを配置するディレクトリを用意する
[vagrant@aaasub-xxxdomain ~]$ sudo mkdir /var/www/aaasub-xxxdomain.local

phpinfoファイルを用意
ファイル作成
[vagrant@aaasub-xxxdomain ~]$ sudo vi /var/www/aaasub-xxxdomain.local/phpinfo.php
----------------

**php-fpmのインストール**


インストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php-fpm
設定編集
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/php-fpm.d/www.conf
----------------
;user = apache
;group = apache
user = nginx
group = nginx

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
----------------

ステータス
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status php-fpm
起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl start php-fpm
ステータス
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status php-fpm
自動起動もしておく
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl enable php-fpm
nginxも再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart nginx

phpinfoをwebrootに移動させる
[vagrant@aaasub-xxxdomain ~]$ sudo cp /var/www/aaasub-xxxdomain.local/phpinfo.php /var/www/aaasub-xxxdomain.local/aaasubapp/webroot/phpinfo.php

phpinfo確認
ブラウザからアクセスしphpinfoページが表示されることを確認する
http://aaasub-xxxdomain.local/phpinfo.php
⇒いつものphpinfo画面が出たらOK

**MySQL 8.0 のインストール**


リポジトリを追加
[vagrant@aaasub-xxxdomain ~]$ sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
インストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install mysql-community-server --enablerepo=mysql80-community
バージョン確認
[vagrant@aaasub-xxxdomain ~]$ mysqld --version
/usr/sbin/mysqld Ver 8.0.15 for Linux on x86_64 (MySQL Community Server - GPL)
ステータス確認
[vagrant@aaasub-xxxdomain ~]$ systemctl status mysqld
自動起動設定
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl enable mysqld
起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl start mysqld
mysql起動後にログから初期パスワードを確認
[vagrant@aaasub-xxxdomain ~]$ grep password /var/log/mysqld.log
2019-02-28T04:45:18.474742Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fo9hFXw7:agf
rootユーザでログイン
[vagrant@aaasub-xxxdomain ~]$ mysql -uroot -p
Enter password: <前出の初期パスワード>
mysql> exit

MySQLmysql 8.0 のセキュリティ設定
[vagrant@aaasub-xxxdomain ~]$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: <前出の初期パスワード>

Error: Access denied for user 'root'@'localhost' (using password: YES)
[vagrant@aaasub-xxxdomain ~]$ sudo mysql_secure_installation
----------------------------------
Securing the MySQL server deployment.

Enter password for user root:

The existing password for the user account root has expired. Please set a new password.

New password: を入力 ←適当パスワード

Re-enter new password: を入力

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

All done!
----------------------------------

開発環境ではパスワード難易度を下げます
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl stop mysqld
設定ファイルの[mysqld]の下に追記する
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/my.cnf
----------------------------------
[mysqld]
# passwd strong level
validate_password.length=4
validate_password.mixed_case_count=0
validate_password.number_count=0
validate_password.policy=0
validate_password.special_char_count=0
----------------------------------
再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl start mysqld

ログイン確認
[vagrant@aaasub-xxxdomain ~]$ mysql -uroot -p
Enter password: を入力

パスワード難易度を下げたので簡単なパスワードに変更可能
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

ログインしたらutf8mb4でデータベース作成する
基幹システム用DB
mysql> CREATE DATABASE cccdb DEFAULT CHARACTER SET utf8mb4;
業務システム用DB
mysql> CREATE DATABASE eeedb DEFAULT CHARACTER SET utf8mb4;

db_userユーザーを作成する
mysql> CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'password';
mysql> exit

ログイン確認
[vagrant@aaasub-xxxdomain ~]$ mysql -udb_user -p
Enter password: を入力
⇒ログイン可能であること

DB選択
mysql> USE cccdb
⇒ERROR 1044 (42000): Access denied for user 'db_user'@'localhost' to database 'cccdb'
 cccdbに対してのアクセス権が無いので設定する

rootでログインしなおしたらdb_userに特定のデータベースにアクセスできる権限を付与
mysql> GRANT ALL ON cccdb.* TO 'db_user'@'localhost';
mysql> GRANT ALL ON eeedb.* TO 'db_user'@'localhost';

db_userでログインし直してDB選択
mysql> USE cccdb
Database changed
⇒OK

mysql> exit

**redis 5.0.3 のインストール**


インストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install redis --enablerepo=remi
バージョン確認
[vagrant@aaasub-xxxdomain ~]$ redis-server -v
⇒Redis server v=5.0.3 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=5194991bde1f5722
バージョン確認
[vagrant@aaasub-xxxdomain ~]$ redis-cli -v
⇒redis-cli 5.0.3
ステータス
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status redis
起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl start redis
ステータス
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl status redis
自動起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl enable redis
RedisのPHPライブラリをインストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php-redis

設定ファイルの確認
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/redis.conf
----------------
bind 127.0.0.1
----------------

再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart redis
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart php-fpm
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart nginx

ファイル作成
[vagrant@aaasub-xxxdomain ~]$ sudo vi /var/www/aaasub-xxxdomain.local/aaasubapp/webroot/phpredis.php
----------------
pconnect('127.0.0.1');
$redis->set('dog', 'baw');
var_dump($redis->get('dog'));
----------------

ブラウザからアクセスしページが表示されることを確認する
http://aaasub-xxxdomain.local/phpredis.php
⇒bawが出たらOK

**phpMyAdminのインストール**


[vagrant@aaasub-xxxdomain ~]$ sudo yum install phpMyAdmin
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/nginx/conf.d/phpmyadmin.conf
----------------
server {
listen 80;
server_name phpmyadmin-xxxdomain.local;
root /usr/share/phpMyAdmin;
index index.php;
access_log /var/log/nginx/phpmyadmin-access.log;
error_log /var/log/nginx/phpmyadmin-error.log;

location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
----------------

再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart nginx && sudo systemctl restart php-fpm

アクセス確認
http://phpmyadmin-xxxdomain.local/

⇒エラーが出る。
 セッションディレクトリのパーミッションがapacheになっている…

確認
[vagrant@aaasub-xxxdomain ~]$ sudo ls -la /var/lib/php/
所有グループを変更
[vagrant@aaasub-xxxdomain ~]$ sudo chgrp nginx /var/lib/php/*
確認
[vagrant@aaasub-xxxdomain ~]$ sudo ls -la /var/lib/php/

アクセス確認
http://phpmyadmin-xxxdomain.local/

ログインできない場合はconfigファイルを適宜書き換える

sockファイルの場所を確認する
[vagrant@aaasub-xxxdomain ~]$ grep socket /etc/my.cnf
socket = /var/lib/mysql/mysql.sock

設定ファイル書き換える
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/php.ini
----------------
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock
----------------

再起動
$ sudo systemctl restart php-fpm && sudo systemctl restart nginx

※ここまでできればよいのだが、MySQL8.0系になったことで挙動が変わったようだ。
 パスワードをmysql_native_password方式で保存しておかないと現状phpMyAdminからはアクセス不可。
 本番は通常の作成方法でよいと思われる。

[vagrant@aaasub-xxxdomain ~]$ mysql -uroot -p
mysql> USE mysql;
mysql> ALTER USER 'root'@'localhost' identified with mysql_native_password by 'password';
mysql> ALTER USER 'db_user'@'localhost' identified with mysql_native_password by 'password';

⇒これでブラウザでrootユーザとdb_userとでpasswordを入力してログインOKだった。

phpMyAdminにログインすると警告が出ているのを調査したら、実はパーミッションが問題だった。
[vagrant@aaasub-xxxdomain ~]$ sudo ls -la /etc/phpMyAdmin/
[vagrant@aaasub-xxxdomain ~]$ sudo chgrp nginx /etc/phpMyAdmin/
[vagrant@aaasub-xxxdomain ~]$ sudo chgrp nginx /etc/phpMyAdmin/config.inc.php

**phpRedisAdminのインストール**


[vagrant@aaasub-xxxdomain ~]$ cd
[vagrant@aaasub-xxxdomain ~]$ git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
[vagrant@aaasub-xxxdomain ~]$ cd phpRedisAdmin
[vagrant@aaasub-xxxdomain ~]$ git clone https://github.com/nrk/predis.git vendor
[vagrant@aaasub-xxxdomain ~]$ cd ../
[vagrant@aaasub-xxxdomain ~]$ sudo mv phpRedisAdmin/ /usr/share/

[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/nginx/conf.d/phpredisadmin.conf
--------------------------------
server {
listen 80;
server_name phpredisadmin-xxxdomain.local;
root /usr/share/phpRedisAdmin;
index index.php;
access_log /var/log/nginx/phpredisadmin-access.log;
error_log /var/log/nginx/phpredisadmin-error.log;

location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
--------------------------------

再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart php-fpm && sudo systemctl restart nginx

アクセス確認
http://phpredisadmin-xxxdomain.local/

**cakephp3のインストール**


インストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install unzip
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php-intl
再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart php-fpm

composerコマンドの設置
[vagrant@aaasub-xxxdomain ~]$ cd
[vagrant@aaasub-xxxdomain ~]$ curl -sS https://getcomposer.org/installer | php
[vagrant@aaasub-xxxdomain ~]$ sudo mv composer.phar /usr/local/bin/composer.phar
[vagrant@aaasub-xxxdomain ~]$ alias composer='/usr/local/bin/composer.phar'
[vagrant@aaasub-xxxdomain ~]$ composer --version
[vagrant@aaasub-xxxdomain ~]$ composer self-update
[vagrant@aaasub-xxxdomain ~]$ composer create-project --prefer-dist cakephp/app aaasubapp
[vagrant@aaasub-xxxdomain ~]$ sudo mv aaasubapp /var/www/aaasub-xxxdomain.local

nginxの設定ファイル
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/nginx/conf.d/aaasub-xxxdomain.local.conf
-------------------------------------------------------------
server {
listen 80;
server_name aaasub-xxxdomain.local;
root /var/www/aaasub-xxxdomain.local/aaasubapp/webroot;
index index.php;
access_log /var/log/nginx/aaasub-access.log;
error_log /var/log/nginx/aaasub-error.log;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
-------------------------------------------------------------

再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart nginx

ブラウザで確認する
http://aaasub-xxxdomain.local/
⇒OK

あとはデータベース接続設定が不足している
[vagrant@aaasub-xxxdomain ~]$ sudo vi /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.php
-------------------------------------------------------------
'username' => 'db_user',
'password' => 'password',
'database' => 'cccdb',
-------------------------------------------------------------

ブラウザで確認する
http://aaasub-xxxdomain.local/
⇒OK

高速化を試しておく
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php-pecl-apcu
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php-opcache
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart php-fpm
⇒ブラウザで確認したところ、115ms ⇒ 35msとなった。

**git cloneしたものがvagrant内とsyncするまで**


$ cd /c/iWork/vagrants/aaasub-xxxdomain.local
$ mkdir src
$ cd src
$ git clone http://my-gitlab-address/xxxdomain/aaasub.git
$ cd /c/iWork/vagrants/aaasub-xxxdomain.local
$ vagrant ssh
[vagrant@aaasub-xxxdomain ~]$ sudo ls -la /vagrant/src/
⇒ aaasubディレクトリがsyncされています。

最後にシンボリックリンクを張ります
現状のディレクトリをリネームして寄せます
[vagrant@aaasub-xxxdomain ~]$ sudo mv /var/www/aaasub-xxxdomain.local/aaasubapp /var/www/aaasub-xxxdomain.local/__aaasubapp
シンボリックを作成
[vagrant@aaasub-xxxdomain ~]$ sudo ln -s /vagrant/src/aaasub/aaasubapp /var/www/aaasub-xxxdomain.local/aaasubapp
シンボリックリンクの確認
[vagrant@aaasub-xxxdomain ~]$ ls -la /var/www/aaasub-xxxdomain.local/
⇒ lrwxrwxrwx 1 root root 35 Feb 22 16:35 aaasubapp -> /vagrant/src/aaasub/aaasubapp

[開発TIPS]
gitlab の aaasubapp リポジトリにはvendor、tmp、logsディレクトリを保存しないようになっているので、
ソースを新たに git clone した際には composer update をする必要があります。
もし、Windows 側で aaasubディレクトリを消したとします。
改めてgit clone した場合は、sync先のaaasub/aaasubapp内でcomposer updateする必要があります。
composer update するとaaasubappの下のvendorディレクトリにドカドカとプラグインがダウンロードされます。
また、tmp、logsディレクトリは自動的に作られるようです。
[vagrant@aaasub-xxxdomain ~]$ cd /vagrant/src/aaasub/aaasubapp
[vagrant@aaasub-xxxdomain ~]$ alias composer='/usr/local/bin/composer.phar'
[vagrant@aaasub-xxxdomain ~]$ composer --version
[vagrant@aaasub-xxxdomain ~]$ composer update

この場合、config/.app.php ファイルの編集が必要です。
$ sudo cp /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.default.php /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.php
$ sudo vi /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.php
------------------------------------------------------------------------
//'salt' => env('SECURITY_SALT', '__SALT__'),
'salt' => env('SECURITY_SALT', '適当な文字列'),

'username' => 'db_user',
'password' => 'password',
'database' => 'cccdb',
------------------------------------------------------------------------

ブラウザで確認する
http://aaasub-xxxdomain.local/
⇒OK。復旧しました。

**git cloneしたbbbsubディレクトリがvagrant内とsyncするまで**


$ cd /c/iWork/vagrants/aaasub-xxxdomain.local/
$ cd src
$ git clone http://my-gitlab-address/xxxdomain/bbbsub.git
$ cd ..
$ vagrant ssh
[vagrant@aaasub-xxxdomain ~]$ sudo ls -la /vagrant/src/
⇒ bbbsubディレクトリがsyncされています。

nginxの設定ファイル
[vagrant@aaasub-xxxdomain ~]$ sudo vi /etc/nginx/conf.d/bbbsub-xxxdomain.local.conf
-------------------------------------------------------------
server {
listen 80;
server_name bbbsub-xxxdomain.local;
root /var/www/bbbsub-xxxdomain.local/bbbsub/app/webroot;
index index.php;
access_log /var/log/nginx/bbbsub-access.log;
error_log /var/log/nginx/bbbsub-error.log;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
-------------------------------------------------------------

再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart nginx

ディレクトリ作成
[vagrant@aaasub-xxxdomain ~]$ sudo mkdir /var/www/bbbsub-xxxdomain.local
シンボリック作成
[vagrant@aaasub-xxxdomain ~]$ sudo ln -s /vagrant/src/bbbsub /var/www/bbbsub-xxxdomain.local/bbbsub
シンボリックリンク確認
[vagrant@aaasub-xxxdomain ~]$ ls -la /var/www/bbbsub-xxxdomain.local/
⇒lrwxrwxrwx 1 root root 18 Feb 28 15:37 bbbsub -> /vagrant/src/bbbsub

ブラウザでアクセスして確認
http://bbbsub-xxxdomain.local/
⇒NG。真っ白なのでエラーログを見つつ修正する
[vagrant@aaasub-xxxdomain ~]$ sudo tail -f /var/log/nginx/bbbsub-error.log
ディレクトリ作成
[vagrant@aaasub-xxxdomain ~]$ sudo mkdir /vagrant/src/bbbsub/app/tmp/cache/persistent
[vagrant@aaasub-xxxdomain ~]$ sudo mkdir /vagrant/src/bbbsub/app/tmp/logs

CakePHP2のエラーログ
[vagrant@aaasub-xxxdomain ~]$ sudo tail -f /vagrant/src/bbbsub/app/tmp/logs/error.log
⇒DBにデータがないのでエラーになっている風。

別途取ってあったcccdb__20190220.dmp.gz、eeedb__20190220.dmp.gzのバックアップファイルをWinSCPや、TeraTermなどでVM上に転送します。

[vagrant@aaasub-xxxdomain ~]$ sudo yum remove php*
[vagrant@aaasub-xxxdomain ~]$ sudo yum-config-manager --disable remi-php73
[vagrant@aaasub-xxxdomain ~]$ sudo yum-config-manager --enable remi-php71
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php
[vagrant@aaasub-xxxdomain ~]$ php -v
PHP 7.1.26 (cli) (built: Jan 9 2019 08:02:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

インストール
[vagrant@aaasub-xxxdomain ~]$ sudo yum install php-fpm php-redis phpMyAdmin php-intl php-pecl-apcu php-opcache
再起動
[vagrant@aaasub-xxxdomain ~]$ sudo systemctl restart php-fpm && sudo systemctl restart nginx

gitlab の aaasubapp リポジトリにはvendor、tmp、logsディレクトリを保存しないようになっているので、
ソースを新たに git clone した際には composer update をする必要があります。
もし、Windows 側で aaasubディレクトリを消したとします。
改めてgit clone した場合は、sync先のaaasub/aaasubapp内でcomposer updateする必要があります。
composer update するとaaasubappの下のvendorディレクトリにドカドカとプラグインがダウンロードされます。
また、tmp、logsディレクトリは自動的に作られるようです。
[vagrant@aaasub-xxxdomain ~]$ cd /vagrant/src/aaasub/aaasubapp
[vagrant@aaasub-xxxdomain ~]$ alias composer='/usr/local/bin/composer.phar'
[vagrant@aaasub-xxxdomain ~]$ composer --version
[vagrant@aaasub-xxxdomain ~]$ composer update

この場合、config/.app.php ファイルの編集が必要です。
$ sudo cp /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.default.php /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.php
$ sudo vi /var/www/aaasub-xxxdomain.local/aaasubapp/config/app.php
------------------------------------------------------------------------
//'salt' => env('SECURITY_SALT', '__SALT__'),
'salt' => env('SECURITY_SALT', '適当な文字列'),

'username' => 'db_user',
'password' => 'password',
'database' => 'cccdb',
------------------------------------------------------------------------

ブラウザで確認する
http://aaasub-xxxdomain.local/
⇒OK。復旧しました。

[vagrant@aaasub-xxxdomain ~]$ vmstat 1
⇒swapのsiに数字が出てるswapは基本なしが望ましい。

$ cd /c/iWork/vagrants/aaasub-xxxdomain.local
$ vi Vagrantfile
----------------------------
#vb.memory = "1024"
vb.memory = "4096"
----------------------------
VM再起動
$ vagrant reload

[vagrant@aaasub-xxxdomain ~]$ vmstat 1
⇒cakphp3デフォルトページにアクセスするだけでswapのsiが発生するとかはなくなりました。メモリ重要。

httpd on Docker on Vagrant on Windows 10


Git Bash で作業

$ vagrant init
$ vi Vagrant
------------------------------------
config.vm.box = "bento/centos-7.3"

config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "docker.local"
------------------------------------
$ vagrant ssh

以下VM内でのコマンド

$ sudo yum update kernel
$ sudo yum install kernel-devel kernel-headers dkms gcc gcc-c++

$ sudo yum install docker
$ sudo systemctl start docker
$ systemctl status docker.service
$ sudo systemctl start docker.service
$ sudo yum update
$ sudo systemctl start docker
$ sudo yum remove docker docker-common docker-selinux docker-engine
$ sudo yum install yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum makecache fast
$ yum list docker-ce --showduplicates | sort -r
$ sudo yum install docker-ce
$ sudo systemctl start docker
$ sudo docker run hello-world
$ sudo systemctl enable docker

$ vi ~/Dockerfile
------------------------------------
FROM centos:centos7
LABEL maintainer "saito"
RUN yum install -y httpd
COPY ./index.html /var/www/html
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
------------------------------------
$ vi ~/index.html
------------------------------------




Docker TEST HTTPD

Docker TEST HTTPD !!!



------------------------------------
$ sudo docker build -t saito/httpd .
$ sudo docker images
$ sudo docker run -p 8080:80 -d saito/httpd

ブラウザで
http://docker.local:8080/

vagrant で centos 7 + nginx 1.12 + php 7.1 + fuelphp 1.8 + mysql 5.7 + phpMyAdmin + phpRedisAdmin を試す

Vagrant CentOS 7.3 で php7 + mariadb + nginx + WordPress を試してみる

Vagrant CentOS 7.3 で php7 + mariadb + nginx + WordPress を試してみる

VagrantでMattermostを試してみる

VagrantでMattermostを試してみる

環境は以下で確認した
Windows10
VirtualBox
vagrant
CentOS 7.2
Mysql 5.7
nginx 1.10

コマンドプロンプトにて

$ vagrant plugin install vagrant-hostsupdater
$ vi Vagrantfile
----------------
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "yourdomain.dev"
----------------
$ vagrant up

Mattermostのインストール

まずMySQL5.7のインストール

mysqlと競合するmariadb関連のライブラリが既に入っているのでアンインストール

$ sudo yum remove mariadb*

mysqlディレクトリの存在確認

$ sudo ls -la /var/lib/mysql/
もしあれば
$ sudo rm -rf /var/lib/mysql/

yumコマンドでインストール
リポジトリを追加

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

インストール

$ sudo yum install mysql-community-server

バージョン確認

$ mysqld --version

ステータス確認

$ systemctl status mysqld.service

起動

$ sudo systemctl start mysqld.service

停止

$ sudo systemctl stop mysqld.service

自動起動設定

$ sudo systemctl enable mysqld.service

mysql起動後にログを確認

$ cat /var/log/mysqld.log | grep 'password is generated'
2015-10-25T08:42:09.501502Z 1 [Note] A temporary password is generated for root@localhost: <初期パスワード>

rootユーザでログイン

$ mysql -uroot -p
Enter password: <初期パスワード>

MySQLmysql 5.7のセキュリティ設定

$ mysql_secure_installation
Enter password for user root:
New password: DbPass1! # ←仮の新rootパスです
Re-enter new password:

・匿名ユーザーアカウントを削除 Y
・ローカルホスト以外からアクセス可能な root アカウントを削除 Y
・test データベースの削除 Y
・即反映するか Y

ログイン確認

$ mysql -uroot -p
Enter password: 仮の新rootパス

⇒ログインできること

ログインしたらutf8でデータベース作成する

mysql> CREATE DATABASE mmdb DEFAULT CHARACTER SET utf8;
mysql> CREATE USER 'mmdbuser'@'localhost' IDENTIFIED BY 'MmDbUserPass1!'; # ←仮のmmuserパスです
mysql> GRANT ALL PRIVILEGES ON mmdb.* TO 'mmdbuser'@'localhost' IDENTIFIED BY 'MmDbUserPass1!';
mysql> FLUSH PRIVILEGES;
mysql> exit

Mattermost本体のインストール

最新版のバージョンとURLを確認
https://about.mattermost.com/download/

ダウンロード

$ wget https://releases.mattermost.com/3.10.0/mattermost-3.10.0-linux-amd64.tar.gz

ダウンロードしたパッケージを展開すると「mattermost」というディレクトリが作成されるので、これを適当なディレクトリに移動する。今回は/opt/ディレクトリ以下に移動した。

展開

$ tar xvzf mattermost-3.10.0-linux-amd64.tar.gz

移動

$ sudo mv mattermost /opt/

データ保存先ディレクトリ

$ sudo mkdir /opt/mattermost/data

設定ファイルを適宜編集

$ vi /opt/mattermost/config/config.json
"DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

"DataSource": "mmdbuser:MmDbUserPass1!@tcp(localhost:3306)/mmdb?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

Mattermostアプリを実行用のmattermostユーザを作成

$ sudo useradd -r mattermost -U

ファイル/ディレクトリのパーミッションを変更

$ sudo chown -R mattermost:mattermost /opt/mattermost

SystemdでMattermostサービスを管理するための設定ファイルを用意する

$ sudo vi /etc/systemd/system/mattermost.service
-------------------------------------------------
[Unit]
After=network-online.target
Description=mattermost server
Requires=network-online.target rsyslog.service mysqld.service

[Service]
WorkingDirectory=/opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mattermost

[Install]
WantedBy=multi-user.target
-------------------------------------------------

systemctl設定の反映

$ sudo systemctl daemon-reload

サービスの実行

$ sudo systemctl start mattermost

サービスが稼動しているかどうかも確認

$ sudo systemctl status mattermost

ブラウザで動作確認
http://yourdomain.dev:8065/

ブラウザの80番ポートでアクセスできるようにする。
ここではnginxを利用する

nginxをインストールする

$ sudo yum install nginx

configファイルに設定を追加し、mattermostの8065ポートをReverseProxyにする設定を入れます。

$ vi /etc/nginx/conf.d/nginx.conf
server {
listen 80;
server_name yourdomain.dev;

location / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:8065;
}
}

nginxを起動

$ sudo systemctl start nginx
$ systemctl status nginx

ブラウザで動作確認
http://yourdomain.dev:80/

日本語全文検索をしたい

世知辛いと投稿しておく
コメントで辛いを検索
⇒Oh! Hitしない…

my.cnfに追記

$ sudo vi /etc/my.cnf
-----------------------------------
[mysql]
default-character-set = utf8mb4

[mysqld]
# setting for utf8mb4
character-set-server = utf8mb4
innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
-----------------------------------

スキーマをダンプ

$ mysqldump -d mmdb -u mmdbuser -p > ddl.sql
$ grep "FULLTEXT" ddl.sql
FULLTEXT KEY idx_channels_txt (Name,DisplayName)
FULLTEXT KEY idx_posts_message_txt (Message),
FULLTEXT KEY idx_posts_hashtags_txt (Hashtags)
FULLTEXT KEY idx_users_all_txt (Username,FirstName,LastName,Nickname,Email),
FULLTEXT KEY idx_users_all_no_full_name_txt (Username,Nickname,Email),
FULLTEXT KEY idx_users_names_txt (Username,FirstName,LastName,Nickname),
FULLTEXT KEY idx_users_names_no_full_name_txt (Username,Nickname)

⇒とりあえずPostsテーブルのMessageカラムだけは対処する


$ mysql -u mmdbuser -p mmdb

Postsテーブルのidx_posts_message_txtインデックスを削除

mysql> ALTER TABLE Posts DROP INDEX idx_posts_message_txt;

Ngramでインデックスを貼る

mysql> ALTER TABLE Posts ADD FULLTEXT INDEX idx_posts_message_txt (Message) WITH PARSER ngram COMMENT 'ngram index';

コメントで世知辛いを検索
⇒Hitした。OK

Ngramすげーと思ってたら、Mroonga のほうが速いらしい。。

参考
http://knowledge.sakura.ad.jp/knowledge/5933/
http://qiita.com/shadowhat/items/c29a6d0362a2742425ba
http://qiita.com/terukizm/items/b477943b63c66ab7d454

vagrantでの開発環境構築手順書

開発環境構築手順書 php7.1

想定する環境

* ローカル開発環境は Windows
* 本番サーバは Amazon Linux であるが、ひとまず Vagrant VMサーバは Centos 7系 とする

ミドルウェア構成

* httpd 2.4
* php 7.1
* mysql 5.7

前提としてインストールする開発アプリケーション

インストール

* Virtualbox
** https://www.virtualbox.org/wiki/Downloads
* Vagrant
** https://www.vagrantup.com/downloads.html
*** コマンドプロンプトにて

$ vagrant -v
Vagrant 1.9.3

* Git for Windows(コマンドプロンプトでgitコマンドを使えるようになる)
** https://git-for-windows.github.io/

Windows上のコマンドプロンプトから操作

* Vagrant で起動させる Vagrant box(今回はCentos7.2を選択)
** http://www.vagrantbox.es/ にたくさんアップされているので、今回は
*** https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box をダウンロード

Vagrant VMインストール

* ここからしばらく Git Bash を使って作業する
** [スタート]->[すべてのプログラム]->[Git]->[Git Bash]

# 任意の場所にディレクトリを作成する

$ mkdir vagrants
$ cd vagrants
$ mkdir xxxxx
$ cd xxxxx

** *注意*
*** 「任意の場所」->Windows上の任意の場所
# BOX追加

$ vagrant box add --insecure centos72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

# 初期化

$ vagrant init centos72

# ローカルでの自動ホスト名書き換えのためのプラグインをインストール

$ vagrant plugin install vagrant-hostsupdater

# 設定ファイルを適宜修正

$ cd /【任意のパス】/vagrants/xxxxx
$ vi Vagrantfile

# teraterm等からVMにアクセスしたいのでネットワーク項目のコメントアウトを外す
(※IPアドレスは各自適当に読み替えて下さい)

# config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "private_network", ip: "192.168.33.10"
# ローカルでのホスト名を追記(これを書いておくと勝手にvagrant-hostsupdaterがC:\windows\system32\drivers\etc\hostsファイルを書き換えてくれる)
config.vm.hostname = "xxxxx.dev"
config.hostsupdater.aliases = ["xxxxx-phpmyadmin.dev","xxxxx-phpredisadmin.dev"]

# VM起動

$ vagrant up

** 起動しない場合
### [コントロール パネル]->[ネットワークとインターネット]->[ネットワーク接続]->[VirtualBox Host-Only Network]
### [VirtualBox Host-Only Network]ダブルクリック->[詳細]->[IPv4アドレス]
### [IPv4アドレス]が「192.168.33.xx」以外の場合、「vi Vagrantfile」で該当箇所を変更

死活確認
$ vagrant status
$ vagrant halt

# Teratermなどで vagrant VM にログインできることを確認

HOST: xxxxx.dev
ID: vagrant
PW: vagrant

** BOX追加

$ vagrant box add --insecure 持ってきたbox名_YYYYmmdd_HHii /【boxを配布したパス】/持ってきたbox名.box

*** 持ってきたbox名_YYYYmmdd_HHii
**** 変更したほうが無難
** 下記を削除または、リネーム

$ cd /【任意のパス】/vagrants/xxxxx

*** Vagrantfile
# 初期化

$ vagrant init 持ってきたbox名_YYYYmmdd_HHii

# 「ローカルでの自動ホスト名書き換えのためのプラグインをインストール」以降は同様の操作で起動できる(はず)
# おまけ
** VMそのものはこの辺にいる

C:\Users\【username】\.vagrant.d\boxes\

CentOS 初期設定

ココからLinux内での作業

* 時刻設定

$ date
Fri 13 Jan 05:39:45 GMT 2017
$ sudo timedatectl set-timezone Asia/Tokyo
$ date
Fri 13 Jan 14:39:54 JST 2017

* 開発に必要なものをインストール(他、各自必要なものを適宜)

$ sudo yum remove puppet* # ←yum update 中にこいつのせいでコケるのでアンインストールしてしまう
$ sudo yum update
$ sudo yum install git subversion libyaml-devel

* “locateコマンドのインストール”:http://centos.bungu-do.jp/archives/64

$ sudo yum install mlocate
$ locate main.cf
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
$ sudo updatedb

* ファイル内文字列高速検索コマンド

$ sudo yum groupinstall "Development Tools"
$ cd ~/
$ git clone https://github.com/tkengo/highway.git
$ cd highway
$ ./tools/build.sh
hwコマンドを/usr/bin/に配置
$ sudo mv hw /usr/bin/
場所確認
$ which hw
/usr/bin/hw

php7.1 および httpd のインストール

* remiリポジトリの追加

remiリポジトリの公開鍵を取り込む

$ sudo rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi

yum-config-manager コマンドのインストールと remiリポジトリの追加

$ sudo yum install yum-utils https://rpms.remirepo.net/enterprise/remi-release-7.rpm

remi-php56 リポジトリを有効化

$ sudo yum-config-manager --enable remi-php56

* php をインストール(必要そうなライブラリも)

$ sudo yum install --enablerepo=remi,remi-php56 php php-mysql php-intl php-mbstring php-xml php-pear php-pecl-yaml phpMyAdmin redis

* httpdを再起動する

$ service httpd status
$ sudo service httpd start

* バージョン確認

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 14 2016 18:04:44

$ php -v

* ブラウザで Vagrant VM にアクセスしてみる
** http://xxxxx.dev
*** ⇒ Apacheのデフォルト画面が表示されること

* httpdの自動起動を設定

$ sudo systemctl enable httpd.service

mysql のインストール

# CentOS に mysqlと競合するmariadb関連のライブラリが既に入っているのでアンインストール

$ sudo yum remove mariadb*
mysqlディレクトリの存在確認
$ sudo ls -la /var/lib/mysql/
もしあれば
$ sudo rm -rf /var/lib/mysql/

# yumコマンドでインストール(5.7は5.6より3倍速い)

## リポジトリを追加

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

## インストール

$ sudo yum install mysql-community-server

* バージョン確認

$ mysqld --version

* ステータス確認

$ systemctl status mysqld.service

* 起動

$ sudo systemctl start mysqld.service

* 停止する場合

$ sudo systemctl stop mysqld.service

* 自動起動設定

$ sudo systemctl enable mysqld.service

** 再度teratermでログインしhttpdとmysqldが起動していることを確認する。
* rootユーザでログインできるか確認。初期パスワードはインストールログから拾います。
** “MySQL5.7.6以降での初期パスワード確認方法”:http://www.hack-log.net/entry/2015/10/26/100000

mysql起動後にログを確認

$ cat /var/log/mysqld.log | grep 'password is generated'
2015-10-25T08:42:09.501502Z 1 [Note] A temporary password is generated for root@localhost: ************

* rootユーザでログイン

$ mysql -uroot -p
Enter password: ************

* MySQLmysql 5.7のセキュリティ設定

$ mysql_secure_installation
Enter password for user root:
New password: rootの新パスワード 657$hD489Fjk6 # ←本番DBでは作り直して下さい。
Re-enter new password:
・匿名ユーザーアカウントを削除 Y
・ローカルホスト以外からアクセス可能な root アカウントを削除 Y
・test データベースの削除 Y
・即反映するか Y

* ログイン確認

$ mysql -uroot -p
Enter password: 新パスワード

⇒ログインできること

* ログインしたらデータベース作成する。utf8で。

mysql> CREATE DATABASE xxxxxdb DEFAULT CHARACTER SET utf8;
ユーザー作成します。mysql5.7だとパスワード複雑化する必要あり
mysql> CREATE USER xxxxxdbuser IDENTIFIED BY ‘xxxxxDbPass1!’; # 英数記号入り
作成したxxxxxdbuserにxxxxxdbに対しての全権限付与
mysql> GRANT all ON xxxxxdb.* TO xxxxxdbuser;
mysql> exit

* データをリストアする

$ zcat /home/vagrant/xxxxxdb__20170407.sql.gz | mysql -uroot -p xxxxxdb --default-character-set=binary
Enter password:

* 追加でもう1テーブルのスキーマを投入

$ cat /home/vagrant/xxxxxdb__s_random__20170407.sql | mysql -uroot -p xxxxxdb
Enter password:

* 再度ログインテスト

$ mysql -uroot -p xxxxxdb
Enter password:

* yum

$ sudo yum -y install git

* version

$ git --version

xxxxx が動作するまで

vhosts.confを用意

* コマンド

$ sudo vi /etc/httpd/conf.d/vhosts.conf

* 内容
** フロントエンド

# xxxxx.dev

ServerName xxxxx.dev
DocumentRoot /var/www/xxxxx.dev/running/htdocs/
CustomLog “| /usr/sbin/rotatelogs /var/log/httpd/xxxxx.dev/access_log.%Y%m%d 86400 540” combined_DvIOX
ErrorLog “| /usr/sbin/rotatelogs /var/log/httpd/xxxxx.dev/error_log.%Y%m%d 86400 540”

** phpMyAdmin

# xxxxx-phpmyadmin.dev

ServerName xxxxx-phpmyadmin.dev
DocumentRoot /usr/share/phpMyAdmin/
CustomLog “| /usr/sbin/rotatelogs /var/log/httpd/xxxxx-phpmyadmin.dev/access_log.%Y%m%d 86400 540” combined_DvIOX
ErrorLog “| /usr/sbin/rotatelogs /var/log/httpd/xxxxx-phpmyadmin.dev/error_log.%Y%m%d 86400 540”

** phpRedisAdmin

# xxxxx-phpredisadmin.dev

ServerName xxxxx-phpredisadmin.dev
DocumentRoot /var/www/phpRedisAdmin/
CustomLog “| /usr/sbin/rotatelogs /var/log/httpd/xxxxx-phpredisadmin.dev/access_log.%Y%m%d 86400 540” combined_DvIOX
ErrorLog “| /usr/sbin/rotatelogs /var/log/httpd/xxxxx-phpredisadmin.dev/error_log.%Y%m%d 86400 540”

httpd.confを用意(vagrantローカルのみ)

* httpd.conf再起動

$ sudo vi /etc/httpd/conf/httpd.conf
#User apache
#Group apache
User vagrant
Group vagrant

* confを書き換えたらhttpd再起動

$ sudo systemctl restart httpd.service

* /var/lib/php/session/ のオーナ権限を修正

$ sudo chgrp vagrant /var/lib/php/session/
$ sudo chown vagrant:vagrant /var/lib/php/session/*

Redisの起動およびphpRedisAdminの導入

* 上記手順中にyum installで既にインストール済みなので

$ cd ~
$ git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
$ cd phpRedisAdmin
$ git clone https://github.com/nrk/predis.git vendor
$ cp includes/config.sample.inc.php includes/config.inc.php
$ cd ~
$ sudo chown -R apache: ~/phpRedisAdmin
$ sudo mv ~/phpRedisAdmin /var/www
ステータス確認
$ systemctl status redis.service
起動
$ sudo systemctl start redis.service
停止の場合
$ sudo systemctl stop redis.service
自動起動設定
$ sudo systemctl enable redis.service
バージョン確認
$ redis-server -v
Redis server v=3.2.8 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=dd923e72e9efa6d8
バージョン確認
$ redis-cli -v
redis-cli 3.2.8

* ブラウザで確認する場合
** http://xxxxx-phpredisadmin.dev/

centos 7.2 に capistrano をインストールしてみる

centos 7.2 に capistrano をインストールしてみる

ruby をバージョン指定してインストールする

rubyenv のインストール

ruby のインストール

capistranoをインストール

cap作業ディレクトリを作って設定ファイルを用意
cap一式がインストールされる

基本的に修正するのは2ファイル
全体的な設定 ⇒ config/deploy.rb
環境個別の設定 ⇒ config/deploy/development.rb

個別設定ファイルを修正

個別の設定ファイルをconfig/deploy/配下に、production.rbとstaging.rbは用意されているのが、、development.rbも用意

config/deploy/development.rb に書かれた内容を実行する

Vagrant で CentOS 7.2 に GitLab をインストールしてみる

GitLab インストール

ブラウザで、http://192.168.33.10/ にアクセスする。

GitLabのトップ画面が出れば成功

最低限、管理者Administratorユーザのパスワードを設定します。

参考
https://about.gitlab.com/downloads/#centos7
ありがとうございます

vagrantのBoxを追加

参考
http://qiita.com/d2cdot-mmori/items/1c340f175ae510e4456a
感謝