目次

この記事の目次です。

1. ロリポップ、エックスサーバーに近い環境について
2. CentOS7のダウンロード
3. VirtualBoxにインストールする例
4. サーバ利用時の基本的なセットアップの例
5. Apache(Apache 2.4)のインストール
6. PHP(PHP7)のインストール
7. MySQLのインストール
8. SSL対応のためのソフトウェアインストール
9. レンタルサーバ環境と合わせたパス等の設定
10. ドメイン毎の設定
11. WordPressを新規構築する場合
12. WordPressの移行する場合
13. 実メモリの不足を補うスワップの拡張方法

更新履歴

1. ロリポップ、エックスサーバーに近い環境について

ロリポップのサーバではOSにLinuxの一つのCentOSを使用していると記載されています。 また、エックスサーバーは公表はしていませんが、操作した感じからCentOSもしくはCentOSに近い環境を使用していました。

実際には、バージョンを合わせたり、インフラ構成や各ソフトウェアの設定などいろいろ合わせる必要がありますが、 CentOSのテスト環境を構築することで、より実際の環境に近いテストサイトが構築できると思います。

CentOSとは

CentOSとは、CentOSとは、無料で利用できるLinuxです。 商用でメジャーなLinuxであるRedHat Enterprise Linuxと同じソースコードを元にまとめられています。 無料で利用できるだけでなく商用でメジャーなRedHat互換で、自宅サーバや開発用だけではなく、商用環境としても利用されています。

lolipop!(ロリポップ)

lolipop!(ロリポップ)は、利用者が多い共用レンタルサーバーの一つです。 管理画面がやさしく初めての方におすすめです。 lolipop!(ロリポップ)の利用方法をテーマに、無料独自SSL、FTPアクセス制限、SSHの設定などの情報をまとめています。

詳細

2. CentOS7のダウンロード

この記事では、CentOS7の構築手順を紹介していきます。

CentOS7は、http://isoredirect.centos.org/centos/7/isos/x86_64/より、例えばDVDのISOイメージを選んでミラーサイトからダウンロードが行えます。 ミラーサイトを選んで、例えば以下のファイルをダウンロードします。

http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.8.2003/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso

CentOS7ダウンロードサイトのイメージ

ダウンロードできない場合は別のミラーサイトからダウンロードしてください。

3. VirtualBoxにインストールする例

CentOSのインストール例として、Oracle VM VirtualBoxにCentOS7をインストールします。

VirtualBoxとは

VirtualBoxとは、Oracle社のクロスプラットフォームな仮想化ソフトウェアです。 OracleのHPより、Windows、Linux、Mac OS X、Solaris用の媒体が入手できます。

VirtualBoxのダウンロード

以下のページよりダウンロードできます。

https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html

VirtualBoxダウンロードサイトのイメージ

VirtualBoxのインストール

ダウンロードしたインストーラを起動して、基本的にすべてNextまたはYesを選択してインストールしても大丈夫だと思います。 もしインストール先などカスタマイズしたい場合は適宜変更してください。

VirtualBoxのインストーラ起動時の画面イメージ

VirturlBoxのインストーラを起動したらNextを選択します。

VirtualBoxのインストーラ実行時(Custom Setup1)の画面イメージ

Custom Setup画面もNextを選択します。

VirtualBoxのインストーラ実行時(Custom Setup2)の画面イメージ

次のCustom Setup画面もNextを選択します。

VirtualBoxのインストーラ実行時(Warning: Network Interface)の画面イメージ

途中で「Warning Network Interfaces」とエラーのようなメッセージが表示されます。 インストール中、一時的にネットワークが切断されても問題ないかを確認するメッセージです。 問題が発生したわけではなく、確認ダイアログです。 Yesを選択します。

VirtualBoxのインストーラ実行時(Ready to Install)の画面イメージ

Installを選択します。

VirtualBoxのインストーラ実行時(このデバイス ソフトウェアをインストールしますか?)の画面イメージ

加えて、このデバイス ソフトウェアをインストールしますか?と聞かれます。
「"Oracle Corporation" からのソフトウェアを常に信頼する」にチェックを入れて、インストールしておきます。

VirtualBoxのインストーラ完了の画面イメージ

Finishを選択します。

CentOS7用の仮想マシンの作成

CentOS7用の仮想マシンを作成します。

仮想マシンダイアログを開く

VirtualBox (Oracle VM VirtualBox マネージャー) を起動し、左上の「新規(N)」をクリックすると「仮想マシンの作成」ダイアログが開きます。

