トップ ライブラリ/Framework/CMS WordPress

WordPress(ワードプレス)―手動インストールやルートディレクトリ設定など

WordPress(ワードプレス)の手動インストール手順やルートディレクトリと表示URLの設定や関連知識についてまとめています。

目次

この記事の目次です。

1. WordPressとは

2. WordPressのインストール

3. WordPressのルートディレクトリ設定

4. インストール時に行っておきたいセキュリティ対策

5. WordPressの移行方法

6. テーマの作成方法とテーマの切り替え方法

もっと知識を広げるための参考

更新履歴

1. WordPressとは

WordPressは、世界でもっとも利用されているPHPベースのCMSの1つです。

参考)ワードプレス

ワードプレスとはホームページを運用するための便利なツールです。初心者向け中心にワードプレスの情報をまとめています。

詳細

補足

2. WordPressのインストール

2. WordPressのインストール(レンタルサーバの場合)

WordPressのインストールサービスが利用できるサービスを選んでボタン操作で行えます。

レンタルサーバを使用したWordPressの解説は以下にUPしています。

WordPressのインストール(VPSや専用サーバの場合)

MySQLを使いますのでMySQLを構築してからWordPressのインストールを行います。

CentOSの場合

WordPress パッケージをダウンロードして、解凍。

http://ja.wordpress.org/から日本語版のWordPressパッケージをダウンロードし、解凍。

MySQLを用意しデータベースとユーザの作成

サーバー上に、WordPress 用のデータベースと、そのデータベースへの全アクセス権・編集権を持つMySQLユーザを作成。

MySQLのインストール(Linux)
# yum -y install mysql-server
# /etc/rc.d/init.d/mysqld start
# mysql -u root
set password for root@localhost=password('<ルートパスワード>');
quit
WordPress 用のデータベースとユーザ作成
# mysql -u root -p
CREATE DATABASE データベース名;
GRANT ALL PRIVILEGES ON データベース名.* TO データベースユーザ名@<ユーザが接続するホスト> IDENTIFIED BY '<パスワード>';
FLUSH PRIVILEGES;

wp-config.php の設定

wp-config-sample.php ファイルの名前を wp-config.php に変更。

テキストエディタで wp-config.php を開き、 wp-config.php ファイルの編集記事の説明に従いデータベース情報と秘密鍵の値を記入。 データベーステーブルの接頭辞も念のため変更しておきます。

MySQLの接続情報変更箇所
/** 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('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');
WordPress FTPなしでプラグインダウンロードできる設定

SSHのみでFTPが利用できない場合など、FTPなしでプラグインがダウンロードできるように以下を最下部あたりに追加します。

/** WordPress FTPなしでプラグインダウンロードできる設定 */
define('FS_METHOD', 'direct');
データベーステーブルの接頭辞の変更箇所
$table_prefix  = 'wp_';

ファイルをアップロード

サーバー上の希望の場所に、WordPress ファイルを設置。

インストールスクリプトの実行

ブラウザで wp-admin/install.php へアクセスし、インストールスクリプトを実行。 ユーザー名にadminやサイト名など推測されやすいものは使わないように注意します。

3. WordPressのルートディレクトリ設定

WordPressのルートディレクトリ設定について補足いたします。

WordPressのルートディレクトリとは?

WordPressのルートディレクトリとは、WordPressのホームディレクトリのことです。

ドメインルートディレクトリとルートディレクトリを合わせるのがよいか?

ドメインルートディレクトリの下層にwordpressやblog等のディレクトリにおいて、WordPressのルートディレクトリをドメインルートにしなくても URL上はドメインルートから始まるURLに設定できます。

下層にルートディレクトリにおいてURLのドメインルートで始まるようにする方法

たとえば、ドメインルートディレクトリに「wordpress」というディレクトリ名でWordPressのルートディレクトリを配置した場合の下層にルートディレクトリにおいてURLのドメインルートで始まるようにする方法を解説します。

ドメインルートディレクトリにWordPressを読み込むindex.phpを配置

ドメインルートディレクトリにWordPressを読み込むindex.phpを配置します。

配置構成

以下の構成です。

<ドメインルートディレクトリ>
wordpress
index.php
ドメインルートディレクトリに置くindex.phpのコード

ドメインルートディレクトリに置くindex.phpのコードは以下です。

define( 'WP_USE_THEMES', true );
require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
WordPressの管理画面で表示URLの変更

index.phpを配置したら、WordPressの管理画面で表示URLを変更します。

WordPressの管理画面で表示URL設定の例

例では、ドメインではなく「192.168.56.102」というIPアドレスを使用しています。この部分をドメイン名と置き換えてください。 httpではなく、httpsの場合はその部分も置き換えます。

WordPressのアドレス(URL)はそのまま「http://192.168.56.102/wordpress」になります。

サイトアドレス(URL)を「http://192.168.56.102」にすることでURLの表示が変わります。

上記のように設定するだけで、以下のように「http://192.168.56.102」でWordPressコンテンツが表示されるようになります。

下層にルートディレクトリにおいてURLのドメインルートで表示したWordPressの例

4. インストール時に行っておきたいセキュリティ対策

後で行うとどこに影響するか確認が大変!WordPressインストール時など、はじめに行っておきたい! セキュリティ対策についてまとめてみました。

使わないプラグイン、テーマの削除

はじめに消さないと怖くて誰も消さなくなります。 使わないプラグイン、テーマははじめに消したいです。

「WordPress本体やテーマ・プラグインは、最新版にしておく

これも更新の影響があるので後でUPDATEはしにくくなってきます。

基本的なHTTPヘッダーの設定

これもテスト前に入れないとです。 .htaccessに記述します。この設定自体行っていないサイト結構あります。

