Author Archives: webmaster - Page 2

PHPのインストールと初期設定

CentOS-6を利用したPHPのインストールと初期設定です。

PHPは、CentOS-6のPHP-5.3.3を利用しています。

 

 

インストール

PHPをyumからインストールします。

yum install php php-mbstring

 


初期設定

yumからPHPをインストールした場合には、デフォルトの初期設定が既にされています。

PHPの設定は/etc/php.iniに、Apacheの設定は/etc/httpd/conf.d/php.confになります。

 

動作確認

PHPをインストールしたら、デフォルトの設定ファイルでPHPが動作しているか確認してみましょう。

確認用ファイルinfo.phpを、Apacheのドキュメントルートに以下の内容で配置します。

<?php
phpinfo();
?>

ファイルの配置が終わったら、ブラウザからアクセスしてみましょう。PHPの設定情報が表示されるはずです。

 

日本語環境用の設定

日本語環境で利用するにあたり必要な基本設定とmbstringの設定を行います。

設定は/etc/php.iniで行います。設定項目と内容を以下に示します。

; PHP's default character set is set to empty.
; http://www.php.net/manual/en/ini.core.php#ini.default-charset
default_charset = "UTF-8"

date.timezone = "Asia/Tokyo"

[mbstring]
; language for internal character representation.
; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.language
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_detection = Off
mbstring.http_output_conv_mimetype=

default_charset

デフォルトの文字コードを指定します。ここではUTF-8を指定します。

date.timezone

タイムゾーンの設定です。ここでは、日本の標準時間を利用するように指定します。

mbstring.language

mbstringで利用するLanguageを指定します。日本語環境で利用しますので、Japaneseを指定します。

mbstring.internal_encoding

マルチバイト文字列関数(mbstring)のデフォルトエンコードを指定します。

mbstring.http_input & mbstring.http_output & mbstring.encoding_translation

HTTP通信の時のインプットとアウトプットの文字コード変換の指定です。自動で変換の場合トラブルになることがあるので、今回はpassを指定し自動変換もoffとします。

mbstring.detect_order

文字コード自動判別に優先する文字コードを指定します。autoでもかまいませんしが、以下のように指定することもできます。今回はautoに指定します。

mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

mbstring.substitute_character

変換に失敗した場合に表示する文字を指定します。今回は文字を出力しないnoneを指定します。

mbstring.func_overload

説明が長引くので省きますが、今回は0を指定します。

mbstring.strict_detection

文字コードの自動判別を厳密に行うか設定します。今回はoffに指定します。

mbstring.http_output_conv_mimetype

ここでは空白のままにしておきます。

ここまで設定できたらApacheを再起動して設定を読み込ませ、先ほど作成したinfo.phpにアクセスし設定内容を確認してください。

WordPressのインストールと初期設定

CentOS-6にWordPressをインストールし設定します。

WordPressはデフォルトで1つのブログが作成/利用できるようになっていますが、ここでは複数のブログを作成/利用する方法についても記載します。(マルチユーザー or マルチドメイン or マルチサイト)

 

MySQLとPHPのインストールと設定

WordPressを利用するには、MySQLとPHPが必要ですので、まずはこれをインストール、設定します。

MySQLのインストールと初期設定は、こちらをご覧ください。

MySQLの基本操作は、こちらをご覧ください。
記載します。

PHPのインストールと設定は、こちらをご覧ください。

また、PHPのMySQL用パッケージも追加でインストールしておきます。

yum install php-mysql php-gd

 

 

データベースの作成

WordPressで利用するデータベースを作成します。

MySQLにrootでログインし、以下のコマンドでデータベースの作成とデータベースユーザを作成します。

MySQLの基本操作については、こちらをご覧ください。

 

MySQLにログイン

mysql -u root -p パスワード

 

データベースの作成

 mysql> create database wordpress character set utf8 collate utf8_bin; 
Query OK, 1 row affected (0.00 sec)

 

データベースの確認

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| wordpress          |
+--------------------+

 

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

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

 

 

WordPressのインストール

入手

WordPress 日本語ローカルサイトからWordPress日本語版をダウンロードします。

展開

WordPressをApacheの公開ディレクトリに展開します。今回は、/var/www/html/以下に行いました。

tar zxvf wordpress-3.3.2-ja.tar.gz -C /var/www/html/

 

設定ファイルの準備

WordPressの設定は、wp-config.phpで行います。まずはこのファイルを準備します。

/var/www/html/wordpress/以下にあるサンプルファイルwp-config-sample.phpwp-conifg.phpとしてコピーします。

cp wp-config-sample.php wp-config.php

 

設定

wp-config.phpファイルに先ほど作成したデータベースの接続情報を設定します。

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'wordpress');

 

