VagrantにCentOS6.7＋PHP5.6＋MySQL5.6＋Wordpress4.6をインストールする

# Vagrantを設置する
- Vagrantを設置するディレクトリに移動<br> 
`~/dev/centos6` とか 
- VagrantBoxを追加<br> 
`vagrant box add centos/6` 
- Vagrantを生成
`vagrant init centos/6`
  Vagrantfileファイルが生成されるので、編集

    \# config.vm.network "forwarded_port", guest: 80, host: 8080
    を
    config.vm.network "forwarded_port", guest: 80, host: 8099
    
    \# config.vm.network "private_network", ip: "192.168.33.10"
    を
    config.vm.network "private_network", ip: "192.168.33.10"
    
    \# config.vm.synced_folder "../data", "/vagrant_data"
    を
    config.vm.synced_folder "./data", "/vagrant"

   とかに変更する

 - 共有フォルダのdataフォルダを作る<br />
    `mkdir data`
 - vagrantを起動<br />
    `vagrant up`
    
 # Apache2.2をインストール
    `yum install httpd httpd-devel`
 - 確認
    `httpd -v`
 - 自動起動化
    `chkconfig httpd on`
 - 起動
    `/etc/init.d/httpd start`

 - 一旦、動作確認テスト<br />
  vagrantに割り当てたIPアドレスでアクセス<br />
  いつものApacheのテストページが表示される。

  `/var/www/html` に
  `index.html` ⇒ 中身は適当
  が表示される

    ```test.php
        <?php
        phpinfo();
        exit;
    ```

  が表示される。

 # CentOS6.7にPHP5.6をインストールする

 - EPELリポジトリの追加<br>
   `yum install epel-release`
 - Remiリポジトリの追加<br>
   `rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm`

 ## PHP5.6をインストール
    `yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-mysql php-common php-cgi php-fpm php-mcrypt`

  ※php-mysqlを入れないと、Wordpressが動かない。

 - インストールの確認
   `php --version`

 - php.iniを編集（/etc/php.ini）

    date.timezone = "Asia/Tokyo"
      
    mbsting.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.http_input = UTF-8
    mbstring.http_output = pass
    mbstring.encoding_translation = On
    mbstring.detect_order = auto
    mbstring.substitute_charset = none

最近のCentOSには、MariaDBなるものが入っているけど、
あえてMySQLを入れたい派なので、MySQL5.6を入れる。

MariaDBが入っているか確認
`rpm -qa | grep -i mariadb`
MariaDBを消す
`yum remove mariadb-libs`

## 標準のMySQLは5.1なので、あえて5.6を入れる
- リポジトリの追加<br>
`yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm`
- インストール<br>
`yum install mysql-community-server`
- インストール確認<br>
`mysqld -V`
- 自動起動化<br>
`chkconfig mysqld on`
- 起動<br>
`/etc/init.d/mysqld start`

# MySQLの初期設定
- mysql_secure_installationを実行する<br>
 - rootのパスワードを設定<br>
 - anonymous ユーザーの削除<br>
 - リモートホストから root ユーザーでログインするのを禁止する<br>
 - testデータベースの削除 (存在する場合)<br>

# Wordpressをインストールする

Wordpress日本語（https://ja.wordpress.org/）
にて、ダウンロードする。

linuxだと、wgetコマンドでやると便利。

- ダウンロード、右のダウンロードボタンのリンクURLをコピー
ダウンロードするディレクトリにて<br>
`wget https://ja.wordpress.org/wordpress-4.6.1-ja.tar.gz`
を実行。ダウンロードされる。
- tar.gzを展開<br>
`tar -zxvf wordpress-4.6.1-ja.tar.gz`<br>
展開されたディレクトリごと、まるっとwebで公開しているディレクトリに
移動する。<br>

    `例）mv ./wordpress /var/www/html/wordpress/`<br>
まあ、だいたいこのhtmlディレクトリはRoot様の持ち物だったりして、
「書き込み権限がないよ」って怒られるけどねｗ

# 設定
## MySQLの設定
  `mysql -u root -p`

１.Wordpress専用のDBを作る<br>
`create database wordpress;`
２.ユーザを作る<br>
`create user 'wp_user'@'localhost' identified by 'password';`
３.ユーザに権限を与える<br>
`grant all privileges on wordpress.* to 'wp_user'@'localhost';`
4.権限を更新する<br>
`flush privileges;`

5.DBにアクセス可能か確認<br>
`mysql -u wp_user -p`<br>
`use wordpress`<br>

## Wordpressを設定
１.configファイルをねつ造w
`wp-config-sample.php`を`wp-config.php`に名前変更
２.`wp-config.php`を設定
    
    DB設定
    DB_NAME -> wordpress
    DB_USER -> wp_user
    DB_PASSWORD ->password
    
    認証ユニークキー
    AUTH_KEY
    SECURE_AUTH_KEY
    LOGGED_IN_KEY
    NONCE_KEY
    AUTH_SALT
    SECURE_AUTH_SALT
    LOGGED_IN_SALT
    NONCE_SALT
    ８個にランダムな英数字文字列を設定（記号は誤作動するから避けた方がいいかも）

## ランダムな文字列の生成
- linuxで生成しよう！<br>
`mkpasswd`<br>
コマンドでランダムなパスワードが作れる。

- インストールされてなかったら<br>
`yum install expect`<br>

- 生成のコマンド<br>
`mkpasswd -l 32 -s 0`<br>
32桁の英数字（記号を含まない）

wp-config.phpを保存。

いざ、表示というかwp-admin/install.phpを開く！！！！

で、無事開くことが出来たらおめ。出来なかったらまだまだ下記へ

# Wordpressにアクセスできない

apacheのエラーログ（/var/log/httpd/error_log）を見ると

    Warning: Unknown: failed to open stream: Permission denied in      
    Unknown on line 0 Fatal error: Unknown: Failed opening 
    required '/var/www/html/wordpress/index.php' 
    (include_path='.:/usr/share/php:/usr/share/pear') in Unknown 
    on line 0

なんだがアクセスできないみたい。

## ファイルの所有権と実行権限

    chown root.root -R ./wordpress
    chmod 755 -R ./wordpress

# SELinuxさんがブロック

    $ getenforce
    Enforcing ⇒アクセスブロック中
    $ setenforce 1
    Permissive ⇒アクセスブロックするが警告するよ

SELinuxを設定してしまえ。（但し、無効化を除く）

    /# /var/wwwのラベルの貼り直し
    sudo restorecon -R /var/www

で、アクセス可能になる。

    ....あえて無効化するには、
    設定ファイルは、/etc/sysconfig/selinux を
    SELINUXに値を設定する。
    
    SELINUX=disabled   : 無効にする
    SELINUX=Enforcing  : SELinuxパーミッションのチェックを行い、アクセスを拒否する
    SELINUX=Permissive : SELinuxパーミッションのチェックはするが実際にアクセスの拒否はしない

ここまでやって、あえてwp-admin/install.phpを開く。
タイトル、ユーザ名、パスワード登録となって、Wordpressの管理画面へのログイン画面が表示される。

あとは、Wordpressの専門家へ。


参考
VagrantでCentOS7系の環境を作る（2016年11月版）
http://qiita.com/mesaka/items/74112ef2546db482a3ba
CentOS6／CentOS7にPHP5.6／PHP7をyumでインストール
http://qiita.com/ozawan/items/caf6e7ddec7c6b31f01e
Apache に関する SELinux の設定 (CentOS)
http://qiita.com/100/items/f7f43994568836b4a453
SELinuxを無効にするには
http://park1.wakwak.com/~ima/centos4_selinux0001.html