2014年5月6日火曜日

WordPressのパーマリンク設定をデフォルト以外にした場合の対処

WordPressのインストールについては前回まとめたとおり、無事ダッシュボードを表示するに至りました。
しかし、WordPressのパーマリンク設定をデフォルト以外に設定すると、投稿したページがなぜかNot Found (404 Error)になってしまいます。
https://api.wordpress.org/secret-key/1.1/salt/ にアクセスして認証用ユニークキーをwp-config.phpに設定すれば解消するとの噂もありましたが・・・。
試した限りではAllowOverrideの設定だけでした。とりあえず手順をまとめます。

Amazon Linux AMI release 2014.03
WordPress 3.9 日本語版
ドメイン(仮): lnx-cms.linuxnow.com


パーマリンク設定を「月と投稿名」に変更


ほとんどの人がこの設定を変更したいと思いそうですが・・・。自分だけ?!

とりあえず、何か記事を投稿して確認してみます。

はい残念。○| ̄|_

■パーマリンク設定をデフォルト以外にしても404を起こさない設定

## mod_rewriteが有効になっていることを確認
[root@lnx-cms ~]# grep mod_rewrite /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
[root@lnx-cms ~]#

## .htaccessの確認
[root@lnx-cms ~]# cat /var/www/html/wordpress/.htaccess

# BEGIN WordPress

RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]


# END WordPress
[root@lnx-cms ~]#
※特に変更は不要でした。

## wp-config.phpの修正
ブラウザにて https://api.wordpress.org/secret-key/1.1/salt/ にアクセスして 認証用ユニークキーを設定すれば解消するとの噂もありましたが、そのままでも 大丈夫でした。

## WordPressのディレクトリに対してAllowOverrideを設定
[root@lnx-cms ~]# vi /etc/httpd/conf.d/wp.conf
[root@lnx-cms ~]# cat /etc/httpd/conf.d/wp.conf
<Directory "/var/www/html/wordpress">
    AllowOverride All
</Directory>
[root@lnx-cms ~]#
## httpdを再起動して反映
[root@lnx-cms ~]# /etc/init.d/httpd restart
Stopping httpd:                                         [  OK  ]
Starting httpd:                                         [  OK  ]
[root@lnx-cms ~]#
## 再び投稿ページへ

Not Found 解消!!


こちらの情報が何かのお役に立てましたら幸いです。ちょこっと右サイドも見ていただければ幸いです。m(_ _)m

2014年5月5日月曜日

Amazon LinuxにWordPressをインストールする手順

AWSのEC2(Amazon Linux)にWordPressをインストールする手順です。必要パッケージ(Apache、MySQL、PHP等)を準備して、データベースを作成してからWordPressをドキュメントルートに展開後、コンフィグ設定すれば、だいたい完了です。
後は画面にてインストールプロセスに必要な項目を入力し、ログインしてダッシュボードを表示するところまでまとめます。
パーマリンク設定をデフォルト以外に設定しても404エラーを出さない方法については、別途記載できればと思います。

Amazon Linux AMI release 2014.03
WordPress 3.9 日本語版
ドメイン(仮): lnx-cms.linuxnow.com


■既存パッケージの確認

[root@lnx-cms ~]# rpm -qa | grep -e httpd -e mysql -e php | sort
[root@lnx-cms ~]#
何も入っていません。Amazon Linuxは本当にシンプル。


■必要パッケージの準備

[root@lnx-cms ~]# yum install httpd mysql-server php php-mysql php-mbstring
(中略)
===============================================================================
 Package                   Arch      Version              Repository      Size
===============================================================================
Installing:
 httpd                     x86_64    2.2.27-1.2.amzn1     amzn-updates   1.2 M
 mysql-server              noarch    5.5-1.6.amzn1        amzn-main      2.8 k
 php                       x86_64    5.3.28-1.5.amzn1     amzn-updates   2.8 M
 php-mbstring              x86_64    5.3.28-1.5.amzn1     amzn-updates   2.3 M
 php-mysql                 x86_64    5.3.28-1.5.amzn1     amzn-updates   178 k
