virtualboxとvagrantインストール
Windows10に下記をインストールした
- virtualbox 5.1.14
- vagrant 1.9.7
ホストマシンのhostsにドメイン追加しておく
hostsファイル(windows10で場所は下記)に追記する
C:\Windows\System32\drivers\etc\hosts
192.168.33.10 hoge.com
を追記する
※Vagrantfile内でのIPアドレス指定や、あとで出てくるnginx内のドメイン名をこれに合わせる
centos7インストール
参考:http://motomichi-works.hatenablog.com/entry/2017/07/29/010025
以下vagrantにインストールする。
コマンドはGit Bash上で実行。
vagrantにboxを追加する
vagrant box add centos/7
を実行
下記のように質問されるので3でエンター
1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop
windows上にvagrant用の新しいディレクトリ作成して、そこで
vagrant init centos/7
を実行
実行したディレクトリにVagrantfileができた。
(このままvagrant up
してみたらrsyncエラーが出たのと、
ipアドレス(とホストネーム)を指定したかったが、やってなかったのでVagrantfileに追記した)
VagrantfileのVagrant.configure("2")...
以下に下記を追加した
Vagrant.configure("2") do |config|
~~
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = 'hoge.com'
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
(rsyncエラー参考:http://qiita.com/tenmyo/items/c2bb714117c98ae979de )
※通常のsyncフォルダができるのかは試してません。
これでvagrant up
実行。
vagrantが立ち上がった。
Nginxインストール
参考:https://academy.gmocloud.com/advance/20160721/3203
ここから先はvagrant ssh
して、
su
実行、パスワードvagrant
入力してroot権限でコマンド実行していく。
yum でrpmパッケージをインストール
yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
nginxをインストール
yum install --enablerepo=nginx nginx
nginxのdefault.confをコピーして新しいものを作り、最低限いじる。
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/hoge.conf
.confファイルは読み込まれるので、default.confは名前を変えて読み込まれないようにしてみた。
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_buckup
hoge.confの中身をまるっと変更
(自分の指定したディレクトリを表示したい。あと最終的にphp使いたいのでそれも書く)
参考:http://qiita.com/you0328/items/cdc92e3fde2dc3bc1d51
参考ページのものにログの出力記述を追加した。
server {
listen 80;
server_name hoge.com;
root /var/www;
index index.php index.html index.htm;
access_log /var/log/nginx/hoge_access.log;
error_log /var/log/nginx/hoge_error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
}
nginxを起動
systemctl start nginx
ここでnginxを起動して指定したドメイン(hoge.com)にアクセスしても403エラー Forbiddenになった・・
調べたところSELinuxの設定を変えればよいかもしれないとのこと。
参考:
http://qiita.com/kieaiaarh/items/3455040597ee34c8c49e
http://blog.higty.xyz/archives/231/
現在のSELinuxを確認
getenforce
Enforcing と表示されて、これは有効の意味。
無効にする。
参考:http://rfs.jp/server/security/selinux01.html
configを編集
vi /etc/selinux/config
config内:enforcingをコメントアウトしてpermissiveにする。
#SELINUX=enforcing
SELINUX=permissive
※vagrant再起動で適用された。
※一時的な変更にしたい場合はconfig変更せずに下記コマンドを実行するだけ。
setenforce 0
vagrant再起動してgetenforce
で確認
Permissiveになった。
Nginxを再起動
systemctl reload nginx
忘れてたけど、vagrant起動時、常にNginx起動させる設定にしておく
systemctl enable nginx
nginxのconfigのrootに指定したディレクトリにテスト用index.htmlを置いて
hoge.comにアクセスするとページが表示された。
PHP7インストール
参考:http://qiita.com/yanagikouta/items/6c2b0cbd02876e61c71c
phpenvでバージョン管理する方法で行う。
ここからは通常ユーザー(vagrant sshしたときのユーザー)で行う。
(※一度rootで実行してみて、参考ページとインストール先が違っていてうまくいかなかったので、通常ユーザーで再トライした。)
このあと使うのでGitインストール
sudo yum install git
phpenv本体インストール
curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
php-buildをphpenvのプラグインフォルダ内にクローン
git clone git://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build
.bash_profileの設定
vi ~/.bash_profile
.bash_profileに下記を追記
PATH=$PATH:$HOME/.phpenv/bin
eval "$(phpenv init -)"
.bash_profileをリロード
source ~/.bash_profile
ここまでで、phpenv -v
で確認したらバージョンを確認できた。
※rbenvと表示されたけど、とりあえず無視。
phpインストールに必要な物をインストール
sudo yum -y install gcc libxml2-devel bison bison-devel openssl-devel curl-devel libjpeg-devel libpng-devel readline-devel libxslt-devel autoconf automake patch
sudo yum --enablerepo=epel -y install libmcrypt-devel libtidy-devel
参考ページのre2cのインストールでエラーが出てしまったので、
re2cをいれるため(と、ほかエラーが出たため)下記もインストール
yum -y --enablerepo=epel install libXpm-devel freetype-devel re2c libicu-devel gcc-c++
このあとphpenvからphp7インストール(phpenv install 7.0.0
実行)してエラーが出たので追加インストールする
エラー内容はこれ
configure: error: Please reinstall the BZip2 distribution
下記を参考にbzip2-develを追加インストール
参考:http://qiita.com/daikiojm/items/0c89656eb934ae279bf0
yum install bzip2-devel
phpenvでphpバージョン指定してインストール
phpenv install 7.0.0
これでphpenv installの完了までいけた。※かなり時間がかかった。
参考ページに沿って続きを進めていく
参考:http://qiita.com/yanagikouta/items/6c2b0cbd02876e61c71c
phpenvの更新とバージョン確認
phpenv rehash
phpenv versions
利用するphpのバージョンを設定
phpenv global 7.0.0
phpのバージョンを確認
php -v
phpのバージョンが確認できた。
参考ページに沿ってphp-fpmまわりを実行していく。
php-fpmの設定ファイルを作成
cd ~/.phpenv/versions/7.0.0/etc
cp php-fpm.conf.default php-fpm.conf
php-fpm.confの編集
vi php-fpm.conf
編集内容は下記
-
pid = /var/run/php-fpm.pid
を追記、 - events.mechanism = epollのコメントを外す
この時点では/var/run/php-fpm.pidがないけど、
php-fpmが起動された際に/var/run/php-fpm.pidを作ってくれるらしい。
次、confファイルを作成
cd ~/.phpenv/versions/7.0.0/etc/php-fpm.d
cp www.conf.default www.conf
www.confの編集
vi www.conf
- user = nobodyとgroup = nobodyをコメントアウトし、その真下に以下を追加
user = nginx
group = nginx
- listen = 127.0.0.1:9000をコメントアウトし、その真下に以下を追加
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
php-fpmの起動と自動起動登録
php-fpm起動用スクリプトをソースディレクトリ内から複製して作成
sudo cp /tmp/php-build/source/7.0.0/sapi/fpm/php-fpm.service.in /etc/systemd/system/php-fpm.service
php-fpm.service編集
sudo vi /etc/systemd/system/php-fpm.service
[Service]内(Service下)の項目を全て消し下記に置き換える
Type=simple
PIDFile=/var/run/php-fpm.pid
ExecStart=/home/vagrant/.phpenv/versions/7.0.0/sbin/php-fpm --nodaemonize --fpm-config /home/vagrant/.phpenv/versions/7.0.0/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
php-fpm 起動
sudo systemctl start php-fpm
自動起動設定
sudo systemctl enable php-fpm
最後にnginxを再起動
sudo nginx -s reload
ここまでで、index.php(<?php phpinfo();とだけ記述)をnginxのconfのrootディレクトリに配置したらページが表示された。
MariaDB インストール
一部参考:http://normalblog.net/system/mariadb-install-settings/
以下すべてrootユーザーで実行しました。
MariaDB インストール
yum install mariadb mariadb-server
インストール確認
rpm -qa | grep maria
MariaDB 起動
systemctl start mariadb
初期設定
mysql_secure_installation
※実行したら質問してくる。よくわからなかったので全部noと答えてみた。
confファイルにUTF8記述を追加する
vi /etc/my.cnf.d/server.cnf
[mysqld]下に1行追加
[mysqld]
character-set-server=utf8
MariaDB再起動
systemctl restart mariadb
MariaDBが自動で起動するように
systemctl enable mariadb
MariaDBにログインしてDB作る
ログイン
mysql -u root
※パスワードを入力する場合はmysql -u root -p
※以下メモとったときのままなので大文字と小文字が乱れてますが、どちらでも実行はできるみたいです。
DB作る
CREATE DATABASE hoge;
DB確認する
show databases;
ユーザー作る
hogeにはさきほど作ったDB名、
user_nameには任意のユーザー名、
passwordには好きなパスワードを入力
GRANT ALL PRIVILEGES ON hoge.* TO "user_name"@"localhost" IDENTIFIED BY "password";
ユーザー一覧確認
select Host, User, Password from mysql.user;
\qでログアウト
以上です。