新規仮想マシン作成時の操作1

名前とオペレーティングシステム入力

任意の 名前 を入力し、タイプ は Linux 、 バージョン は Red Hat (64bit) を選択して「次へ」をクリックします。

新規仮想マシン作成時のOS種別選択

なお、BIOSの仮想化機能が無効になっている場合、Red Hat (64bit)と64bitの選択項目が表示されません。

補足)BIOSの仮想化機能の有効化

BIOSはPC起動時にF2やF5、F10キーを連打すると表示されます。 BIOSの設定変更はメーカにより異なるので使用しているPCのマニュアルを参照する必要があります。

BIOSの仮想化機能を有効にする例

メモリーサイズの入力

メモリ (RAM) は最低でも512MiB必要です。テストサイト環境ですた、メモリリソースを多く使うWordPressですので少々大きめの2048MBにしました。

新規仮想マシン作成時のメモリ選択

ハードディスク

「仮想ハードディスクを作成する」を選択して「作成」をクリックします。

新規仮想マシン作成時の仮想ハードディスクを作成する操作

ハードドライブの入力

仮想ハードドライブを作成する を選択して「作成」すると、「仮想ハードドライブの作成」ダイアログが開きます。

ハードドライブのファイルタイプ は、VDI (VirtualBox Disk Image) を選択したまま「次へ」

新規仮想マシン作成時のハードドライブのファイルタイプを選択する操作

物理ハードドライブにあるストレージ は、固定サイズ を選択して「次へ」

新規仮想マシン作成時の物理ハードドライブにあるストレージを選択する操作

ファイルの場所とサイズ では、CentOSをインストールする仮想ドライブの容量を指定して、仮想ドライブと仮想マシンを「作成」します。今回は20GBにしました。

新規仮想マシン作成時のファイルの場所とサイズを選択する操作

作成中のダイアログが表示されます。

新規仮想マシン作成中ダイアログ

完了すると管理画面のメニューに作成した仮想マシンが表示されます。

新規仮想マシン作成完了

CentOS7のインストール

仮想マシンにCentOS7をインストールします。

はじめに

VirtualBoxの管理側の実環境をホストOS、VM側をゲストOSといいます。 ゲストOSの画面にマウスのカーソルをあてるとゲストOSの操作が行えます。 VM側のゲストOSから抜けて管理側のホストOSに戻る場合は、キーボード右側にあるCtrlキーを押すと抜けられます。

仮想マシンの起動

VirtualBox マネージャーにて、作成した仮想マシンが選択された状態で、左上の 起動(T) をクリックします。

仮想マシンの起動

起動ハードディスクを選択

「起動ハードディスクを選択」ダイアログが表示されるので、 プルダウンメニュー右の 仮想光学ディスクファイルの選択… をクリックします。

起動ハードディスクを選択

「光学ディスク選択」ダイアログが表示されるので、追加(A)より、CentOSのDVDメディアのISOイメージを選択して「起動」します。

CentOSのDVDメディアのISOイメージを選択

CentOS7のインストーラー起動

CentOS7のインストーラーが起動するので、Install CentOS7を選んで、Enterキーを押します。

CentOS7のインストーラー起動

インストール時に使用する言語

日本語(Japanese)を選択し、続行をクリックします。

日本語(Japanese)を選択

インストールの概要

Webサーバーを構築するときなどは、シンプルなものから必要なパッケージを追加していく方がいいと思います。 ただ感染駆除の場合などサンドボックスとして、CentOS7の中でブラウザの確認も行いたいので、サーバー(GUI使用) を選択していきます。

インストールの概要
ソフトウェアの選択

「ソフトウェアの選択」を選択し、左の ベース環境 から サーバー(GUI使用) を選択して「完了」します。

インストール先

「インストール先」を選択し、何もせずに「完了」します。

ネットワークとホスト名

「ネットワークとホスト名」を選択し、「ネットワークとホスト名」設定画面の右上にあるスイッチを オン にして「完了」します。

設定したら「インストールの開始」ボタンをクリックします。

ユーザーの設定

管理ユーザ(root)と一般ユーザを作成する場合は一般ユーザのパスワード設定を行います。

ユーザーの設定

インストーラの完了を待つ

しばらく経つとCentOS7のインストールが完了するので、設定画面右下の「再起動」をクリックします。

インストーラの完了を待つ

設定の完了する

再起動後、初期セットアップ画面が表示されます。
「ライセンス情報」を選択し、同意できるなら ライセンス契約に同意します。
にチェックを入れて「完了」し、「設定の完了」をクリックします。

