facebook

「WordPress」をインストールしてみた Ⅱ

インストール状況の確認

またまた、話題はずれですみません。
でも、Linux は無料ですし、奥が深く面白いです。暇つぶしの気分転換には、最高です。
私の場合、コンテンツより、立ち上げるのが、目的です ^^;

まずは、WordPress のサーバー要求事項を確認します

  • PHP バージョン 5.2.4 以上
  • MySQL バージョン 5.0.15 以上

っという事なので、自分の環境のインストール状態を確認します

$ rpm -qa | grep -i php
php5-apache2-5.5.36-1vl6.i686
php5-mysql-5.5.36-1vl6.i686
php5-pear-5.5.36-1vl6.i686
php5-5.5.36-1vl6.i686
php5-pdo-5.5.36-1vl6.i686

php はすでにインストールされているようです。
次に、公開されているMySQLのパッケージを確認します

$ rpm -qa | grep -i mysql

今度は、何も出て来きませんから、インストールされていないようです
インストールしなければ、いけませんね。

MySQL のインストール

バージョンが違うからなのか、ちょっと違うところもありましたが、私は下記を参考にさせていただきました
【Vine Linuxで自宅サーバー】MySQLの導入

パッケージ管理ツールで、MySQLのパッケージ名を調べます

$ apt-cache search mysql
MySQL-client – MySQL – Client
・・・・
MySQL-server – MySQL: a very fast and reliable SQL database server
MySQL-client – MySQL – Client
・・・・
・・・・
・・・・

結構沢山出来ていきました
この中で必要なのは次の3つのようです

MySQL-client
MySQL-server
php5-mysql

パッケージ管理ツール [apt]でインストールします
ただし、インストールには管理者権限が必要なので、「sudo」コマンドを使います

$ sudo apt-get install MySQL-client MySQL-server php5-mysql

インストールが完了しました。
最初私は、php5-mysql を忘れていて、WordPress の設定画面までいって
「エラー」になってしまい、かなり遠回りしてしまいました。

次に、文字コードを「PHP」と「MySQL」で合わせておいたほうがよいようです。
まず、「PHP」を確認します。設定ファイルは、「/etc/php5/php.ini」で、
「mbstring.internal_encoding」の項目で設定されているようです
設定ファイルを「cat」コマンドで表示させ、確認しますが、
行が沢山あって大変です。こんな時には、「|」パイプが使えます。
全部の内容を「grep」コマンドに渡し、その横に書いた検索したい
キーワードで表示内容を絞る事ができます

$ cat /etc/php5/php.ini | grep mbstring.internal_encoding
mbstring.internal_encoding = UTF-8

よかったです。一般的な「UTF-8」で設定されていました。
文字コードには、「シフトJIS」や「EUC」「JIS」などがあるようですが、
「UTF-8」がいいようです。
詳細はよく調べていませんが、あまり考えず、「MySQL」でも同じにします
設定ファイルは、/etc/my.cnf のようですが、
私の環境ではこのファイルは存在しませんでした。
調べると、MySQLのインストールディレクトリの中の、
my-medium.cnf のファイルをコピーして使うようです。
MySQLのインストールディレクトリは /usr/share/mysql/ 
だったのでコピーして vi で編集します・・

$ sudo cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
$ sudo vi /etc/php5/php.ini
[mysqld]の項目に下記を追記
default-character-set=utf8
skip-character-set-client-handshake
意味は、
・デフォルトのサーバ文字コードを指定する
・サーバーの文字コード設定をクライアントでもそのまま使うようにする
のようです。あまり考えず、その通りに編集して保存します。
ちなみに、vi エディタでは、ファイルを開いた後は、
コマンドモードになっているのでその状態で「:/mysqld」と打ち込むと、検索できます。
思惑の行でなかった場合は、「n」キーを押すと次へジャンプします
そんな感じで [mysqld] 項目を探し、上記のコードを追加します。
ここまできたら、サーバー機を再起動しても、
自動的に起動できるように、設定し、起動させます

$ sudo chkconfig mysql on

確認します

$ sudo chkconfig –list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2~5が「on」であれば大丈夫です。MySQLを起動させましょう。

$ sudo /etc/init.d/mysql restart
Shutting down MySQL….. SUCCESS!
Starting MySQL. SUCCESS!

