git で ブランチ名を表示させたい

vagrant のVM内で git で ブランチ名を表示させたい。

$ curl -o ~/.git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
$ chmod a+x ~/.git-prompt.sh
$ vi .bash_profile
——————————-
## Git
# Read script
source $HOME/.git-prompt.sh

# Show information to prompt
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWUPSTREAM=1
GIT_PS1_SHOWUNTRACKEDFILES=
GIT_PS1_SHOWSTASHSTATE=1

# Terminal
export PS1=’\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\[\033[1;30m\]$(__git_ps1)\[\033[0m\] \$ ‘
——————————-
$ source .bash_profile

Nuxt.js + CentOS + Vagrant + VirtualBox + Windows 10

Git Bash、VirtualBox、Vagrant をインストールしておく。
– https://gitforwindows.org/
– https://www.virtualbox.org/
– https://www.vagrantup.com/

また、C:\Program Files\Git\git-bash.exe アイコンを右クリックプロパティで開き、
互換性タブの、管理者としてこのプロパティを実行する。にチェックを入れておく。

Git Bashで操作

ディレクトリ作成
“`
$ mkdir /c/work/vagrants/sample-nuxtjs
$ cd /c/work/vagrants/sample-nuxtjs
“`

VM設定ファイル初期化
“`
$ vagrant init centos/7
$ vi Vagrantfile
config.vm.network “private_network”, ip: “192.168.56.60” # 各PCのネットワーク環境と合わせる必要あり
config.vm.hostname = “sample-nuxtjs.local”
“`

必要なプラグインをインストール
“`
$ vagrant plugin list
$ vagrant plugin install vagrant-vbguest
$ vagrant plugin install vagrant-hostsupdater
“`

VM起動
“`
$ vagrant up
“`

ログイン確認
“`
$ vagrant ssh
“`

OSバージョン確認
“`
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
“`

OSバージョンアップ
“`
$ sudo yum update
“`

時刻を日本時刻に
設定確認
“`
$ timedatectl

“`
タイムゾーン設定
“`
$ sudo timedatectl set-timezone Asia/Tokyo
“`
設定確認
“`
$ timedatectl
“`

バージョン12系のnodeをインストールする
“`
$ curl –silent –location https://rpm.nodesource.com/setup_12.x | sudo bash –
$ sudo yum install nodejs
$ node -v
v12.14.1
“`

yarnコマンドのインストール
“`
$ curl –silent –location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
$ sudo rpm –import https://dl.yarnpkg.com/rpm/pubkey.gpg
$ sudo yum install yarn
$ yarn -v
1.21.1
“`

サンプルプロジェクトを作成
“`
$ mkdir myapp
$ cd myapp/
$ vi package.json
==================================
{
“name”: “myapp”,
“scripts”: {
“dev”: “nuxt –hostname 192.168.56.60” ※自PCのネットワークにあわせて設定
}
}
==================================

インストール
$ npm install –save nuxt

ローカルサーバー起動
$ npm run dev
⇒ブラウザで http://192.168.56.60 にアクセス

$ mkdir pages
$ vi pages/index.vue
==================================

==================================
$ npm run dev
⇒ブラウザで http://192.168.56.60 にアクセス
“`

Laravel 5.8 on CentOS 7 + nginx 1.14 + MySQL 8 + php 7.1 (Vagrant)

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

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

基本的にGit Bashで操作します。

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

作業ディレクトリを移動
$ cd /c/work/vagrants/

ディレクトリを作成
$ mkdir xprj.local

ディレクトリに移動
$ cd xprj.local/

BOXリストを確認
$ vagrant box list

設定ファイルを編集
$ vi Vagrantfile
—————-
config.vm.box = “ventos/7”

config.vm.network “private_network”, ip: “192.168.33.10” # 各PCのネットワーク環境と合わせる必要あり
config.vm.hostname = “xprj.local”
config.hostsupdater.aliases = [“xprj.local”, “phpmyadmin-xprj.local”, “phpredisadmin-xprj.local”]
—————-

host名を自動で起動時に追加・停止時に削除をしてくれるプラグインをインストール
$ vagrant plugin install vagrant-hostsupdater

VM起動
$ vagrant up

ログイン確認
$ vagrant ssh

OSバージョン確認
[vagrant@xprj ~]$ cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

OSバージョンアップ(7.1 ⇒ 7.6)
[vagrant@xprj ~]$ sudo yum update
[vagrant@xprj ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

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

ファイアウォールを無効
[vagrant@xprj ~]$ sudo systemctl status firewalld
[vagrant@xprj ~]$ sudo systemctl stop firewalld
[vagrant@xprj ~]$ sudo systemctl disable firewalld
[vagrant@xprj ~]$ exit

VM再起動
$ vagrant reload
ログイン
$ vagrant ssh

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

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

php 7.1インストール

[vagrant@xprj ~]$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[vagrant@xprj ~]$ sudo yum install yum-utils
[vagrant@xprj ~]$ sudo yum-config-manager –enable remi-php71
[vagrant@xprj ~]$ sudo yum install php
[vagrant@xprj ~]$ php -v
[vagrant@xprj ~]$ sudo vi /etc/php.ini
——————————–
;date.timezone =
date.timezone = Asia/Tokyo
——————————–

nginxインストール

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

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

nginxでphpinfoを出すまで設定

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

location ~ \.php$ {
root /var/www/xprj.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@xprj ~]$ sudo mkdir /var/www/xprj.local

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

mysql> exit

MySQLmysql 8.0 のセキュリティ設定
[vagrant@xprj ~]$ 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@xprj ~]$ 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@xprj ~]$ sudo systemctl stop mysqld
設定ファイルの[mysqld]の下に追記する
[vagrant@xprj ~]$ 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@xprj ~]$ sudo systemctl start mysqld

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

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