インストーラの完了を待つ

CentOS7のセットアップ

そのまましばらくするとCentOSのセットアップ画面が表示されます。

言語選択

日本語を選んで次へ

キー入力選択

キー入力を選んで次へ

位置情報サービス選択

位置情報サービスはサーバー利用で使わないと思いますのでオフにしておきます。

タイムゾーン選択

タイムゾーンは日本でしたらJSTになります。

オンラインアカウントの接続選択

オンラインアカウントの接続はスキップします。

アカウント作成

CentOS7上のアカウントを作成します。 エックスサーバーなどのレンタルサーバーのアカウントに相当しますので、検証するレンタルサーバのアカウント名を設定してもよいかと思います。 なお、アカウントは後で増やせます。

アカウント作成

パスワードを設定します。

設定完了

アカウントの設定完了です。

4. サーバ利用時の基本的なセットアップの例

CentOS7の設定を行っていきます。

ターミナルを開く

コマンドラインの操作を行いますので、「アプリケーション>システムツール>端末」よりターミナルを開きます。

ターミナルを開く

rootに切り替え

rootユーザにスイッチします。パスワードはCentOS7インストールした際に設定したものです。

$ su

yum-utilsのインストール

OSアップデート後の不要パッケージが掃除できるようyum-utilsをインストールします。

# yum -y install yum-utils

OSアップデート

まずは、OSをアップデートして最新化しておきます。その後再起動出来たら再起動(reboot)しておきます。

# yum -y update

再起動

再起動を行います。

# reboot

不要パッケージの掃除

再起動後に不要なパッケージの掃除しておきます。

# package-cleanup --oldkernels --count=1 -y

VirtualBoxのホストオンリーアダプタの設定

このままではVirtualBoxの画面を使わないとホストOSからゲストOSに接続ができないのでホストオンリーアダプタの設定を追加します。

ホストオンリーアダプタの追加

ゲストOSをシャットダウンして、ホストオンリーアダプタを追加します。

ゲストOSの設定を開く

Oracle VM VirtualBox マネージャーのメニューに表示されるゲストOSを選択して、設定(S)をクリックします。

アダプター2の設定

ネットワーク>アダプター2を選択し、

仮想マシンを起動

アダプター2の設定が行えたら、OKをクリックして、設定ダイアログを閉じます。

その後、ホストOS(PC)を再起動します。

ホストOSの再起動が終わりましたら、VirtualBoxの管理画面を開いて、ゲストOSを起動します。

ホストOSからSSH接続

仮想マシンが起動したら、TeratermやPuttyなどを使用してホストOSから仮想マシンに接続できることを確認します。

5. Apache(Apache 2.4)のインストール

CentOS7にApacheをインストールしていきます。

Apacheのインストール

Apacheをインストールします。rootで作業していきます。

# yum -y install httpd

httpd サービスの自動起動設定

CentOS7を再起動しても自動でApacheが起動されるように設定します。

# systemctl enable httpd

httpd サービスを開始

Apacheを起動します。

# systemctl restart httpd

Firewall穴あけ

外からアクセスできるようにhttpとhttpsのポートを解放します。

# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload

6. PHP(PHP7)のインストール

CentOS7にPHPをインストールしていきます。

EPELリポジトリのインストール

# yum -y install epel-release

Remiリポジトリのインストール

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

PHP7.xのインストール

PHP7のマイナーバージョン別のインストール手順です。

PHP7.0をインストールする場合

# yum remove php* -y
# yum --enablerepo=remi,remi-php70 install php php-devel pcre-devel php-posix php-ssh2 php-mysqlnd php-gd php-xml php-xmlrpc php-mbstring php-mcrypt php-fpm php-opcache php-apcu -y --skip-broken

PHP7.2をインストールする場合

PHP7.2をインストールする場合の例は以下です。

# yum remove php* -y
# yum --enablerepo=remi,remi-php72 install php php-devel pcre-devel php-posix php-ssh2 php-mysqlnd php-gd php-xml php-xmlrpc php-mbstring php-mcrypt php-fpm php-opcache php-apcu -y --skip-broken

PHP7.3をインストールする場合

PHP7.3をインストールする場合の例は以下です。libargon2を先にインストールしておきます。

# yum install --disablerepo=* --enablerepo=epel libargon2
# yum remove php* -y
# yum --enablerepo=remi,remi-php73 install php php-devel pcre-devel php-posix php-ssh2 php-mysqlnd php-gd php-xml php-xmlrpc php-mbstring php-mcrypt php-fpm php-opcache php-apcu -y --skip-broken