インストール

ブラウザから以下のURLにアクセスしてWordPressのインストールを行います。

http://localhost/wordpress/wp-admin/install.php

インストールが正常に終了すれば、ログインページが表示されるはずです。

ユーザ名 admin と、インストール中に設定したパスワードを使ってログインし管理画面を表示してください。

 

 

WordPressのマルチユーザー化

WordPressで複数のブログを作成できるように設定してす。(マルチユーザー or マルチドメイン or マルチサイト)

 

wp-config.phpの設定

wp-config.phpに以下の行を追加します。

 *
 * @package WordPress
 */
define('WP_ALLOW_MULTISITE', true);

 

プラグインの無効化

WordPressの管理画面を開き、[サイドバー]-[プラグン]-[プラグイン]から利用しているプラグインをすべて停止します。

 

WordPress サイトのネットワークを作成

WordPressの管理画面を開き、[サイドバー]-[ツール]-[ネットワーク]を選択します。

ネットワークのタイトル(ブログのタイトル)と管理者メールアドレスを入力し、インストールボタンを押下します。

マルチユーザーで利用するために必要な追加設定が表示されてるので順次作業します。

1.wp-config.phpと.htaccessのバックアップ

既存のwp-config.php.htaccessのバックアップを作成します。

cp wp-config.php wp-config.php.back 
cp .htaccess back.htaccess

 

2./var/www/html/wordpress/wp-content の中に blogs.dir ディレクトリを作成します。

mkdir wp-content/blogs.dir 
chown -R apache.apache wp-content/blogs.dir

 

3.wp-config.phpの設定

wp-config.phpに表示された編集内容を設定します。

define('WP_DEBUG', false);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/wordpress/';
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/wordpress/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

 

4..htaccess ファイルに次を追加します。

.htaccessに表示された編集内容を設定します。

RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

以上の設定が終了したら、ログインしなおします。

 

マルチユーザー環境の設定

ログインし直すと、上部メニューの[参加サイト]に[サイトネットワーク管理者]が追加されます。

[参加サイト]-[サイトネットワーク管理者]-[ダッシュボード]を選択。
再度メニューの[設定]-[ネットワークの設定]でネットワーク全体設定を表示し、[初期言語設定]で、Japaneseに設定を変更します。

以上でマルチユーザー環境のインストールと設定は終了です。

特権管理者で、ユーザーやブログの追加を行うことができます。

 

WordPressのPlugin

WordPressのPluginを幾つかご紹介。

Akismet – スパム防止用のPlugin。デフォルトでインストールされているので設定を。

All in One SEO Pack – SEO対策用プラグイン。

Broken Link Checker – リンクエラーや画像リンクエラーを検出。

Category Order – カテゴリーごとの並べ替えを行うためのプラグイン。

Contact Form 7 – お問い合わせ用のフォームなどを作成する。

Duplicate Post – 既存投稿の複製を作成する。

HTTP 404 Email Notifier – 404エラーが出た時にメールでお知らせ。

Ktai Style – ガラ携向け表示用プラグイン。

Popular Posts – 人気記事をピックアップしてリンクを表示する。

PS Auto Sitemap – サイトマップを自動生成する。

Revision Control – リビジョン機能を追加するプラグイン。

RSS Footer – RSS Feed内に、自分のサイトへのリンクを挿入する。

SEO Slugs – 検索エンジン向けに不要な文字を除外する。SEO対策用。

Similar Posts – 関連記事のリンクを自動挿入する。

Syntax Highlighter for WordPress – ソースコードをハイライト表示用。

Ultimate TinyMCE – ビジュアルエディタの拡張。表などを利用する場合に。

Viper’s Video Quicktags – youtubeなど動画サイトのリンク用。

WassUp – アクセスログ解析プラグイン。解析結果はそこそこ。

WP-Syntax – ソースコードのハイライト表示。

WP To Top – ページの「先頭に戻る」ボタンを表示

WPtouch – スマートフォン向け表示用プラグイン。

AwstatsによるSMTPログ解析

アクセスログ解析ソフトのAwstatsでPostfixなどのSMTPログの解析方法について解説します。

なお、環境はCentOS-6を利用し、AwstatsはEPELリポジトリを利用します。

 

Awstatsのインストール

CentOS-6では提供されていないため、ここでは、EPELリポジトリを利用します。


EPELリポジトリの追加

EPELリポジトリを追加は、以下のコマンド行います。

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm


以下のコマンドで読み込みます。

yum update

 

インストール

awstatsをインストールします。

yum install awstats

 

 

Awstats設定の準備

Awstatsをインストールすると/etc/awstats/以下に設定ファイルが作成されます。

この中の、awstats.model.confを流用して、自身で必要な設定ファイルを作成します。