いよいよ、MySQLを立上げますが、作成直後は管理ユーザー「root」
でもパスワードなしで入れるようです。

$ sudo mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.73-log VineLinux MySQL RPM


MySQLの設定

MySQLが立ち上がっていると、プロンプトが変わるので
[MySQL]モード中なのが分かります

mysql>

まずは、初期状態での、ユーザー、ホスト、パスワードを確認します
※ホスト名は、ここでは仮として「hogehoge.com」で進めます

mysql> select user,host,password from mysql.user;

+------+--------------+----------+
| user | host         | password |
+------+--------------+----------+
| root | localhost    |          |
| root | hogehoge.com |          |
| root | 127.0.0.1    |          |
|      | localhost    |          |
|      | hogehoge.com |          |
+------+--------------+----------+

・パスワードが未だ設定されていないので、設定します。
サーバー機で直接設定する場合は、localhost だけでいいかもしれませんが
私の場合、別のPCから設定するので、外部からのホスト名用のrootパスワードも設定します

・localhost の root パスワードの設定

mysql> set password for root@localhost=password(‘パスワード’);
Query OK, 0 rows affected (0.00 sec)

・hogehoge.com の root パスワードの設定

mysql> set password for root@hogehoge.com=password(‘パスワード’);
Query OK, 0 rows affected (0.00 sec)

・確認します


mysql> select user,host,password from mysql.user;

+------+--------------+------------+
| user | host         | password   |
+------+--------------+------------+
| root | localhost    | *1234567890|
| root | hogehoge.com | *1234567890|
| root | 127.0.0.1    |            |
|      | localhost    |            |
|      | hogehoge.com |            |
+------+--------------+------------+

パスワードが設定されたのが分かります。
内容は暗号化されているので、設定した内容とは同じにはなりません。

・名前のない、匿名ユーザーを削除し確認


mysql> delete from mysql.user where user=”;

Query OK, 2 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;

+------+--------------+------------+
| user | host         | password   |
+------+--------------+------------+
| root | localhost    | *6F333411CD|
| root | hogehoge.com | *6F333411CD|
| root | 127.0.0.1    |            |
+------+--------------+------------+
3 rows in set (0.00 sec)
    

MySQL の下準備は完了しました
いよいよ、WordPress 用の設定をします。
下記が参考になります

WordPress のインストール – WordPress Codex 日本語版

まずは、WordPress に必要な情報をまとめておきます。

  • データベース名:WpDatabase
  • ユーザー名:WpUser
  • パスワード:WpPassword
  • ローカルホスト:Hogehoge.com

次に、MySQL に設定をしていきます。
上記サイトによると、「cPanel」「phpMyAdmin」のツールが使えるみたいですが、
そのインストールも面倒なので、シェルでおこってみます

  1. 管理者権限で、MySQL起動
  2. WordPress用のデータベース作成
  3. WordPress用ユーザー作成と、権限付与
  4. 権限の反映

の操作を行います。

$ sudo mysql -u root -p
Enter password:「パスワード」
Welcome to the MySQL monitor. Commands end with ; or \g.


mysql> Create database :WpDatabase;
Query OK, 1 row affected (0.39 sec)

