naoya0408 / menta

0 stars 0 forks source link

VagrantでWorpressを構築する #10

Closed RVIRUS0817 closed 5 years ago

RVIRUS0817 commented 5 years ago
naoya0408 commented 5 years ago

・vagrantのインストール ・vagrant boxの追加(vagrant box add) ・vagrantの初期化(vagrant init) 上記、完了しました。

naoya0408 commented 5 years ago

・仮想マシンを起動する(vagrant up)

・仮想マシンへログインする(vagrant ssh)

・mentaユーザの作成(rootユーザで useradd menta) ・mentaユーザのパスワードの設定(passwd menta) ・mentaユーザをwheelグループへ追加する

・公開鍵認証 ssh-keygenコマンドで秘密鍵を生成する→~/.sshに鍵ファイルが作られる 公開鍵をサーバー上に転送する サーバー上に.sshディレクトリを作成→パーミッションを700に変更 scp 公開鍵のファイル menta@サーバーのipアドレス:~/.ssh/authorized_keys

・Vagrantfileの編集 35行目のconfig.vm.network "private_network", ip: "ipアドレス"のコメントを外す 以下の2行を追加 config.ssh.username = "menta"→デフォルトでmentaユーザでsshログインをする config.ssh.private_key_path = "mac上で生成した秘密鍵へのパス"

公開鍵認証でログインをする ssh -i 【秘密鍵を指定】 menta@ipアドレス

RVIRUS0817 commented 5 years ago

ログなのですが、実際のコードを貼っていただけないでしょうか? マークダウンなどの書式についても調べると良いですよ。 https://qiita.com/kamorits/items/6f342da395ad57468ae3

naoya0408 commented 5 years ago

すみませんでした。 直してまとめてみます。

naoya0408 commented 5 years ago

vagrantをインストール

Vagrantからダウンロードしてインストール

$ vagrant -v
Vagrant 2.2.3

Vagrant boxの追加

$ vagrant box add centos64 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

config.vm.network "private_network", ip: "192.168.33.10" →35行目をコメントアウトを削除し有効にする

- Vagrantを再起動し設定を反映させる

$ vagrant reload

- Vagrantを起動する

$ vagrant up

## 仮想マシンへsshで接続する

$ vagrant ssh



