PHP
WordPress
MySQL
vagrant

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

More than 1 year has passed since last update.

Vagrantを設置する

  • Vagrantを設置するディレクトリに移動
    ~/dev/centos6 とか
  • VagrantBoxを追加
    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フォルダを作る
    mkdir data
  • vagrantを起動
    vagrant up

# Apache2.2をインストール
yum install httpd httpd-devel
- 確認
httpd -v
- 自動起動化
chkconfig httpd on
- 起動
/etc/init.d/httpd start

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

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

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

が表示される。

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

  • EPELリポジトリの追加
    yum install epel-release
  • Remiリポジトリの追加
    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を入れる

  • リポジトリの追加
    yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
  • インストール
    yum install mysql-community-server
  • インストール確認
    mysqld -V
  • 自動起動化
    chkconfig mysqld on
  • 起動
    /etc/init.d/mysqld start

MySQLの初期設定

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

Wordpressをインストールする

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

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

  • ダウンロード、右のダウンロードボタンのリンクURLをコピー ダウンロードするディレクトリにて
    wget https://ja.wordpress.org/wordpress-4.6.1-ja.tar.gz を実行。ダウンロードされる。
  • tar.gzを展開

    tar -zxvf wordpress-4.6.1-ja.tar.gz

    展開されたディレクトリごと、まるっとwebで公開しているディレクトリに
    移動する。

    例)mv ./wordpress /var/www/html/wordpress/

    まあ、だいたいこのhtmlディレクトリはRoot様の持ち物だったりして、
    「書き込み権限がないよ」って怒られるけどねw

設定

MySQLの設定

mysql -u root -p

1.Wordpress専用のDBを作る

create database wordpress;
2.ユーザを作る

create user 'wp_user'@'localhost' identified by 'password';
3.ユーザに権限を与える

grant all privileges on wordpress.* to 'wp_user'@'localhost';
4.権限を更新する

flush privileges;

5.DBにアクセス可能か確認

mysql -u wp_user -p

use wordpress

Wordpressを設定

1.configファイルをねつ造w
wp-config-sample.phpwp-config.phpに名前変更
2.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
8個にランダムな英数字文字列を設定(記号は誤作動するから避けた方がいいかも)

ランダムな文字列の生成

  • linuxで生成しよう!

    mkpasswd

    コマンドでランダムなパスワードが作れる。

  • インストールされてなかったら

    yum install expect

  • 生成のコマンド

    mkpasswd -l 32 -s 0

    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