WordPress をVine Linux へインストール
インストール状況の確認
まずは、WordPress のサーバー要求事項を確認します
っという事なので、自分の環境のインストール状態を確認します
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のパッケージを確認します
今度は、何も出来きませんから、インストールされていないようです
インストールしなければ、いけませんね。
MySQL のインストール
バージョンが違うからなのか、ちょっと違うところもありましたが、私は下記を参考にさせていただきました
【Vine Linuxで自宅サーバー】MySQLの導入
パッケージ管理ツールで、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」コマンドを使います
インストールが完了しました。
最初私は、php5-mysql を忘れていて、WordPress の設定画面までいって「エラー」になってしまい、かなり遠回りしてしまいました。
次に、文字コードを「PHP」と「MySQL」で合わせておいたほうがよいようです。
まず、「PHP」を確認します。設定ファイルは、「/etc/php5/php.ini」で、「mbstring.internal_encoding」の項目で設定されているようです
設定ファイルを「cat」コマンドで表示させ、確認しますが、行が沢山あって大変です。こんな時には、「|」パイプが使えます。
全部の内容を「grep」コマンドに渡し、その横に書いた検索したいキーワードで表示内容を絞る事ができます
よかったです。一般的な「UTF-8」で設定されていました。
文字コードには、「シフトJIS」や「EUC」「JIS」などがあるようですが、「UTF-8」がいいようです。
詳細はよく調べていませんが、あまり考えず、「MySQL」でも同じにします
設定ファイルは、/etc/my.cnf のようですが、私の環境ではこのファイルは存在しませんでした。
調べると、MySQLのインストールディレクトリの中の、my-medium.cnf のファイルをコピーして使うようです。
MySQLのインストールディレクトリは /usr/share/mysql/ だったのでコピーして vi で編集します・・
[mysqld]の項目に下記を追記
default-character-set=utf8
skip-character-set-client-handshake
意味は、
・デフォルトのサーバ文字コードを指定する
・サーバーの文字コード設定をクライアントでもそのまま使うようにする
のようです。あまり考えず、その通りに編集して保存します。
ちなみに、vi エディタでは、ファイルを開いた後は、コマンドモードになっているのでその状態で「:/mysqld」と打ち込むと、検索できます。
思惑の行でなかった場合は、「n」キーを押すと次へジャンプします
そんな感じで [mysqld] 項目を探し、上記のコードを追加します。
サーバー機を再起動しても、自動的に起動できるように、設定し、起動させます
$ sudo chkconfig mysql on
確認します
2~5が「on」であれば大丈夫です。MySQLを起動させましょう。
いよいよ、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]モード中なのが分かります
まずは、初期状態での、ユーザー、ホスト、パスワードを確認します
※ホスト名は、ここでは仮として「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 パスワードの設定
・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 | *1234567890ABCDEFGHIJGMLN1234567890ABCDEF | | root | hogehoge.com | *1234567890ABCDEFGHIJGMLN1234567890ABCDEF | | 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 | *6F333411CDA0B714A73F4FFC679591D420DB5DD7 | | root | hogehoge.com | *6F333411CDA0B714A73F4FFC679591D420DB5DD7 | | 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」のツールが使えるみたいですが、
そのインストールも面倒なので、シェルでおこってみます
の操作を行います。
$ 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ディレクトリを、サーバーの公開場所へ移動
・実際保存されたディレクトリとWeb上でのアドレスを紐付けします
・紐付けは、apacheの設定ファイル「apache2.conf」を編集します
$ sudo vi /etc/apache2/conf/apache2.conf
・apache2.conf に、下記のコマンドを追加します
・Alias は別名の意味で「Alias "Web上のアドレス" "実際のディレクトリ"」となります
設定は終了です。apache を再起動します。
$ sudo /etc/init.d/apache2 restart Apache2 HTTP Serverを停止中: [ OK ] Apache2 HTTP Serverを起動中: [ OK ]
さあこれで、動いてくれるはず・・・
Webに接続してみます。 http://hogehoge.com/blog
やったぁ!WordPress の設定画面が出てきました。
とりあえず、PHP と MySQL は正常に動き出したようですね !(^^)!
・・・
ところが、次のページに必要事項を入力後、次へ進むとエラー発生!
う~ん!
良く分かりませんが、データベースとその管理ユーザーは、「localhost」でも作成しなけらばいけないのかもしれません。MySQL の GRANTコマンドで作成します
やった、とりあえず一歩進みましたが、またエラー!!!
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 の設定ファイルをみると、下記の設定がみつかります
これは、Web側から、サーバーにアクセスする場合、
ユーザー名「apache」のグループ名「apache」でアクセスするという事です。
したがって、Web上のWordPress がWordPessディレクトリ 内へ
アップロードしたり更新したりする場合、
「apache」ユーザーを許可する必要があります
ちょっと、セキュリティ的に不安がありますが、下記サイトを見る限り
大丈夫なようです。
WordPressのファイルのパーミッションはどうすべきなのか
っという事で、WordPress ディレクトリはapache を所有者にしようと思います
「chown」コマンドを使用します。apache:apache で「ユーザー」「グループ」
を変更する。-R オプションで、指定ディレクトリを再帰的に変更します