<ifModule mod_headers.c>
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options DENY
Header always set X-Download-Options: noopen
Header always set X-Powered-By: ""
</ifModule>

<IfModule mod_php5.c>
php_flag session.cookie_httponly on
php_flag session.cookie_secure On
</IfModule>

「wp-config.php」にアクセスさせない設定

.htaccessに記述します。

<Files wp-config.php>
order allow,deny
deny from all
</Files>

RSSを使用しない場合は「xmlrpc.php」もアクセスさせない設定

.htaccessに記述します。

<Files xmlrpc.php>
 Order Deny,Allow
 Deny from all
</Files>

「wp-config.php」のアクセス権限を「400」に設定、その他

サーバ―内の別のアカウントのユーザにDBの接続先が見られないようにしておきたいです。

その他、ログイン画面のパス変更、ログイン試行回数の設定を行っておきたいです。

出来れば、サイト構築中は全体にBASIC認証を設定とIP制限を設定しておきたいです。 そして、運用時はwp-login.phpに制限しておきたいです。

パスワードファイル作成は以下で行えます。

htpasswd -c .htpassword <ユーザ名>

.htaccessに以下の設定を追加します。

テスト時は、.htaccessに以下を記述。

#ip制限する場合
order deny,allow
deny from all
allow from <許可するIPアドレス>
<Files wp-login.php>
#Basic認証の場合
AuthUserFile <パス>/.htpassword
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>

運用時はwp-login.php、.htaccessに以下を記述。

<Files wp-login.php>
#ip制限する場合
order deny,allow
deny from all
allow from <許可するIPアドレス>
#Basic認証の場合
AuthUserFile <パス>/.htpassword
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>

バージョン情報などの情報を出さないようにテーマのfunction.phpに以下を記述

remove_action('wp_head', 'wp_generator');
foreach ( array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head',
'app_head' ) as $action ) {
        remove_action( $action, 'the_generator' );
}

function remove_cssjs_ver( $src ) {
        if( !is_user_logged_in() && strpos( $src, '?ver=' ) )
                $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );
add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );

function knockout_author_query() {
    // disable author rewrite rule
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
    $wp_rewrite->author_base = '';
    $wp_rewrite->author_structure = '/';
    // for author query request
    if (isset($_REQUEST['author']) && !empty($_REQUEST['author'])) {
        $user_info = get_userdata(intval($_REQUEST['author']));
        if ($user_info && array_key_exists('administrator', $user_info->caps) && in_array('administrator', $user_info->roles)
) {
            wp_redirect(home_url());
            exit;
        }
    }
}
add_action('init', 'knockout_author_query');

管理画面のログインユーザIDがわからないように表示名を変更しておく

管理画面のプロフィールのところで表示名はユーザIDにしないように設定しておきたいです。

5. WordPressの移行方法

WordPressの移行方法について見ていきます。

WordPress関連のファイル一式コピー&移設先に配置

①以降前の環境
tar zcvf wpfile.tar.gz <WordPress関連ファイル配置ディレクトリのルートパス>

②移設先に配置
cd <配置先>
tar zxvf wpfile.tar.gz

MySQLのダンプ採取と以降先にリストア

①移行前のDBダンプ
$ mysqldump -h DBサーバホスト -u DBユーザ -p hostDB > ホスト名.dump
Enter password:

②以降ものとDBにリストア
$ mysql -h DBサーバホスト -u DBユーザ -p dev_hostDB < ホスト名.dump
Enter password:

移行ツールで移行

ダウンロード

https://interconnectit.com/products/search-and-replace-for-wordpress- databases/より、Search-Replace-DB-master.zipをダウンロードします。

配置

WordPress配置先の上位パスに解凍してできたSearch-Replace-DB-masterを 配置します。

実施

後始末

必ず移行ツールは削除します。DBの接続情報が見れたり、残ると非常に危険です。

$rm -Rf Search-Replace-DB-master

6. テーマの作成方法とテーマの切り替え方法

テーマはwp-content/themesの下におかれます。 インストール直後はデフォルトのテーマが有効になって使用されます。

一番簡単なテーマの作成方法とデフォルトのテーマから作成したテーマに切り替える方法を見ていきます。

一番簡単なテーマの作成方法

以下は一番簡単なテーマの作成方法です。

構成

構成は以下です。テーマディレクトリにmy-themeディレクトリを作成して、index.phpとstyle.cssを置くだけの構成です。

<WordPressルートディレクトリ>/wp-content/themes/my-theme
index.php
style.css

index.php

簡単なテーマのデモが目的ですので、テキストだけ表示するものにします。 ここではindex.phpに以下だけ記述することにします。

テーマの表示です。

style.css

style.cssの例です。

/*
Theme Name: 一番簡単なテーマ
Author: ZealSeeds
Author URI: https://www.zealseeds.com/
Description: 一番簡単なテーマです。
Version: 1.0
License: GUN General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

表示

作成したテーマを有効にすると以下のように表示されます。

一番簡単なテーマの表示

デフォルトのテーマから作成したテーマに切り替える方法

作成したテーマを切り替えるにはダッシュボードにログインして、「外観」からテーマの「有効化」ボタンを押下することで切り替えられます。

デフォルトのテーマから作成したテーマに切り替える方法

知識を深めるための参考

イベント駆動アーキテクチャ

WordPressは、イベント駆動アーキテクチャを採用したシステムです。以下の書籍でイベント駆動アーキテクチャについて紹介していました! 興味がある方は、参考にしてください。

更新履歴

戻る

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Eclipse /gcc /gdb /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
jQuery /Lucene /MyBatis /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

3.90.12.112

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク