LoginSignup
0
1

More than 5 years have passed since last update.

wordpress開発環境をローカルに構築

Posted at

1.virtualbox + vagrant でcentos7のbox作成

(1) box追加

vagrant box add wp-hidanireiko https://atlas.hashicorp.com/chef/boxes/centos-7.0/versions/1.0.0/providers/virtualbox.box 
vagrant init  wp-hidanireiko

(2) 共有フォルダ設定

  • Vagrantfileに以下設定
Vagrantfile
 # plugin vagrant_vbudgest on
config.vbguest.auto_update = true
#syncedfolder設定
config.vm.synced_folder "./wordpress", "/home/vagrant/wordpress", :create =>true, :group => 'vagrant', :user => 'vagrant', :mount_options => ['dmode=777', 'fmode=666']

config.vm.network "forwarded_port", guest: 80, host: 8080

config.vm.network "private_network", ip: "192.168.33.31"

config.vm.synced_folder "./wordpress", "/home/vagrant/wordpress", :create =>true, :group => 'vagrant', :user => 'vagrant', :mount_options => ['dmode=777', 'fmode=666']
  • vagrant up時に共有フォルダ関連でエラーは以下対応を実施
vagrant ssh
sudo yum -y update kernel
sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
exit

vagrant halt
vagrant up

2.NGINXのインストール

sudo yum -y update
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum -y install nginx
sudo service nginx start
sudo chkconfig nginx

3.phpのインストール

sudo yum -y install php php-mysql php-mbstring php-common php php-cgi php-fpm php-gd

4.mysqlのインストール

sudo yum -y install mysql
sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
sudo yum -y install mysql-server
sudo service mysqld start
sudo chkconfig mysqld on

#mysqlのrootユーザのパスワード変更(sukisuki19)
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('sukisuki19') WHERE User='root';
FLUSH PRIVILEGES;
exit
sudo service mysqld restart

#wordpress用データベース作成
mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

grant all on wordpress.* to wordpress@localhost identified by "sserpdrow";
flush privileges;


#確認
mysql -u wordpress -p
(password: sserpdrow)

5.PHP-FPM設定

cd /etc/php-fpm.d
sudo cp www.conf www.conf.org
 *user,groupをvagrantに変更 , pm = staticに変更 ,pm.max_childern=3 ,
request_terminate_timeout = 300 を設定


sudo service php-fpm restart
sudo chkconfig php-fpm

6.wordpressのインストール