確認

PHP7がインストールされているか確認します。

# php -v

php-fpmの自動起動設定

php-fpmの自動起動の設定を行います。

# systemctl enable php-fpm

php-fpmの再起動

php-fpmの再起動を行います。

# systemctl restart php-fpm

php-fpmプロセスの確認

# ps -aef | grep php-fpm

7. MySQLのインストール

CentOS7にMySQLをインストールしていきます。

MariaDBの削除

MariaDBの削除します。

# yum remove mariadb-libs
# rm -rf /var/lib/mysql/

yumリポジトリ追加

mysql公式のリポジトリを追加します。

# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

MySQLインストール

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

# yum -y install mysql-community-server

自動起動設定

自動起動設定を行います。

# systemctl enable mysqld.service
MySQL起動

MySQLを起動します。

# systemctl start mysqld.service
初期のrootパスワード確認

初期のrootパスワードは/var/log/mysqld.logに出力されます。

[Note] A temporary password is generated for root@localhost: <初期のrootパスワードの出力>
基本的なセキュリティ設定

mysql_secure_installationを使用して基本的なセキュリティ設定を行います。

# mysql_secure_installation

8. SSL対応のためのソフトウェアインストール

SSL対応のためのソフトウェアインストールします。 インターネットに公開されないテストサイトのため、ブラウザにエラーが表示されますが、httpsのURLに対応できるようにしていきます。

# yum -y install mod_ssl

9. レンタルサーバ環境と合わせたパス等の設定

エックスサーバーやロリポップなどレンタルサーバーに合わせたディレクトリパスでテストサイトが表示できるようにしていきます。

OSのユーザ/グループ作成

OSアカウントを作成します。

# useradd -g apache -m <追加OSアカウント名>
# passwd <追加OSアカウント名>
# chmod 750 /home/<OSアカウント名>

PHP用のディレクトリ作成

PHP用のディレクトリを作成します。

su <OSアカウント名>
mkdir -p /home/<OSアカウント名>/log/php-fpm
mkdir -p /home/<OSアカウント名>/lib/php/session
mkdir -p /home/<OSアカウント名>/tmp

Apacheの設定

/etc/httpd/conf/httpd.confの最下部あたりに以下を追記します。