安達さんの[ブログ記事](https://blog.adachin.me/archives/616)を参考にしました。
naoya0408 commented 5 years ago

mentaユーザの作成

naoya0408 commented 5 years ago

ssh公開鍵認証の設定

公開鍵と秘密鍵の作成

naoya0408 commented 5 years ago

Apacheのインストール

naoya0408 commented 5 years ago

nginxのインストール

[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1

* リポジトリが追加されたか確認

$ yum search nginx 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile

naoya0408 commented 5 years ago

H20のインストール

[bintray-tatsushid-h2o-rpm] name=bintray-tatsushid-h2o-rpm baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/$releasever/$basearch/ gpgcheck=0 repo_gpgcheck=0 enabled=1

* インストールするパッケージの確認をする

yum info h2o 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile

naoya0408 commented 5 years ago

PHP7最新のインストールと設定

<略> php73-php-common.x86_64 7.3.2-1.el7.remi remi-safe ←最新版のPHPパッケージ <略>

* 最新版の7.3をインストールする

$ sudo yum --enablerepo=remi-php73 install php php-devel php-mysql php-gd php-mbstring

php本体、開発用のモジュール、mysqlを使うためのモジュール、画像変換モジュール、日本語などの文字を使用できる拡張モジュールをインストールする

* インストールしたPHPのバージョンを確認する

$ php -v PHP 7.3.2 (cli) (built: Feb 5 2019 13:10:03) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.2, Copyright (c) 1998-2018 Zend Technologies

インストールできていることがわかる
## PHPで"Heloo World"をブラウザに表示してみる

$ sudo vim /var/www/html/index.php

<?php echo 'Hellow World';

* ファイルの所有者と所有グループをApacheにする

$ sudo chown apache:apache /var/www/html/index.php


ブラウザで確認をする
<img width="952" alt="2019-02-24 22 32 17" src="https://user-images.githubusercontent.com/40429887/53299906-16bf8700-3884-11e9-8e69-f2a1da5dd54d.png">
naoya0408 commented 5 years ago

Mysql最新のインストール

naoya0408 commented 5 years ago

MySQLの設定

2019-02-25T14:57:20.965519Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ***

 ***********の部分が初期パスワードになる
* MySQLの初期背設定を行う

$ mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: "上記のrootのパスワードを入力"

設定の質問に沿って設定を行う。(すべてYで設定をしました。)
* rootユーザでログインをする

$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 8.0.15 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

上記で設定したrootパスワードにてログインできた
* 現在作成されているデータベースを表示する

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec)

* MySQLの設定ファイルの編集
文字コードをUTF-8にする

$ sudo vim /etc/my.cnf

次の設定を追加する

character-set-server = utf8

* 設定を反映する

$ sudo systemctl restart mysqld

* MySQLの自動起動の設定

$ sudo systemctl restart mysqld [menta@localhost ~]$ sudo systemctl enable mysqld [menta@localhost ~]$ sudo systemctl list-unit-files -t service | grep mysqld mysqld.service enabled mysqld@.service disabled

naoya0408 commented 5 years ago

WordPressのインストール

データベースの作成

rootユーザでログインして、ユーザを作成する

mysql> create user 'mentabloguser'@'localhost' identified with mysql_native_password by '自分でパスワードを設定する';
Query OK, 0 rows affected (0.02 sec)

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

(1/4): updates/7/x86_64/primary_db | 2.4 MB 00:00:00 (2/4): remi-safe/primary_db | 1.4 MB 00:00:01 (3/4): epel/x86_64/updateinfo | 962 kB 00:00:01 (4/4): epel/x86_64/primary_db | 6.6 MB 00:00:05 パッケージ wget-1.14-18.el7.x86_64 はインストール済みか最新バージョンです 何もしません

$ which wget /usr/bin/wget

はじめからインストールされていたようです。
* WordPressのダウンロードファイルを入手する
[WordPressの公式ページ](https://ja.wordpress.org/)から圧縮ファイルのリンクのアドレスをコピーする

$ cd /tmp $ wget https://ja.wordpress.org/wordpress-5.1-ja.tar.gz $ ls -la 合計 11016 drwxrwxrwt. 8 root root 4096 2月 26 13:32 . dr-xr-xr-x. 18 root root 4096 2月 25 14:44 .. drwxrwxrwt. 2 root root 6 7月 16 2015 .ICE-unix drwxrwxrwt. 2 root root 6 7月 16 2015 .Test-unix drwxrwxrwt. 2 root root 6 7月 16 2015 .X11-unix drwxrwxrwt. 2 root root 6 7月 16 2015 .XIM-unix drwxrwxrwt. 2 root root 6 7月 16 2015 .font-unix drwx------ 3 root root 16 2月 26 12:44 systemd-private-ace01bd3cc0d4a169559f89c98a0822b-httpd.service-hfoYu6 -rw-rw-r-- 1 menta menta 11268745 2月 22 01:02 wordpress-5.1-ja.tar.gz

* ダウンロードした圧縮ファイルを展開する

$ sudo tar -zxvf wordpress-5.1-ja.tar.gz -C /var/www/

* 展開したファイルの確認

$ cd /var/www [menta@localhost www]$ ls -la 合計 8 drwxr-xr-x 5 root root 47 2月 26 13:36 . drwxr-xr-x. 21 root root 4096 2月 25 15:57 .. drwxr-xr-x 2 root root 6 11月 5 02:47 cgi-bin drwxr-xr-x 2 root root 22 2月 25 15:36 html drwxr-xr-x 5 1006 1006 4096 2月 22 01:01 wordpress ←このディレクトリにファイルが入っている

* WordPressディレクトリの所有権をApacheにする

[menta@localhost www]$ sudo chown -R apache:apache wordpress/

* Apacheの設定ファイルを編集する
※念の為ファイルのバックアップをとっておく

$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

* ファイルの編集をする

$ sudo vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/wordpress" ←ドキュメントルートをWordPressに

#

Relax access to content within /var/www.

# <Directory "/var/www/wordpress"> ←ディレクトリをWordPressに AllowOverride None

Allow open access:

Require all granted

* Apacheを再起動する

$ sudo systemctl restart httpd


* ブラウザで確認する
<img width="952" alt="2019-02-26 22 00 05" src="https://user-images.githubusercontent.com/40429887/53414419-12c16f80-3a12-11e9-9532-3b77d1f106a2.png">
WordPressの初期設定画面が表示された!
RVIRUS0817 commented 5 years ago

@naoya0408 おめでとうございます!!

次はmenta.meでアクセスできるようにし、https化をしてください! あとはnginx,h2oでの設定ですね。

naoya0408 commented 5 years ago

WordPressにmenta.meでアクセスする

naoya0408 commented 5 years ago

https オレオレ証明書でアクセスする

SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

秘密鍵へのパスと証明書へのパスを変更する
* Apacheの再起動

systemctl restart httpd


* ブラウザで見てみる
* Safari
<img width="1792" alt="2019-02-27 22 15 32" src="https://user-images.githubusercontent.com/40429887/53496268-0528ea00-3ae5-11e9-8ee0-2f2f482c5789.png">
* Chrome
<img width="952" alt="2019-02-27 22 15 55" src="https://user-images.githubusercontent.com/40429887/53496274-08bc7100-3ae5-11e9-8780-8ff5eddeb895.png">
* Firefox
<img width="1392" alt="2019-02-27 22 28 42" src="https://user-images.githubusercontent.com/40429887/53496277-0b1ecb00-3ae5-11e9-8768-8fa626bbe9d0.png">

●わからなかった点
ブラウザで表示が異なるのですがそれはどうしてなのかググってみましたがSSLへの理解が
まだ浅いのかわからない部分が多かったです。
【読んだ記事】
https://www.cresco.co.jp/blog/entry/2704/
https://jp.globalsign.com/blog/articles/self_signed_certificate.html
RVIRUS0817 commented 5 years ago

https://blog.adachin.me/archives/5590 よければhttpsの歴史ブログ書いてるのでぜひ!ブラウザによって異なるのはそこまで考えなくて良いかと。

naoya0408 commented 5 years ago

ありがとうございます! じっくり読んで勉強してみますね。

これからnginxとH2OにもWordPressを構築 していくのですが、 同じLinux環境上で競合せずに動作させていく上で気をつけることはありますか?

RVIRUS0817 commented 5 years ago

@naoya0408 基本apacheはstopしてnginxを上げれば大丈夫です!

naoya0408 commented 5 years ago

nginxでWordPressを構築する

変更後

user = nginx group = nginx

* php-fpmの起動

$ sudo systemctl start php-fpm

* 自動起動の設定

$ sudo systemctl enable php-fpm

### nginxの設定
/etc/nginx/conf.d配下に設定ファイルを作成
nginx.confの "include /etc/nginx/conf.d/*.conf;" にて読み込まれる

$ sudo cd /etc/nginx/conf.d $ sudo vim menta.me.conf

server { listen 80; server_name menta.me; root /usr/share/nginx/blog/wordpress; index index.php;

charset utf-8;

wordpress パーマネントリンク設定

try_files $uri $uri/ /index.php?q=$uri&$args;

wp-config.phpへのアクセス拒否設定

location ~* /wp-config.php { deny all; }

php-fpm用設定

location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include fastcgi_params; } }

* 設定の確認

$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

* nginxの再起動

$ sudo systemctl restart nginx

### WordPress用の設定
* nginxの設定ファイルに記述したドキュメントルートにWordPressのファイルを展開する

$ ls -la /usr/share/nginx/blog/ 合計 4 drwxr-xr-x 3 nginx nginx 22 3月 3 08:29 . drwxr-xr-x 5 root root 42 3月 3 08:16 .. drwxr-xr-x 5 nginx nginx 4096 3月 3 11:06 wordpress ←今回はこちらにファイルを置きます

* フォルダの中に、「wordpress」の設定ファイルのサンプルである「wp-config-sample.php」があるので、これをコピーして「wp-config.php」を作成し、設定を行う

$ sudo cp -p wp-config-sample.php wp-config.php $ sudo vim wp-config.php

以下を編集する

// MySQL 設定 - この情報はホスティング先から入手してください。 // /* WordPress のためのデータベース名 / define('DB_NAME', 'wp_mentablog');

/* MySQL データベースのユーザー名 / define('DB_USER', 'mentabloguser');

/* MySQL データベースのパスワード / define('DB_PASSWORD', '**');

/* MySQL のホスト名 / define('DB_HOST', 'localhost');

/* データベースのテーブルを作成する際のデータベースの文字セット / define('DB_CHARSET', 'utf8mb4');

/* データベースの照合順序 (ほとんどの場合変更する必要はありません) / define('DB_COLLATE', '');


※Apacheで作ったWordPressを表示させるため同じMySQLの設定にしました

### ブラウザで確認する
<img width="1792" alt="2019-03-04 22 30 58" src="https://user-images.githubusercontent.com/40429887/53736491-3b8fac00-3ecd-11e9-8505-1438b25031be.png">

参考にしたサイト
https://www.server-memo.net/memo/wordpress/nginx-install.html#nginx-5
naoya0408 commented 5 years ago

自己証明書でnginxをSSL化する

$ sudo tree /etc/nginx/ [sudo] menta のパスワード: /etc/nginx/ ├── conf.d │   └── menta.me.conf ├── default.d ├── fastcgi.conf ├── fastcgi.conf.default ├── fastcgi_params ├── fastcgi_params.default ├── koi-utf ├── koi-win ├── mime.types ├── mime.types.default ├── nginx.conf ├── nginx.conf.default ├── nginx.conf.org ├── scgi_params ├── scgi_params.default ├── ssl.crt │   └── server.crt ←ここに証明書 ├── ssl.key │   └── server.key ←ここに秘密鍵 ├── uwsgi_params ├── uwsgi_params.default └── win-utf

* nginxの設定ファイルを変更する
下記の設定を追記する

$ sudo vim /etc/nginx/conf.d/menta.me.conf

server { listen 443 ssl; server_name menta.me; root /usr/share/nginx/blog/wordpress; index index.php;

charset utf-8;

SSL設定

ssl_certificate /etc/nginx/ssl.crt/server.crt; ssl_certificate_key /etc/nginx/ssl.key/server.key;

wordpress パーマネントリンク設定

try_files $uri $uri/ /index.php?q=$uri&$args;

wp-config.phpへのアクセス拒否設定

location ~* /wp-config.php { deny all; }

php-fpm用設定

location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include fastcgi_params; } }

* nginxをリロードする

$ sudo systemctl restart nginx


* ブラウザで確認する
<img width="952" alt="2019-03-06 1 31 00" src="https://user-images.githubusercontent.com/40429887/53820668-93064880-3faf-11e9-9323-61b2587032d1.png">
httpsでアクセスできた!
RVIRUS0817 commented 5 years ago

@naoya0408 お疲れ様です! すばらしいです!設定等問題ないと思います! ではクローズします👍

naoya0408 commented 5 years ago

H2OでWordPressを構築する

参考にしたサイト http://blog.kazuhooku.com/2015/06/h2ophpmodrewrite.html https://blog.adachin.me/archives/6260

file.custom-handler: extension: .php fastcgi.spawn: "PHP_FCGI_CHILDREN=10 exec /usr/bin/php-cgi"

file.index: [ 'index.html', 'index.php' ]

hosts: <<: !file /etc/h2o/conf.d/menta.me.conf

error-log: /var/log/h2o/all-virtual.error.log


* /etc/h2o/conf.d/menta.me.confの設定

"menta.me:80": listen: port: 80 paths: "/": redirect: https://menta.me "menta.me:443": listen: port: 443 ssl: certificate-file: /etc/h2o/server.crt key-file: /etc/h2o/server.key paths: "/": file.dir: /var/www/wordpress redirect: url: /index.php/ internal: YES status: 307 access-log: /var/log/h2o/menta.me.access.log


設定をリロードしてブラウザで確認します。
<img width="952" alt="スクリーンショット 2019-03-09 23 17 27" src="https://user-images.githubusercontent.com/40429887/54072691-aa03ae00-42c1-11e9-8806-8d5c1df3f911.png">
naoya0408 commented 5 years ago

phpを繋げるfile.custom-handlerの設定なのですが、 安達さんの設定を真似してみて以下のようにしたのですがなぜか動かなかったです。。

file.custom-handler:
  extension:  .php
  fastcgi.connect:
    port: /var/run/php/php-fpm.sock
    type: unix

php-fpmの設定も変えてみたのですが、 何が原因なのでしょうか?

www.confの設定で変えたのは以下の部分です。

user = apache
group = apache
↓
user = h2o
group = h2o

listen = 127.0.0.1:9000
↓
listen = /var/run/php/php-fpm.sock

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
listen.owner = h2o
listen.group = h2o
listen.mode = 0660
RVIRUS0817 commented 5 years ago

んー繋がらない時のログなどを貼ってもらえますか?? うまくいかないのはh2oがそもそも動いているか、いないかの切り分けを調査しましょう。

naoya0408 commented 5 years ago

遅れてすみません。以下ログになります。 /var/log/h2o/all-virtual.error.log

starting new worker 5394
[INFO] raised RLIMIT_NOFILE to 65536
h2o server (pid:5394) is ready to serve requests
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
[lib/handler/fastcgi.c] in request:/:connection failed:failed to connect to host
# systemctl status php-fpm.service
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 日 2019-03-10 20:06:18 JST; 1min 14s ago
  Process: 5608 ExecStart=/usr/sbin/php-fpm --nodaemonize (code=exited, status=78)
 Main PID: 5608 (code=exited, status=78)

 3月 10 20:06:18 menta.me systemd[1]: Starting The PHP FastCGI Process Manager...
 3月 10 20:06:18 menta.me php-fpm[5608]: [10-Mar-2019 20:06:18] ERROR: unable to bind ...2)
 3月 10 20:06:18 menta.me php-fpm[5608]: [10-Mar-2019 20:06:18] ERROR: FPM initializat...ed
 3月 10 20:06:18 menta.me systemd[1]: php-fpm.service: main process exited, code=exit...n/a
 3月 10 20:06:18 menta.me systemd[1]: Failed to start The PHP FastCGI Process Manager.
 3月 10 20:06:18 menta.me systemd[1]: Unit php-fpm.service entered failed state.
 3月 10 20:06:18 menta.me systemd[1]: php-fpm.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
RVIRUS0817 commented 5 years ago

@naoya0408 ちょっとビデオ通話で見てみるしかないですね〜

naoya0408 commented 5 years ago

@RVIRUS0817 お時間があるときで良いので教えていただけるとありがたいです。。