ログインしたらutf8mb4でデータベース作成する
mysql> CREATE DATABASE xprjdb DEFAULT CHARACTER SET utf8mb4;

db_userユーザーを作成する
mysql> CREATE USER ‘db_user’@’%’ IDENTIFIED BY ‘password’;
mysql> exit

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

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

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

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

mysql> exit

redis 5.0.3 のインストール

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

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

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

ファイル作成
[vagrant@xprj ~]$ sudo vi /var/www/xprj.local/phpredis.php
—————-
pconnect(‘127.0.0.1’);
$redis->set(‘dog’, ‘baw’);
var_dump($redis->get(‘dog’));
—————-

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

phpMyAdminのインストール

[vagrant@xprj ~]$ sudo yum install phpMyAdmin
[vagrant@xprj ~]$ sudo vi /etc/nginx/conf.d/phpmyadmin.conf
—————-
server {
listen 80;
server_name phpmyadmin-xprj.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@xprj ~]$ sudo systemctl restart nginx && sudo systemctl restart php-fpm

アクセス確認
http://phpmyadmin-xprj.local/
⇒エラーが出る。
 原因はセッションディレクトリのパーミッションがapacheになっていた…

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

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

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

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

設定ファイル書き換える
[vagrant@xprj ~]$ 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

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

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

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

phpRedisAdminのインストール

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

[vagrant@xprj ~]$ sudo vi /etc/nginx/conf.d/phpredisadmin.conf
——————————–
server {
listen 80;
server_name phpredisadmin-xprj.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@xprj ~]$ sudo systemctl restart php-fpm
[vagrant@xprj ~]$ sudo systemctl restart nginx

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

Laravel のインストール

Vagrant で開発環境を作っているが http://xprj.local/ とアクセスすると
Laravel のモックスタート画面が表示されるようにする。
参考 https://readouble.com/laravel/

[Git Bash] で作業開始

vagrantのホームディレクトリに移動
$ cd /c/work/vagrants/xprj.local
vagrantを起動
$ vagrant up
vagrantにログイン
$ vagrant ssh

たまには yum update でライブラリを最新化しておく
$ sudo yum update

ホームディレクトリに移動
[vagrant@xprj ~]$ cd
composerコマンドでlaravelをインストールする。
laravelappディレクトリが誕生するはず。
[vagrant@xprj ~]$ composer create-project –prefer-dist laravel/laravel laravelapp
⇒composerコマンドが無い
composerコマンドを準備する。

CentOS 7 の場合