Installing for dependencies:
 apr                       x86_64    1.5.0-2.11.amzn1     amzn-updates   115 k
 apr-util                  x86_64    1.4.1-4.14.amzn1     amzn-main       87 k
 apr-util-ldap             x86_64    1.4.1-4.14.amzn1     amzn-main       17 k
 generic-logos             noarch    17.0.0-2.5.amzn1     amzn-main      589 k
 httpd-tools               x86_64    2.2.27-1.2.amzn1     amzn-updates    79 k
 mailcap                   noarch    2.1.31-2.7.amzn1     amzn-main       27 k
 mysql55                   x86_64    5.5.37-1.46.amzn1    amzn-updates   7.5 M
 mysql55-common            x86_64    5.5.37-1.46.amzn1    amzn-updates    48 k
 mysql55-libs              x86_64    5.5.37-1.46.amzn1    amzn-updates   812 k
 mysql55-server            x86_64    5.5.37-1.46.amzn1    amzn-updates    13 M
 perl-Compress-Raw-Bzip2   x86_64    2.061-1.10.amzn1     amzn-main       33 k
 perl-Compress-Raw-Zlib    x86_64    2.061-1.10.amzn1     amzn-main       60 k
 perl-DBD-MySQL            x86_64    4.023-2.16.amzn1     amzn-main      148 k
 perl-DBI                  x86_64    1.627-1.7.amzn1      amzn-main      854 k
 perl-Data-Dumper          x86_64    2.145-1.4.amzn1      amzn-main       49 k
 perl-IO-Compress          noarch    2.061-1.1.11.amzn1   amzn-main      298 k
 perl-Net-Daemon           noarch    0.48-4.4.amzn1       amzn-main       58 k
 perl-PlRPC                noarch    0.2020-12.5.amzn1    amzn-main       38 k
 php-cli                   x86_64    5.3.28-1.5.amzn1     amzn-updates   2.6 M
 php-common                x86_64    5.3.28-1.5.amzn1     amzn-updates   1.0 M
 php-pdo                   x86_64    5.3.28-1.5.amzn1     amzn-updates   170 k

Transaction Summary
================================================================================
Install  5 Packages (+21 Dependent packages)
(以下略)

## インストールしたパッケージの確認
[root@lnx-cms ~]# rpm -qa | grep -e httpd -e mysql -e php | sort
httpd-2.2.27-1.2.amzn1.x86_64
httpd-tools-2.2.27-1.2.amzn1.x86_64
mysql55-5.5.37-1.46.amzn1.x86_64
mysql55-common-5.5.37-1.46.amzn1.x86_64
mysql55-libs-5.5.37-1.46.amzn1.x86_64
mysql55-server-5.5.37-1.46.amzn1.x86_64
mysql-server-5.5-1.6.amzn1.noarch
php-5.3.28-1.5.amzn1.x86_64
php-cli-5.3.28-1.5.amzn1.x86_64
php-common-5.3.28-1.5.amzn1.x86_64
php-mbstring-5.3.28-1.5.amzn1.x86_64
php-mysql-5.3.28-1.5.amzn1.x86_64
php-pdo-5.3.28-1.5.amzn1.x86_64
[root@lnx-cms ~]#


■phpinfoで状況確認

[root@lnx-cms ~]# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
[root@lnx-cms ~]# /etc/init.d/httpd start
[root@lnx-cms ~]# /etc/init.d/mysqld start

## ブラウザにて確認
http://lnx-cms.linuxnow.com/phpinfo.php


■MySQLのrootパスワード設定

[root@lnx-cms ~]# mysqladmin -u root -h localhost password "naisyo"
[root@lnx-cms ~]#


■データベースとユーザの作成

データベース名: wp_db
管理ユーザ名: wp_admin
管理ユーザパスワード: secret
[root@lnx-cms ~]# mysql -u root -pnaisyo
(中略)
mysql> create database wp_db;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on wp_db.* to wp_admin@localhost identified by 'secret';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> quit
Bye
[root@lnx-cms ~]#


■自動起動設定

[root@lnx-cms ~]# chkconfig httpd on; chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@lnx-cms ~]# chkconfig mysqld on; chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@lnx-cms ~]#


■WordPressインストーラ取得

[root@lnx-cms ~]# cd /usr/local/src/
[root@lnx-cms src]# wget http://ja.wordpress.org/latest-ja.tar.gz
--2014-05-05 22:41:13--  http://ja.wordpress.org/latest-ja.tar.gz
(中略)
2014-05-05 22:41:18 (1.37 MB/s) - ‘latest-ja.tar.gz’ saved [6250676/6250676]

[root@lnx-cms src]# ll
total 6108
-rw-r--r-- 1 root root 6250676 Apr 17 17:26 latest-ja.tar.gz
[root@lnx-cms src]#


■WordPressの配置