今回は、unixlife.jpドメインのSMTPログの解析を行う設定をして行きます。

まず、awstats.model.confをコピーしてawstats.smtp.confを作成します。

cp awstats.model.conf awstats.smtp.conf

コピーが終わったら、awstats.smtp.confを編集していきます。

 

 

Awstats定義ファイルの設定

awstats.smtp.confを作成しましたので、この内容を編集して行きます。

ここでは、SMTP用に必要と思われる箇所のみ列挙します。

awstats.smtp.conf

ログファイルフォーマットの指定
LogFile="/var/log/maillog.analysis" <---コンバート後のmaillog

LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"

SiteDomain="unixlife.jp" <---解析するメールドメインを指定
HostAliases="unixlife.jp" <---解析するメールドメインを指定
HostAliases="unixlife.jp examples.com" <---複数ドメインの解析を行う場合

DNSLookup=1

AllowFullYearView=3 <---年間レポートの生成

SkipDNSLookupFor="REGEX[^192.168.]"

無効にする設定
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForSearchEnginesDetection=0
LevelForKeywordsDetection=0
LevelForFileTypesDetection=0
LevelForWormsDetection=0

表示を変更する設定
ShowSummary=HB
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowWormsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowOSStats=0
ShowBrowsersStats=0
ShowScreenSizeStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1
ShowClusterStats=0

 

 

解析用ログファイルの作成と解析

CentOSでは、SMTPのログはSYSLOG経由で/var/log/maillogに出力されますのでこれを利用しますが、Awstatsでmaillogを解析するには、このmaillogをmaillogconvert.plを利用しコンバートする必要があります。

また、このログはrotatelogsの設定で毎日や毎週の単位でローテーションされています。また、デフォルトの設定では、cronによって4時頃にローテーションが実施されます。

ここでは、rotatelogsの設定で、毎日、4時02分に圧縮なしでローテーションしているもとします。

このログファイルを1時間毎にCronを利用して解析するシェルスクリプトを作成します。

*rotatelogsの設定については、こちらをご覧ください。

 

シェルスクリプト作成に際して注意点が2点あります。

1.4時に解析する時は、ローテーション後の旧ログファイルを対象にする。

2.オプションで年を指定しますが、年代わりの1月1日解析時には前年を指定する。(実際には常に1日前に年を指定する)

/usr/local/bin/awstats-smtp.shを以下の内容で作成します。

#!/bin/sh

ANALIYSIS_YEAR=`/bin/date -d '1 days ago' +%Y`
NOW_HOUR=`/bin/date +%H`
ANALIYSIS_LOG="/var/log/maillog.analysis"

if [ $NOW_HOUR = 04 ]; then
        MAIL_LOG="/var/log/maillog.1"
else
        MAIL_LOG="/var/log/maillog"
fi

/usr/share/awstats/tools/maillogconvert.pl standard $ANALIYSIS_YEAR < $MAIL_LOG > $ANALIYSIS_LOG

/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=smtp -update

 

 

Apacheの設定

Awstats用のアクセス解析ページは、/var/www/awstats/以下に作成されます。

Awstats用のApacheの設定ファイルは、Awstatsインストール時に、/etc/httpd/conf.d/以下にawstats.confが作成されます。

ここでは、awstats.confでアクセス制限などを行います。

#
# Directives to add to your Apache conf file to allow use of AWStats as a CGI.
# Note that path "/usr/share/awstats/" must reflect your AWStats install path.
#
Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/share/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/share/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from 127.0.0.1 192.168.110.0/24 ローカルアドレスからのみアクセス可能 
</Directory>

# Additional Perl modules
<IfModule mod_env.c>
    SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
</IfModule>

 

これで、Apache側の設定は終了です。Apacheに新しい設定を読み込ませましょう。

/etc/init.d/apache graceful

 

 

cronによる定時解析

Awstatsで定時的にアクセスログ解析を行うには、cronを設定するが良いでしょう。

例えば、awstats.smtp.conf設定ファイルの指定で、1時間毎に解析をする設定をした場合は、先ほど作成したシェルスクリプトを以下のようにcronを設定します。

10  */1  *  *  *  /usr/local/bin/awstats-smtp.sh

これで、1時間毎にログ解析が行われます。

 

 

ログ解析結果ページの閲覧

ログ解析結果のページは以下のURLを指定する事により閲覧可能です。

ここでは、ログ解析サーバのIPアドレスが、192.168.1.1と仮定します。

http://192.168.1.1/awstats/awstats.pl?config=smtp

 

 

 

参考資料:

http://awstats.sourceforge.net/docs/awstats_faq.html#MAIL

satospo – PostfixのログをAWStatsで集計