[vagrant@xprj ~]$ sudo yum install epel-release.noarch
[vagrant@xprj ~]$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[vagrant@xprj ~]$ sudo yum install –enablerepo=remi,remi-php71 php

composer のインストール

[vagrant@xprj ~]$ curl -sS https://getcomposer.org/installer | php — –install-dir=/tmp
[vagrant@xprj ~]$ sudo mv /tmp/composer.phar /usr/local/bin/composer
[vagrant@xprj ~]$ composer -v

composerコマンドでlaravelをインストールする。
[vagrant@xprj ~]$ composer create-project –prefer-dist laravel/laravel laravelapp
appディレクトリを適切な場所に移動させます。
[vagrant@xprj ~]$ sudo mv laravelapp /vagrant/src/laravelapp

nginxの
[vagrant@xprj ~]$ sudo vi /etc/nginx/conf.d/xprj.local.conf
—————————–
server {
listen 80;
server_name xprj.local;
root /var/www/xprj.local/laravelapp/public;
index index.php;
access_log /var/log/nginx/xprj-access.log;
error_log /var/log/nginx/xprj-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@xprj ~]$ sudo systemctl restart nginx

移動
[vagrant@xprj ~]$ cd /var/www/xprj.local/

確認
[vagrant@xprj ~]$ ls -la

laravelappが実態は/vagrant/src/laravelappを見るようにシンボリックリンクを作成します。
[vagrant@xprj ~]$ sudo ln -s /vagrant/src/laravelapp laravelapp

確認
[vagrant@xprj ~]$ ls -la

ブラウザで確認
http://xprj.local/
⇒Laravelのトップ画面が表示される。OK。

[vagrant@xprj ~]$ exit

[Git Bash]

=========================================================================
Laravel のモックスタート画面にログイン認証機能をartisanコマンドを
利用して少ない手順で構築する。
参考 https://www.ritolab.com/entry/51
=========================================================================

サンプルDBを用意する。
$ mysql -uroot -ppassword sample
mysql> create database sample;
mysql> show databases;

laravelルートディレクトリへ移動
[vagrant@xprj ~]$ cd /var/www/xprj.local/laravelapp/

設定ファイルを編集する
[vagrant@xprj ~]$ sudo vi .env
————————————
DB_DATABASE=sample
DB_USERNAME=db_user
DB_PASSWORD=password
————————————

artisanコマンドでマイグレーションを実行する
$ php artisan migrate

実行結果
[vagrant@xprj ~]$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table

DBにテーブルが作成されていることを確認する
[vagrant@xprj ~]$ mysql -uroot -ppassword sample

マイグレーションの管理テーブルのカラムを確認する。
mysql> DESC migrations;
mysql> DESC password_resets;
mysql> DESC users;
mysql> exit

[vagrant@xprj ~]$ cd /var/www/xprj.local/laravelapp/

コマンドで認証に必要となるルート定義とビューを生成する
[vagrant@xprj ~]$ php artisan make:auth
Authentication scaffolding generated successfully.
⇒コントローラーやビューファイルなどが生成される。

続いてパスワードリセットする際にメール送信する必要が
あるため、メール送信にかかわる設定を行います。

以下はGMailサービスをメールサーバとして開発する場合向けです。

ブラウザでGoogleアカウントにログインします。
https://myaccount.google.com/

左側メニューの
>セキュリティ
>安全性の低いアプリのアクセス に進み
「無効」から「有効」に変換します。

[vagrant@xprj laravelapp]$ sudo vi .env
————————————
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxxxxxxxxxxxx@gmail.com
MAIL_PASSWORD=xxxxxxxxxxxxxxxx
MAIL_ENCRYPTION=tls
————————————

これにてブラウザでリセットパスワードを試すとGMailにメールが届きます。

ただしメール文面が localhostになっているので
今後メール文面を修正する必要が出てきます。
とりあえずドメイン部分を手動で書き換えたURLに対して動作確認を行えればOKです。

GMail以外でも個人で利用している自身のプロバイダのメールサーバで送信設定を行っても良いと思います。

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

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
—————-

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 を試す

以下の構成で確認した