[root@lnx-cms src]# tar -zxf latest-ja.tar.gz -C /var/www/html/
[root@lnx-cms src]# ll /var/www/html/wordpress/
total 192
-rw-r--r--  1 nobody 65534   418 Sep 25  2013 index.php
-rw-r--r--  1 nobody 65534 19930 Apr 10 08:50 license.txt
-rw-r--r--  1 nobody 65534 10163 Apr 17 11:58 readme.html
-rw-r--r--  1 nobody 65534  3293 Apr 17 11:58 readme-ja.html
-rw-r--r--  1 nobody 65534  4896 Dec 25 03:57 wp-activate.php
drwxr-xr-x  9 nobody 65534  4096 Apr 17 11:58 wp-admin
-rw-r--r--  1 nobody 65534   271 Jan  9  2012 wp-blog-header.php
-rw-r--r--  1 nobody 65534  4818 Feb 19 06:45 wp-comments-post.php
-rw-r--r--  1 root   root   4230 May  5 23:26 wp-config.php
-rw-r--r--  1 nobody 65534  4255 Apr 17 11:58 wp-config-sample.php
drwxr-xr-x  5 nobody 65534  4096 Apr 17 11:58 wp-content
-rw-r--r--  1 nobody 65534  2932 Sep 25  2013 wp-cron.php
drwxr-xr-x 12 nobody 65534  4096 Apr 17 11:58 wp-includes
-rw-r--r--  1 nobody 65534  2380 Oct 25  2013 wp-links-opml.php
-rw-r--r--  1 nobody 65534  2359 Oct 25  2013 wp-load.php
-rw-r--r--  1 nobody 65534 32671 Apr 14 01:06 wp-login.php
-rw-r--r--  1 nobody 65534  8235 Nov 13 20:58 wp-mail.php
-rw-r--r--  1 nobody 65534 11070 Apr  8 05:15 wp-settings.php
-rw-r--r--  1 nobody 65534 25665 Nov 13 12:23 wp-signup.php
-rw-r--r--  1 nobody 65534  4026 Oct 25  2013 wp-trackback.php
-rw-r--r--  1 nobody 65534  3032 Feb 10 05:39 xmlrpc.php
[root@lnx-cms src]#


■wp-config.phpの設定

先ほど作成したデータベース名、ユーザー名、パスワードを設定します。
[root@lnx-cms src]# cd /var/www/html/wordpress/
[root@lnx-cms wordpress]# cp wp-config-sample.php wp-config.php
[root@lnx-cms wordpress]# vi wp-config.php
[root@lnx-cms wordpress]# grep -A 12 "MySQL 設定" wp-config.php
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wp_db');

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

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

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

[root@lnx-cms wordpress]#

## ファイル所有者変更
[root@lnx-cms wordpress]# chown -R apache: /var/www/html/wordpress


■WordPressの初期設定

http://lnx-cms.linuxnow.com/wordpress/ (←実在はしませんのであしからず。)

画面の入力項目に従って進みます。

ダッシュボード画面を表示するところまでできました。今回の作業は以上で終了です。
次回は、 パーマリンク設定をデフォルト以外に設定しても404エラーを出さない方法を記載したいと思います。


こちらの情報が何かのお役に立てましたら幸いです。ちょこっと右サイドも見ていただければ幸いです。m(_ _)m

2014年5月2日金曜日

マルチバイト(日本語文字)ファイル名の検索コマンド

特定のディレクトリにマルチバイト(日本語文字)ファイル名が存在していないかどうか調査する方法です。
Webサーバのドキュメントルート以下にこのようなファイルが存在することは望ましくないので探し出したり
する時に使えそうなコマンド(小技)です。ついでに削除する手順も記載します。

OS: CentOS 6.5 (64-bit)


■状況確認

[root@ty-web02 ~]# find /var/www/html/ -type f | wc -l
6009
[root@ty-web02 ~]# find /var/www/html/ -type f | head
/var/www/html/phpinfo.php
/var/www/html/401.html
/var/www/html/404.html
/var/www/html/index.html
/var/www/html/common/head_foot/header.html
/var/www/html/common/head_foot/head_foot.css
/var/www/html/common/head_foot/footer.html
/var/www/html/common/_てすと.css
/var/www/html/common/import.css
/var/www/html/common/top.css
[root@ty-web02 ~]#
いや~な予感・・・。


■マルチバイトファイル名の存在チェック

環境変数を一時的に変更して、下記コマンドを実行。
[root@ty-web02 ~]# LANG=C
[root@ty-web02 ~]# find /var/www/html/ | grep -v '^[[:cntrl:][:print:]]*$'
/var/www/html/common/_てすと.css
/var/www/html/common/一時保存
/var/www/html/common/一時保存/get_adobereader.html
/var/www/html/common/一時保存/copyright.html
/var/www/html/img/menu/いつか消す.gif
/var/www/html/img/top/いずれ消す.png
/var/www/html/img/h2/バックアップ
/var/www/html/img/h2/バックアップ/products02.png
/var/www/html/img/h2/バックアップ/products01.png
[root@ty-web02 ~]#
マルチバイトファイル名(ディレクトリ名も)残さない約束だったじゃない・・・。


■ドキュメントルートから該当ファイル(ディレクトリ)を削除

ディレクトリから先に削除します。
もう一度マルチバイトファイル名が残っていないかを確認後、環境変数を戻します。
[root@ty-web02 ~]# find /var/www/html/ -type d | grep -v '^[[:cntrl:][:print:]]*$' | xargs rm -rf
[root@ty-web02 ~]# find /var/www/html/ -type f | grep -v '^[[:cntrl:][:print:]]*$' | xargs rm -rf
[root@ty-web02 ~]# find /var/www/html/ | grep -v '^[[:cntrl:][:print:]]*$'
[root@ty-web02 ~]#
[root@ty-web02 ~]# LANG=ja_JP.UTF-8


以上です。こちらの情報が何かのお役に立てましたら幸いです。