cd ~/
mkdir wk
cd wk
wget http://ja.wordpress.org/latest-ja.tar.gz
tar xzvf latest-ja.tar.gz
cd wordpress
cp -r ./* ../../wordpress
cd ../../
sudo chown vagrant:vagrant wordpress
#シンボリックリンク作成
sudo ln -fs /home/vagrant/wordpress /var/www/wordpress
sudo chmod +x /home/vagrant

7.SWAP作成


sudo dd if=/dev/zero of=/swapfile bs=1M count=1024  
sudo mkswap /swapfile
sudo swapon /swapfile
sudo service mysqld restart

mysql_secure_installation

現在のルートパスワードを入力します。デフォルトでは、ルートアカウントにはパスワードが設定されていないので、Enter を押します。
と入力してパスワードを設定し、安全なパスワードを 2 回入力します。
sukisuki19

「Y」と入力して匿名ユーザーアカウントを削除します。
「Y」と入力してルートログインを無効にします。
「Y」と入力してテストデータベースを削除します。
「Y」と入力して権限テーブルを再ロードし、変更を保存します。

8.nginxの設定

/etc/nginx/nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user  nginx;
worker_processes 1;
#worker_cpu_affinity 01 10;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
}
/etc/nginx/conf.d/default.conf
server
{
listen 80;
server_name localhost;
#ログの場所を指定
access_log /var/log/nginx/localhost/access.log;
error_log /var/log/nginx/localhost/error.log;

# wordpressのフォルダを指定
location / {
root /var/www/wordpress;
index index.php index.html index.htm;

# パーマリンク用の設定
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^.+?($/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
}
# wp-config.phpへのアクセスをすべて拒否します。
location ~* /wp-config.php {
deny all;
}

#静的file
location ~* ^.+.(jpg|jpeg|gif|png|css|js|flv|swf|ico|xml)$ {
access_log off;
expires 30d;
root /var/www/wordpress;
}
# Pass PHP scripts to PHP-FPM
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/wordpress$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;

}
location ~ /\.ht {
deny all;
}
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;
}
/etc/nginx/conf.d/virtual.conf
#ここから本体の設定
server
{
listen 80;
server_name hidanireiko.dev;
#ログの場所を指定
access_log /var/log/nginx/hidanireiko/access.log;
error_log /var/log/nginx/hidanireiko/error.log;
root /var/www/wordpress;
index index.php;

# wordpressのフォルダ
location / {
root /var/www/wordpress;
index index.php;

# パーマリンク用の設定
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^.+?($/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
}
# wp-config.phpへのアクセスをすべて拒否します。
location ~* /wp-config.php {
deny all;
}

#静的file
location ~* ^.+.(jpg|jpeg|gif|png|css|js|flv|swf|ico|xml)$ {
access_log off;
expires 30d;
root /var/www/wordpress;
}
# Pass PHP scripts to PHP-FPM
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/wordpress$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;

}
location ~ /\.ht {
deny all;
}
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;
}

#logフォルダの作成とnginx再起動
sudo mkdir /var/log/nginx/localhost
sudo mkdir /var/log/nginx/hidanireiko
sudo chown -R vagrant:vagrant /var/log/nginx
sudo service nginx restart

9.wordpressのセットアップ

192.168.33.31 hidanireiko.dev をhostsに追加
ブラウザでhttp://hidanireiko.dev に接続し、セットアップ

10. VM側追加設定 

(1) Xdebugのインストール

#epelの登録
sudo yum -y install epel-release

#epelから edebugインストール 
sudo yum -y install php-pecl-xdebug --enablerepo=epel

#確認
php -v
#結果以下のようにXdebugのバージョン情報が出力される
PHP 5.5.26 (cli) ・・・
with Xdebug v2.3.2, Copyright (c) 2002-2015, by Derick Rethans

php.iniに以下を追加

php.ini
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_host = 192.168.33.1

(2) 環境変数の設定

export PHP_IDE_CONFIG="serverName=hidanireiko.dev"

(3) ついでに・・PHPUnitのインストール

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version

(4) ついでに・・タイムゾーンをJSTに

timedatectl list-timezones 
sudo timedatectl set-timezone Asia/Tokyo

*ここまでの状態で  box化とgit化

11.PHPStormの設定

(1)PHPRemoteDebug設定

①設定

  • PhpStorm メニュー→[Run]→[Edit Configurations…] で、
    [Run/Debug Configurations] ダイアログを開く

  • [+] をクリックして、[PHP Remote Debug] を選択
    Kobito.xjS5SV.png

  • Servers の参照 ... ボタンを押下し、サーバ設定を以下のように行い、 OKボタンで登録。
    Kobito.NqpvfI.png

  • Servers に設定したサーバ名が反映されている事を確認、session id はdummyで何か入れて、OKボタンで登録。
    Kobito.jfkFPp.png

②動作確認

  • PhpStorm にて リモートデバッグを有効にし、最初の行でBreakする用に設定
  • [Run] – [Start Listen for PHP Debug Connections]
  • [Run] – [Break at first line in PHP Scripts]

設定後の状態
Kobito.AJI6Ma.png

  • ブラウザで適当なphpファイルを叩く
    →PhpStormでデバッグモードに
    Kobito.PhbScn.png

  • CLIで適当なphpファイルを叩く

vagrant ssh 
php XXX.php

→PhpStormでデバックモードに。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1