Windows 10
VirtualBox
Vagrant 
CentOS 7.3
MySQL 5.7
nginx 1.12
phpMyAdmin 
phpRedisAdmin 

git bash で

$ vagrant plugin install vagrant-hostsupdater

$ mkdir xprj
$ cd xprj
$ vi Vagrantfile
----------------
config.vm.box = "boxcutter/centos73"

config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "xprj.dev"
#config.hostsupdater.aliases = ["xprj-phpmyadmin.dev", "xprj-phpredisadmin.dev"]
----------------
$ vagrant up

ログイン(またはteraterm等で)
$ vagrant ssh

ここから Linux 内での作業

$ timedatectl
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl


■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 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 xprjdb DEFAULT CHARACTER SET utf8mb4;
mysql> CREATE USER 'xprjdbuser'@'localhost' IDENTIFIED BY 'XprjDbUserPass1!'; # ←仮のmmuserパスです
mysql> GRANT ALL PRIVILEGES ON xprjdb.* TO 'xprjdbuser'@'localhost' IDENTIFIED BY 'XprjDbUserPass1!';
mysql> FLUSH PRIVILEGES;
mysql> exit



■php 7.1 のインストール

$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum install yum-utils
$ sudo yum-config-manager --enable remi-php71
$ sudo yum install php
※apacheもインストールされてしまう

$ php -v
PHP 7.1.7 (cli) (built: Jul  6 2017 13:31:15) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies



■nginxインストール

リポジトリ登録
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
インストール
$ sudo yum install nginx
バージョン
$ nginx -v
起動テスト
$ sudo nginx -t
ステータス確認
$ sudo systemctl status nginx
起動
$ sudo systemctl start nginx
ステータス確認
$ sudo systemctl status nginx
自動起動設定
$ sudo systemctl enable nginx

ブラウザからアクセスしnginxのデフォルトページが表示されることを確認する
http://xprj.dev/

設定
 
