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

WordPress + SQLite Integration + SQliteManager を試してみる

中小規模のウェブサイトなら、さくらインターネットのレンタルサーバ ライトプラン に申し込んで、Wordpress + SQLite で行けるのではと思い、調査してみたところ、問題なく行けそうだった。

ちなみに、さくらインターネットさんには早くphp7対応して欲しいなぁと。

WordPress 4.5.2

https://ja.wordpress.org/

ダウンロードして展開して任意の場所に配置。

SQLite Integration 1.8.1

https://wordpress.org/plugins/sqlite-integration/

  1. SQLite Integration をダウンロードして展開し、wordpress の plugin ディレクトリに配置します。
  2. SQLite Integration ディレクトリ内の db.php ファイルを wp-content 配下にコピーします。
  3. wp-config-sample.phpファイルの設定を DB_USER と DB_PASSWORD あたりを変更してアップロードする。
  4. http://xxxx/wp-admin/ のインストール開始URLあたりにアクセスするとインストールが開始される。

以上で、さくっとwordpressがインストールされます。

えーっと、phpMyAdmin は無いのかって?
phpMyAdmin 的な SQliteManager を利用します。
https://sourceforge.net/projects/sqlitemanager/
ダウンロードし展開後、任意の場所に配置。wordpressとは別ディレクトリにしておくのが無難でしょう。

SQliteManagerにブラウザでアクセスします

エラーが出ます

Deprecated: Non-static method sqlite::getDbVersion() should not be called statically, assuming $this from incompatible context in <パス略>/include/SQLiteAutoConnect.class.php on line 12

対処としてsqlite.class.phpファイルを修正

$ vi include/sqlite.class.php
function getDbVersion($fullPath){
↓
static function getDbVersion($fullPath){

管理画面が表示されたら最初にSQliteManagerにDBを登録します。

DB名はお好みでつけましょう

wpdb123

SQLiteDBファイルのパス(SQliteManagerから見た相対パス)

../wptest/wp-content/database/.ht.sqlite

当たり前ですが.htaccess等でアクセス制限をかけておきましょう

参考

WordPresssをデータベースなし(SQLite)で使う方法


多謝

nginx1.10 + WordPress4.5.2 を試してみる

前回からの続き

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

nginxの設定

$ vi /etc/nginx/conf.d/wordpress.conf
server {
    listen 80;
    server_name 192.168.33.11;
    root /var/www/wordpress;
    index index.php;

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

    # wp-config.phpへのアクセスを全て拒否する
    location ~* /wp-config.php {
        deny all;
    }
}

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

$ sudo cp /var/www/wordpress/wp-config.php.sample /var/www/wordpress/wp-config.php

参考
http://qiita.com/umchifre/items/0d2f07a6fec0e34506db
多謝