以下の構成で確認した 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を確認
ダウンロード
$ 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
Vagrant で CentOS 7.2 に GitLab をインストールしてみる
GitLab インストール
$ sudo yum install curl policycoreutils openssh-server openssh-clients $ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash $ sudo yum install gitlab-ce $ sudo gitlab-ctl reconfigure # ←かなり時間がかかる。Vagrant VM のCPUメモリを増やすと時間を短縮できる。
ブラウザで、http://192.168.33.10/ にアクセスする。
GitLabのトップ画面が出れば成功
最低限、管理者Administratorユーザのパスワードを設定します。
参考
https://about.gitlab.com/downloads/#centos7
ありがとうございます
codeigniter3 で 404 Page Not Found ページのテンプレートを書き換えてみる
vagrantのBoxを追加
$ vagrant box add new_test_box appname_YYYYMMDD.box $ vagrant init new_test_box $ vi Vagrantfile $ vagrant up default: Warning: Authentication failure. Retrying... default: Warning: Authentication failure. Retrying... default: Warning: Authentication failure. Retrying... $ vagrant ssh-config $ ssh-keygen -yf C:/Users/<ユーザー名>/.vagrant.d/insecure_private_key > public_key $ cat public_key # ←ここの内容を $ vagrant ssh [vagrant@localhost ~]$ vi ~/.ssh/authorized_keys # ←ここで書き換える [vagrant@localhost ~]$ exit $ vagrant reload
参考
http://qiita.com/d2cdot-mmori/items/1c340f175ae510e4456a
感謝
vagrantのBox作成
Cakephp3本番環境ではエラー表示をさせたくない
Cakephp3を使っていると、本番環境ではCakephpテンプレートエラーを出したくない場合もある。
いろんな方法があるが、ここでは Configure::read(‘debug’) の値をif判定する。
※本番環境: 0 開発環境: 1
URLの打ち間違いの40x系ページと、phpエラー等の50x系のページに判定分を追加する
$ vi Template/Error/error400.ctp $ vi Template/Error/error500.ctp -$this->layout = 'error'; +// 本番環境ではエラーは表示しない +if (Configure::read('debug') === 0) { + $this->layout = 'error_prod'; +} else { + $this->layout = 'error'; +}
本番用レイアウトページを複製して修正
$ cp Template/Layout/error.ctp Template/Layout/error_prod.ctp $ vi Template/Layout/error_prod.ctp // 適宜修正