$ sudo vi /etc/nginx/conf.d/xprj.conf
----------------
server {
    listen       80;
    server_name  xprj.dev;
    root         /var/www/xprj;
    index        index.php;
 
    location ~ \.php$ {
        root           /var/www/xprj;
        fastcgi_pass   unix:/var/run/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
----------------



■php-fpmの設定

$ sudo yum install php-fpm
$ sudo vi /etc/php-fpm.d/www.conf
----------------
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
----------------

ステータス
$ sudo systemctl status php-fpm
起動
$ sudo systemctl start php-fpm
ステータス
$ sudo systemctl status php-fpm
自動起動
$ sudo systemctl enable php-fpm
phpinfo確認
$ sudo vi /var/www/xprj/phpinfo_test.php
----------------

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

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


以下の構成で確認した

Windows
VirtualBox
Vagrant
CentOS 7.3
MariaDB 10.2
nginx 1.12

git bash で 

$ vagrant plugin install vagrant-hostsupdater

$ mkdir prjx
$ cd prjx
$ vi Vagrantfile
----------------
config.vm.box = "boxcutter/centos73"

config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "prjx.dev"
#config.hostsupdater.aliases = ["prjx-phpmyadmin.dev"]
----------------
$ vagrant up

ログイン(またはteraterm等で)
$ vagrant ssh

ここから Linux 内での作業

MariaDB 10.2 のインストール

MariaDB関連のライブラリが既に入っているのでアンインストール
$ sudo yum remove mariadb*

リポジトリを追加
$ sudo vim /etc/yum.repos.d/MariaDB.repo
----------------
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
----------------

インストール
$ sudo yum install mariadb-server php-mysql

バージョン確認
$ mysqld --version

ステータス確認
$ systemctl status mariadb.service

起動
$ sudo systemctl start mariadb.service

停止
$ sudo systemctl stop mariadb.service

自動起動設定
$ sudo systemctl enable mariadb.service

rootユーザでログイン確認
$ mysql -uroot -p

初期設定
$ mysql_secure_installation
Enter password:               # パスワードは空なのでリターン
Set root password? [Y/n] Y    # 新パスワードを2回入力
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

ログイン確認
$ mysql -uroot -p
Enter password: 新パスワードを入力

ログインしたらutf8mb4でデータベース作成する
mysql> CREATE DATABASE prjxdb DEFAULT CHARACTER SET utf8mb4;
mysql> CREATE USER 'prjxdbuser'@'localhost' IDENTIFIED BY 'PrjxDbUserPass1!';
mysql> GRANT ALL PRIVILEGES ON prjxdb.* TO 'prjxdbuser'@'localhost' IDENTIFIED BY 'PrjxDbUserPass1!';
mysql> FLUSH PRIVILEGES;
mysql> exit


php 7.1 のインストール

$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum install yum-utils
$ sudo yum-config-manager --enable remi-php71
$ sudo yum install php
$ php -v
PHP 7.1.7 (cli) (built: Jul  6 2017 13:31:15) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies



nginxインストール

リポジトリ登録
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
インストール
$ sudo yum install nginx
バージョン
$ nginx -v
起動テスト
$ sudo nginx -t
ステータス確認
$ sudo systemctl status nginx
起動
$ sudo systemctl start nginx
ステータス確認
$ sudo systemctl status nginx
自動起動設定
$ sudo systemctl enable nginx

ブラウザからアクセスしnginxのデフォルトページが表示されることを確認する
http://prjx.dev/



Wordpress本体のインストール

$ cd /var/www
$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar zxfv latest-ja.tar.gz
$ sudo rm -rf latest-ja.tar.gz
$ sudo chown -R nginx:nginx wordpress
$ sudo mv wordpress prjx


設定

$ sudo vi /etc/nginx/conf.d/prjx.conf
----------------
server {
    listen       80;
    server_name  prjx.dev;
    root         /var/www/prjx;
    index        index.php;

    location ~* /wp-config.php {
        deny all;
    }

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

}
----------------

Wordpressの設定ファイルを適宜編集

$ sudo mv /var/www/prjx/wp-config.php /var/www/prjx/wp-config-sample.php
$ sudo vim /var/www/prjx/wp-config.php
----------------
define('DB_NAME', 'prjxdb');
define('DB_USER', 'prjxdbuser');
define('DB_PASSWORD', 'PrjxDbUserPass1!');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
----------------

php-fpmの設定

$ sudo yum install php-fpm
$ sudo vi /etc/php-fpm.d/www.conf
----------------
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
----------------

ステータス
$ sudo systemctl status php-fpm
起動
$ sudo systemctl start php-fpm
ステータス
$ sudo systemctl status php-fpm
自動起動
$ sudo systemctl enable php-fpm
phpinfo確認
$ sudo vi /var/www/prjx/phpinfo_test.php
----------------

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を確認

Downloads

ダウンロード
$ 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 をインストールしてみる

デプロイ実行側: 192.168.33.10
web1: 192.168.33.11
web2: 192.168.33.12

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

rubyenv のインストール

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd ~/.rbenv/plugins/ruby-build
$ sudo ./install.sh
$ rbenv -v

ruby のインストール

$ sudo yum install openssl-devel readline-devel zlib-devel
$ rbenv install -l
$ rbenv install 2.4.0
$ rbenv rehash
$ rbenv global 2.4.0
$ ruby -v
$ gem -v

capistranoをインストール

$ gem install capistrano
$ cap --version

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

$ mkdir captest
$ cd captest
$ cap install

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

個別設定ファイルを修正

$ vi config/deploy/development.rb
----
lock "3.7.1"
set :repo_url, 'http://user_name:password@gitlab_host_name/repo_user/repo_name.git'
----

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

$ vi config/deploy/development.rb
----
# デプロイ先のサーバ情報を列挙する
role :web, %w{vagrant@192.168.33.11, vagrant@192.168.33.12}

# デプロイするディレクトリの場所
set :deploy_to, '/tmp/captest'

# サーバー毎の設定
server '192.168.33.11', user: 'vagrant', roles: %w{web}, ssh_options: {
    keys: %w(~/.ssh/id_rsa),
    password: 'vagrant',
}

# サーバー毎の設定
server '192.168.33.12', user: 'vagrant', roles: %w{web}, ssh_options: {
    keys: %w(~/.ssh/id_rsa),
    password: 'vagrant',
}
----

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

$ cap development deploy