IncludeOptional conf.site/*.conf

上記で個別サイトの設定を別ファイルで定義できるようにします。

PHP-FPMの設定

次にサイト用のPHPの設定を行います。 デフォルトの/etc/php-fpm.d/www.confをコピーして/etc/php-fpm.d/<追加OSアカウント名>.confを作成し、ポート番号9001、OSアカウント名(<追加OSアカウント名>)でPHPを実行する例です。

[example]
:
user = <追加OSアカウント名>
:
group = apache
:
listen = 127.0.0.1:9001
:
php_admin_value[error_log] = /home/<追加OSアカウント名>/log/php-fpm/www-error.log
:
php_value[session.save_path]    = /home/<追加OSアカウント名>/lib/php/session
:

10. ドメイン毎の設定

レンタルサーバーのようにアカウントにぶら下がるイメージでドメインの設定を行っていきます。

ホームページ公開領域の設定

サイトのWeb公開領域を作成します。 ホームディレクトリからアクセスしやすいようにシンボリックリンクも作っておきます。 以下ではエックスサーバーのパス構成を例に設定していきます。

su <追加OSアカウント名>
mkdir -p /home/<追加OSアカウント名>/<ドメイン名>
mkdir -p /home/<追加OSアカウント名>/<ドメイン名>/public_html

自己証明のSSLサーバ証明書の設定

httpsで表示できるように自己証明のSSLサーバ証明書を作成していきます。

秘密鍵の作成

秘密鍵を作成します。

# mkdir /etc/httpd/conf.site
# mkdir /etc/httpd/conf.site/ssl
# openssl genrsa 2024 > /etc/httpd/conf.site/ssl/<ドメイン名>.key

CSR作成

CSRを作成します。ドメイン名を合わせることだけ意識すれば後は適当で大丈夫です。

# openssl req -new -key /etc/httpd/conf.site/ssl/<ドメイン名>.key > /etc/httpd/conf.site/ssl/<ドメイン名>.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Chuo-Ku
Organization Name (eg, company) [Default Company Ltd]:test
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:<ドメイン名>
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

サーバ証明書の作成

サーバ証明書を作成します。

openssl x509 -req -days 3650 -signkey /etc/httpd/conf.site/ssl/<ドメイン名>.key < /etc/httpd/conf.site/ssl/<ドメイン名>.csr > /etc/httpd/conf.site/ssl/<ドメイン名>.crt

Apacheの設定

個別ファイルの例は以下です。 常時https化やレスポンスヘッダの設定は.htaccessでも設定できるようになっています。

ここでは、/etc/httpd/conf.site/<ドメイン名>.confファイルを作成しています。 PHPをポート番号デフォルトとは異なる9001で連携する設定になっているところがポイントになります。

<VirtualHost *:80>
    ServerName <ドメイン名>
    DocumentRoot /home/<追加OSアカウント名>/<ドメイン名>/public_html/
    CustomLog /var/log/httpd/<ドメイン名>_access_log common
    ErrorLog  /var/log/httpd/<ドメイン名>_error_log
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]

    <Directory /home/<追加OSアカウント名>/<ドメイン名>/public_html/>
        Options  FollowSymLinks
        AllowOverride All
        Require all granted

        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php
            SetHandler "proxy:fcgi://127.0.0.1:9001"
        </FilesMatch>
    </Directory>
</VirtualHost>

<VirtualHost *:443>
    ServerName <ドメイン名>
    DocumentRoot /home/<追加OSアカウント名>/<ドメイン名>/public_html/
    CustomLog /var/log/httpd/<ドメイン名>_ssl_access_log common
    ErrorLog  /var/log/httpd/<ドメイン名>_ssl_error_log

    SSLEngine on
    SSLProtocol -all +TLSv1.2
    SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS:!3DES
    SSLHonorCipherOrder On
    SSLCertificateFile /etc/httpd/conf.site/ssl/<ドメイン名>.crt
    SSLCertificateKeyFile /etc/httpd/conf.site/ssl/<ドメイン名>.key

    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]

    <Directory /home/<追加OSアカウント名>/<ドメイン名>/public_html/>
        Options  FollowSymLinks
        AllowOverride All
        Require all granted

        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php
            SetHandler "proxy:fcgi://127.0.0.1:9001"
        </FilesMatch>
    </Directory>
</VirtualHost>

PHPとApacheの再起動

PHPとApacheを再起動して設定反映します。

systemctl restart php-fpm
systemctl restart httpd

※SELINUXを利用している場合は別途設定が必要です。SELINUXを設定しない場合は/etc/selinux/configで「SELINUX=disabled」にしてゲストOSを再起動する必要があります。

ApacheとPHPの動作確認

ApacheとPHPの動作確認を行っていいきます。

ホストOSのhostsファイルの編集

本来はインターネット上のDNSサーバでドメインとサーバを紐づけていますが、ホストOS内で完結した検証環境になりますので、hostsファイルにて、ドメイン名と検証環境の紐づけを行います。 hostsファイル利用時は検証環境でのみドメインが利用できるようになりますので、本番環境を表示する場合はhostsファイルをもとに戻す必要があります。

Windowsの場合はhostsファイルは「C:\Windows\System32\drivers\etc\hosts」にあります。 あらかじめプロパティで編集権限を設定する必要があります。 本手順を進めた場合、ゲストOSのIPは「192.168.56.101」になりますので、設定例は以下になります。

192.168.56.101 <ドメイン名>

ドメインのpublic_htmlにテストコンテンツ配置

たとえば、以下のコードを記述したtest.phpを配置して、表示確認していきます。

<?php
echo "ドメイン名"
?>

ブラウザでhttpsにアクセスした場合のエラー解除方法

自己証明書を使用しているためhttpsでアクセスした場合、証明書エラーが発生します。 詳細を開いて危険を承知して表示するを選択する操作を行ってエラーを解除します。 以下はFirefoxの解除の例です。

ブラウザでhttpsにアクセスした場合のエラー解除方法

詳細を開いて「危険性を承知で続行」をクリックします。

詳細を開いて「危険性を承知で続行」

11. WordPressを新規構築する場合

WordPressの新規構築方法について見ていきます。

WordPressの新規構築の概要

WordPressの新規構築の概要は以下です。

  1. WordPress パッケージをダウンロードして、解凍
  2. サーバー上に、WordPress 用のデータベースと、そのデータベースへの全アクセス権・編集権を持つ MySQL ユーザーを作成
  3. wp-config-sample.php ファイルの名前を wp-config.php に変更
  4. テキストエディタでwp-config.phpを開き、wp-config.phpファイルの編集記事の説明に従いデータベース情報と秘密鍵の値を記入
  5. サーバー上の希望の場所に、WordPress ファイルを設置
  6. ドメインルート (http://example.com/ など) に WordPress を置きたいときは、解凍した wordpress ディレクトリの中身 (wordpress ディレクトリ自体を除く全ファイル) をサーバーのルートディレクトリへアップロード
  7. ウェブサイト上の WordPress 用サブディレクトリ (http://example.com/blog/ など) に WordPress を設置したいときは、解凍した wordpress フォルダを好きなサブディレクトリ名に変更し、丸ごとサーバーのルートにアップロード
  8. ブラウザで wp-admin/install.php へアクセスし、インストールスクリプトを実行
  9. ルートディレクトリに設置したなら: http://example.com/wp-admin/install.php
  10. blog というサブディレクトリに設置したなら: http://example.com/blog/wp-admin/install.php

参考URL)http://wpdocs.osdn.jp/WordPress_のインストール

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

まずは、WordPress 用のデータベースと、そのデータベースへの全アクセス権・編集権を持つMySQLユーザを作成しておきます。

WordPress 用のデータベースとユーザ作成例

# mysql -u root -p
CREATE DATABASE データベース名;
GRANT ALL PRIVILEGES ON データベース名.* TO データベースユーザ名@<ユーザが接続するホスト> IDENTIFIED BY '<パスワード>';
FLUSH PRIVILEGES;

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

https://ja.wordpress.org/download/から日本語版のWordPressパッケージをダウンロードします。

WordPressのダウンロードイメージ

ダウンロードしたら、圧縮ファイルを解凍します。

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');

秘密鍵の値変更箇所

https://api.wordpress.org/secret-key/1.1/salt/で自動生成することもできます。

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 ファイルを設置。

インストールの実施

インストールの準備ができましたら、インストールをWebページから実施していきます。

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

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

WordPressインストールはじめのページ

あらかじめデータベースの接続情報などwp-config.phpに設定しておくと以下のWebページから始まります。

WordPressのインストールイメージ

必要情報の入力

必要情報は後で変更できますので、仮のもので大丈夫です。 検索エンジンでの表示は、未完成ページがインデックスされないようチェックを入れておくか、htaccessなどでアクセス制限をかけておきましょう。

※注意:ユーザ名、パスワードは必ずメモしておきましょう。

入力したら「WordPressをインストール」ボタンを押しましょう。

インストール完了ページ

はい、これだけでインストールが完了します。

WordPressのインストール完了イメージ

ログイン画面の表示

インストールしたらログインできるか確認してみましょう。

WordPressのログイン画面の表示イメージ

ダッシュボードの表示

正常にインストール出来ていればダッシュボードが表示されます。

WordPressのダッシュボードイメージ

12. WordPressの移行する場合

WordPressの移行方法についてです。 SSHに対応したサーバで、mysqldumpを使用してWordPressのデータベースをバックアップする例です。

mysqldumpとは

mysqldumpは、MySQL(もしくはMariaDB)のデータベースをバックアップするコマンドです。 MySQL内に保存されたデータベース定義やデータをSQL文の形式で出力してくれます。

WordPressのデータベースをバックアップする例

WordPressは、MySQLのデータベースに投稿などのデータを保管します。

以下はSSHに対応したサーバで、mysqldumpを使用してWordPressのデータベースをバックアップする例です。

SSHでWordPressが動作するサーバーへ接続

まずはTeratermなどのSSHクライアントを使用して、WordPressが動作するサーバーへSSHで接続します。

WordPressが使用するデータベースの確認

以下のようにしてWordPressが使用するデータベースの接続先が確認できます。

cat <wp-config.phpの配置パス> | grep DB

mysqldumpでバックアップを出力しファイルに保存

以下のようにしてmysqldumpでバックアップを出力しファイルに保存できます。

mysqldump -h <DB_HOST> -u <DB_USER> -p <DB_NAME> > <保存ファイルのパス(例 xxx.dump)>

WordPressのデータベースを移行(リストア)する例

今度はWordPressのデータベースを移行(リストア)する例です。 mysqldumpで出力されたダンプはMySQLのデータベースを操作するSQL文で出力されますので、mysqlコマンドでSQL文を実行することで移行(リストア)が行えます。

リダイレクトを使用してインポートする例

コマンドライン(シェル)のリダイレクト(<)を使用してインポートが行えます。

mysql -h <DB_HOST> -u <DB_USER> -p <DB_NAME> < <保存ファイルのパス(例 xxx.dump)>

sourceを使用してインポートする例

mysqlコマンドでmysqlに接続してsourceを使用してインポートが行えます。

mysql -h <DB_HOST> -u <DB_USER> -p <DB_NAME>
MySQL> source <保存ファイルのパス(例 xxx.dump)>

URLやパスが異なる場合

テストサイトと本番サイトでURLやパスが異なる場合はデータベースの変更が必要です。 Search-Replace-DB-masterというツールでデータベースの変更が行えます。

ダウンロード

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

配置

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

実施

後始末

本番環境に持って行ってしまうといけないので、必ず移行ツールは削除しましょう。

$rm -Rf Search-Replace-DB-master

13. 実メモリの不足を補うスワップの拡張方法

作業PC内のテスト環境など少ないリソース環境でメモリが不足する場合があります。 その際の対処方法の1つにスワップの拡張があげられます。

スワップ領域

スワップ領域とは、メモリを実際よりも大きくするために使用するファイルシステム上の領域のことをいいます。 コンピュータでは、実際の実メモリとスワップ領域を組み合わせた仮想メモリをメモリとして使用します。 実メモリが不足したときに、一時的にメモリの内容を書き込んでおくファイルをスワップファイル、スワップ領域といいます。

スワップ領域拡張の例

スワップ領域拡張の例です。 Linuxのスワップ領域のサイズをmkswap、swaponコマンドを使用して拡張する手順をまとめています。

例では、swapfileaddというファイル名の2Gのスワップを追加しています。 名前を変更すれば、もう2G追加というように行えます。 この手順はLinux全般で使える手順です。 CentOS7の実施例になっていますが、Amazon Linuxなどでも実績があります。

スワップファイル作成

スワップファイルを作成します。少し時間がかかる場合があります。

# dd if=/dev/zero of=/swapfileadd bs=1024K count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 182.299 s, 11.8 MB/s

スワップファイルのアクセス権限設定

作成したスワップファイルのアクセス権限を設定します。

# chmod 600 /swapfileadd

スワップファイルをフォーマット

mkswapコマンドで、作成したスワップファイルをフォーマットします。

# mkswap /swapfileadd
Setting up swapspace version 1, size = 2097148 KiB

ファイルをスワップ領域に追加

swaponコマンドで、ファイルをスワップ領域にスワップファイルを追加して、スワップ領域のサイズを拡張します。

# swapon /swapfileadd

スワップ領域のサイズが拡張されたか確認

swaponコマンドで、スワップ領域のサイズが拡張されたか確認できます。

# swapon -s
Filename                                Type            Size    Used    Priority
/swapfileadd                               file    2097148 0       -1

/etc/fstabの設定

CentOS7の起動時に自動でスワップが追加されるよう/etc/fstabに設定をします。

#vi /etc/fstab
:
/swapfileadd               swap                    swap    defaults        0 0

さらにスワップ領域を追加したい場合

上記手順のswapfileaddを別名に変更すれば、再度追加できます。

mkswapコマンド

以下は、mkswapコマンドのユーセージになります。

device引数は、通常はディスクパーティション(/ devの/ sdb7のようなもの)になりますが、ファイルすることができます。
LinuxカーネルはパーティションIDを見ていませんが、多くのインストールスクリプトは、前提としていますそのヘクスのパーティション
タイプ82(LINUX_SWAP)はスワップパーティションであることを意味しています。 (警告:Solarisのもこのタイプを使用しています注意しないこと。
Solarisのパーティションを殺すために。)

サイズパラメータは不必要であるが、後方互換性のために残さ。 (これは、所望のサイズを指定します
1024バイトのブロック内のスワップ領域。それが省略された場合ます。mkswapはパーティション全体またはファイルを使用します。指定
それは賢明ではありません - タイプミスはあなたのディスクを破壊する場合があります)。

スワップ領域を作成した後、あなたはそれを使用して開始するにはswaponコマンドが必要です。通常に記載されている領域をスワップ
の/ etc / fstabに、彼らはいくつかのブートスクリプト内のコマンドの-aのswaponにより、ブート時に使用されるように撮影することができますように。

-c、--check
(それはブロックデバイスである場合)スワップ領域を作成する前に不良ブロックするための装置を確認してください。任意の悪い場合
ブロックは、カウントが印刷され、発見されました。

-f、--force
コマンドは愚かであっても、先に行きます。これは、ファイルよりもスワップ領域の作成が大きいことができます
または、それが常駐するパーティション。

また、このオプションを使用せずに、ます。mkswapはパーティションを持つデバイス上の最初のブロックを消去することを拒否しますトゥイーター
BLE。

-L、--labelラベル
ラベルではswaponを可能にするために、デバイスのラベルを指定します。

-p、--pagesizeサイズ
使用するページサイズ(バイト単位)を指定します。このオプションは通常不要です。ます。mkswapはサイズを読み取り
カーネルから。

-U、--uuid UUID
使用するUUIDを指定します。デフォルトでは、UUIDを生成することです。

-v、--swapversion 1
スワップ空間のバージョンを指定します。古い-v 0オプションになっているように(このオプションは、現在無意味です
廃止されたと今だけ-v 1がサポートされています。カーネルは、以来、V0スワップ空間のフォーマットをサポートしていません
2.5.22(2002年6月)。新しいバージョンv1が2.1.117(1998年8月)以降でサポートされています。)

-h、--help
ヘルプの表示テキストと終了します。

-V、--version
バージョン情報を表示して終了。

swaponコマンド

以下は、swaponコマンドのユーセージになります。

swaponコマンドは、ページングとスワッピングが起こるようにされているデバイスを指定するために使用されます。

使用するデバイスまたはファイルがspecialfileパラメータで指定されています。これは、フォーム-Lラベルまたは-UのUUIDへのものであってもよいです
ラベルまたはUUIDによってデバイスを示しています。

pag-ように、すべてのスワップ・デバイスを利用できるようにするシステムのブートスクリプトで発生し、通常はswaponの呼び出し
るとスワッピングの活動は、複数のデバイスやファイル間でインターリーブされます。

するswapoffは指定されたデバイスやファイルのスワッピングを無効にします。 -aフラグが指定された場合、スワッピングが無効になっています
(は/ proc /スワップまたは/ etc / fstabに見られるような)すべての既知のスワップデバイスやファイルに。

-a、--all
``スワップ」としてマークされたすべてのデバイス ''の/ etc / fstabには、 `` noautoを持つものを除き、利用可能になります」
オプション。すでにスワップとして使用されているデバイスは、黙ってスキップされます。

-d、--discard [=ポリシー]
スワップバッキングデバイスが廃棄またはトリム操作をサポートしている場合、スワップ破棄を有効にします。これはよいです
いくつかのソリッドステートデバイスでのパフォーマンスを向上させるが、しばしばそれはしていません。オプションは1つが選択できます
--discard =一度シングルタイム廃棄操作を実行するには、次の2つの利用可能なスワップ破棄ポリシーの間
swaponコマンドで全体のスワップ領域のため、彼らは前に解放されたスワップページを廃棄するか、--discard =ページ
スワップながら、再利用されます。ポリシーが選択されていない場合、デフォルトの動作は有効両方破棄することです
タイプ。の/ etc / fstabに、オプションは破棄マウント一度=破棄、または=ページを有効にするためにも使用されてもよい捨てます
フラグを破棄します。

-e、--ifexists
サイレント存在しないデバイスをスキップします。の/ etc / fstabにもスキップするために使用することができるオプションのnofailマウント
デバイスの存在しません。

-f、--fixpgsz
再初期化(幹部/ sbinに/ます。mkswap)スワップ空間のページサイズは、現在のものと一致しない場合
カーネルを実行しています。ます。mkswap(2)は、装置全体を初期化し、不良ブロックをチェックしません。

-h、--help
ヘルプを提供。

-Lラベル
指定されたラベルを持つパーティションを使用してください。 (このために、/ procの/パーティションへのアクセスが必要となります。)

-p、--priorityの優先順位
スワップデバイスの優先順位を指定します。優先順位は-1と32767より高い数値の間の値であります
高い優先度を示しています。スワップ優先順位の完全な説明については、swapon(2)を参照してください。にPRI =値を追加します。
swaponコマンドの-aで使用するための/ etc / fstabファイルのオプションフィールド。優先順位は-1にそれをデフォルト値を定義されていないとき。

-s、--summary
デバイスによる表示スワップの使用量の要約。 "猫の/ proc /スワップ」に相当します。 Linuxの前には使用できません
2.1.25。

--show【コラム、コラム]
--summary出力のように定義可能なデバイステーブルを表示します。列リストのために--helpの出力を参照してください。

--noheadings
--show出力を表示するときに見出しを表示しません。

--rawは、表の列を整列させることなく、出力を--show表示します。

--bytes
代わりに、ユーザーフレンドリーなサイズとユニットの--show出力でバイト単位で表示スワップサイズ。 -U UUIDが使用します
指定されたUUIDを持つパーティション。

-v、--verbose
冗長に。

-V、--version
バージョン情報を表示します。

更新履歴

更新履歴になります。

位置:トップWordPressテストサイト