mysql> GRANT ALL PRIVILEGES ON :WpDatabase.* TO “WpUser”@”Hogehoge.com”
-> IDENTIFIED BY “WpPassword”;
Query OK, 0 rows affected (0.39 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye


WordPres インストール

・WordPress をダウンロード
適当な、ダウンロードスペースに、ダウンロードします。
私は、ホームディレクトリの「Download」ディレクトリへダウンロードします
ダウンロードには「wget」コマンドを使用します

$ cd ./Download/
$ wget https://ja.wordpress.org/wordpress-4.9.5-ja.tar.gz

・展開
展開には、「tar」コマンドを使用します。
コマンドのオプションは「xvzf」

  • x  展開する
  • v 進行状態を表示
  • z 圧縮ファイルに対応
  • f ファイル名指定
$ tar xvzf wordpress-4.9.5-ja.tar.gz
wordpress/
wordpress/wp-mail.php
wordpress/wp-links-opml.php


wordpress/wp-content/plugins/akismet/akismet.php
wordpress/wp-content/plugins/akismet/class.akismet-rest-api.php
wordpress/xmlrpc.php
wordpress/wp-config-sample.php

・展開した、WordPressディレクトリを、サーバーの公開場所へ移動

$ sudo mv ./wordpress/ /home/httpd/html

・実際保存されたディレクトリとWeb上でのアドレスを紐付けします
・紐付けは、apacheの設定ファイル「apache2.conf」を編集します

$ sudo vi /etc/apache2/conf/apache2.conf

・apache2.conf に、下記のコマンドを追加します
・Alias は別名の意味で「Alias “Web上のアドレス” “実際のディレクトリ”」となります



Alias /blog /home/httpd/html/wordpress

設定は終了です。apache を再起動します。

$ sudo /etc/init.d/apache2 restart 
Apache2 HTTP Serverを停止中:      [  OK  ]
Apache2 HTTP Serverを起動中:      [  OK  ]

さあこれで、動いてくれるはず・・・

Webに接続してみます。 http://hogehoge.com/blog

f:id:kazuban:20180502141346p:plain

やったぁ!WordPress の設定画面が出てきました。
とりあえず、PHP と MySQL は正常に動き出したようですね !(^^)!
・・・

ところが、次のページに必要事項を入力後、次へ進むとエラー発生!

f:id:kazuban:20180502141929p:plain

う~ん!
良く分かりませんが、データベースとその管理ユーザーは、「localhost」でも作成しなけらばいけないのかもしれません。MySQL の GRANTコマンドで作成します

mysql> GRANT ALL PRIVILEGES ON :WpDatabase.* TO “WpUser”@”localhost”
-> IDENTIFIED BY “WpPassword”;

やった、とりあえず一歩進みましたが、またエラー!!!

f:id:kazuban:20180502142943p:plain

wp-config.php というファイルがWordPress の設定ファイルのようですが
たぶんファイル権限の関係で、Web上からのWordPress がそのファイルを
書き換える事ができないのだと思います
とりあえず、力づくで、手動で編集してしまいます。
「WordPress」を展開したディレクトリへ移動して、内容を確認してみます

$ cd /home/httpd/html/wordpress
$ ls
index.php             wp-config-sample.php  
wp-mail.php           license.txt           
wp-content/           wp-settings.php
readme.html           wp-cron.php
wp-signup.php         wp-activate.php
wp-includes/          wp-trackback.php
wp-admin/             wp-links-opml.php
xmlrpc.php            wp-blog-header.php
wp-load.php           wp-comments-post.php
wp-login.php

なるほど、 wp-config-sample.php という、サンプルファイルが用意されていました。
これを、wp-config.php というファイル名でコピーして編集する事にします

$ cp -p wp-config-sample.php wp-config.php
$ vi wp-config.php



/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘database_name_here’);

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘username_here’);

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

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

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

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

これを、下記のように、編集しました。

/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘WpDatabase’);

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘WpUser’);

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

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘Hogehoge.com’);

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

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

先ほど、ファイル権限らしきエラーが出たので、権限を変更しておきます
まず、apache の設定ファイルをみると、下記の設定がみつかります



User apache
Group apache

これは、Web側から、サーバーにアクセスする場合、
ユーザー名「apache」のグループ名「apache」でアクセスするという事です。
したがって、Web上のWordPress がWordPessディレクトリ 内へ
アップロードしたり更新したりする場合、
「apache」ユーザーを許可する必要があります
ちょっと、セキュリティ的に不安がありますが、下記サイトを見る限り
大丈夫なようです。

WordPressのファイルのパーミッションはどうすべきなのか

っという事で、WordPress ディレクトリはapache を所有者にしようと思います
「chown」コマンドを使用します。apache:apache で「ユーザー」「グループ」
を変更する。-R オプションで、指定ディレクトリを再帰的に変更します

$ cd /home/httpd/html/ 
$ chown -R apache:apache ./wordpress/

やった!ついに動きだしました!!

やっとここまで来た!

f:id:kazuban:20180502160424p:plain

やっとログイン画面がでてきました。
テーマを選択したり、ダウンロードすれば、いろいろなデザインになりますね。
私は、LION MEDIAにしてみました。
まだよくわかりませんが、いろいろ設定できそうです。
kazuban.com/blog/

最新情報をチェックしよう!