HOME → 3 WordPress → 09 WP 殿堂入り記事 → 

Raspbian Stretch Webサーバーに WordPress4.8 をインストール

Raspberry Pi + Raspbian Stretch
MariaDB に WordPress を導入
 
Raspbian Stretch + Nginx + PHP7.0 + MariaDB の環境に WordPress4.8 を新規インストールした。 
 
stretch + WordPres4.8
 
以下に、MariaDB での wordpress の設置要領を記載。
 
 
 
 
1. WordPressの設置と初期設定
 
 
①. WordPressのダウンロードと設置
 
wgetコマンドで、最新のWordPress日本語版をダウンロードして展開するので、ダウンロードする前に、ダウンロードするディレクトリに移動しておく。(ユーザーのホームディレクトリなど)。
cd /home/yaopi/work/
wget https://ja.wordpress.org/latest-ja.tar.gz
tar -xzvf latest-ja.tar.gz
 
展開すると、wordpress フォルダーが作成されるので、この中身をすべて、Nginxの公開ディレクトリ /home/yaopi/arakoki70 の中に、サブディレクトリ『 wordpress 』として設置する。( wordpress の URL: 192.168.nn.nnn/wordpress とする。)
cp -R wordpress /home/yaopi/arakoki70/
 
この後、元のファイは削除。

 

②. WordPress用のデータベースを作成
 
ルート権限で実行。

sudo su
mysql -u root
MariaDB [(none)]> use mysql
データベースの作成。
MariaDB [(none)]> create database dbname;
作成したデータベースに、ユーザー名とパスワードを設定。
MariaDB [(none)]> grant all on dbname.* to username@localhost identified by'password';

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
 
作成されたデータベースを確認する場合。
MariaDB [(none)]> show databases;
 

 

③. DBの接続設定(インストール準備)
 
パソコンのブラウザからWordpressを導入したURLへアクセスし、wordpress にDBの接続設定を行う。
http://192.168.nn.nnn/wordpress/
 
『さあ、始めましょう!』をクリックる。
wordpress インストール準備

WordPress用のデータベースを作成した情報を入力し、『送信』をクリックする。
wordpress DBの接続

『インストール開始』をクリックする。
wordpress_インストール開始
 
 
③-代替. 手動方式:wordpress の設定ファイルを編集
 
上記の方法は非常に簡単だが、手動で行う方法もある。
 
wp-config.php の作成と編集。

サンプル用の設定ファイルをコピーする。
cp /home/yaopi/arakoki70/wordpress/wp-config-sample.php /home/yaopi/arakoki70/wordpress/wp-config.php

サンプル用の設定ファイルを元に、コピーしたファイルを編集する。
sudo nano /home/yaopi/arakoki70/wordpress/wp-config.php
 
wp-config.php の編集内容。
define('DB_NAME', 'dbname'); ← データベース名'DB_USER', 'username'); ← データベースのユーザー'DB_PASSWORD', 'password'); ← データベースのパスワードースのパスワード'WPLANG', 'ja'); ← 使用言語を日本語に設定'FS_METHOD', 'direct'); ← ファイルのオーナーをチェックしない
 
記事作成で画像などをアップロードするので、アクセス権限を変更しておく。
sudo chmod 707 /home/yaopi/arakoki70/wordpress/wp-content/
 

 

④. WordPressの初期設定
 
パソコンのブラウザから下記URLへアクセスし、wordpress の初期設定を行う。
http://192.168.nn.nnn/wordpress/wp-admin/install.php
 

下記『ようこそ』画面が表示されるので、必要情報を入力し『wordpress をインストール』をクリックする。
wordpress_必要情報入力画面

インストールが『成功しました!』画面が表示されるので、『ログイン』をクリックする。
wordpress_インストール成功画面

 
 
⑤. WordPressの管理画面へのログインと動作確認
 
下記URLへアクセスすることでも、ログイン画面を出すことができる。
http://192.168.nn.nnn/wordpress/wp-admin/wp-login.php
 

管理画面へのログイン。
wordpress_管理画面へのログイン

ダッシュボード画面が表示される。
wordpress_ダッシュボード

『サイトのカスタマイズ』をクリックした時の画面。
wordpress_サイトのカスタマイズ画面

『別のテーマに変更する』をクリックした時の、外観_テーマの変更画面。【 Twenty Seventeen 】になっている。
wordpress_外観_テーマの変更画面

【 Twenty Seventeen 】のトップ画面を表示してみる。フルスクリーンで画像が表示される。
wordpress_トップ画面

右下の矢印をクリックすると、記事一覧が表示される。
wordpress_記事一覧画面

記事のタイトルをクリックすると、記事内容が表示される。【 Twenty Sixteen 】とイメージが異なるが、記事が表示される幅はほぼ同じに見える。
wordpress_記事内容画面

一般設定画面。当然ながら、URLがローカルになっている。
wordpress_一般設定画面

 
 
 
2. 初期トラブルと解決策
 
 
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
 
php-mysql のインストールモレ。
sudo apt-get install php-mysql
 
 
お使いの WP Multibyte Patch を有効化するには PHP の mbstring 関数が必要です。
 
php-mbstring をインストールすることで解決。
sudo apt-get install php-mbstring
 
 
WordPressの更新で、FTP『接続情報』を求められる。
 
通常、ログインした USER でサーバの操作を行うが、WordPress 上での操作は nginx が行うため、双方にパーミッションを与える必要がある。
『所有者の変更』:WordPress ディレクトリの、
・所有ユーザを nginx に、
・所有グループを USER に、
変更することで解決
sudo su
chown -R www-data:yaopi /home/yaopi/arakoki70
 
ls -l /home/yaopi で、調べた例。(変更前)
root@yaopi70:/home/yaopi# ls -l /home/yaopi/
total 8
drwx---rwx 13 yaopi yaopi 4096 Sep 23 09:58 arakoki70
drwxr-xr-x  3 yaopi yaopi 4096 Sep 23 05:30 work
 
 
SSH接続で、鍵認証がされない場合がある。
 
.ssh が格納されているフォルダーの、パーミッションを変更することで解決。又は、所有者の変更が必要な場合もある。
chmod 755 /home/yaopi
chown -R yaopi:yaopi /home/yaopi
 
 
FTPでファイルがアップロードできない。(子テーマなど)
 
アップロード先ディレクトリーの、パーミッションを変更。
sudo chmod 707 /home/yaopi/arakoki70/wordpress/wp-content
 
 
 
3. パーマリンクの変更
 

パーマリンク設定画面。ディフォルトでは記事番号になっている。一度記事を投稿しだすと、パーマリンクの(URLの形式)変更は困難をきたすので、最初から決定しておく必要がある。
wordpress_パーマリンク設定画面

SEOを考慮するのであればカスタム構造の空欄に【/%postname%/】と設定する・・・という説が多いが、この場合、記事のタイトルがパーマリンクに自動で挿入されため、タイトルが日本語の場合は日本語が自動で入る。
wordpress_パーマリンク

日本語のパーマリンクで記事が公開されると、URLは『%%E3%83%AF%…』のように無意味な文字列になってしまうので、記事投稿時に【分かりやすい】【半角英数字を使用した名称】に、パーマリンクを『編集』する必要がある。
wordpress_パーマリンクの編集

 パーマリンクを変更すると・・・。 
nginxでwordpressのパーマリンクをデフォルト以外に変更すると 404 Not Found になる。
 
sites-available/default の編集。
sudo nano /etc/nginx/sites-available/default
 
sites-available/default の編集要領。
###############
server {
    #ポート80番をlisten
    listen       80;
    #サーバー名
    server_name_;
    #ドキュメントルート
    root   /home/yaopi/arakoki70;
    # DirectoryIndex
    index  index.php index.html;
    # ロケーションドメイン/に適用ブロック
    location / {
        # 左側からマッチするかチェックしていく 
        # 適合がないので、@wordpressブロックを適用する
        try_files $uri $uri/ @wordpress;
    }
    # 拡張子が .phpにマッチした場合に適用されるブロック
    location ~ .php$ {
        # 前のブロック同様にマッチしなければ @wordpressブロックを適用する指定
        try_files $uri @wordpress;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_pass   unix:/var/run/php/php7.0-fpm.sock;
        # 先に include しておかないと次の$fastcgi_script_nameが無効になる
        include  fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
    # ファイルがマッチしない場合に適用する@wordpressブロック
    location @wordpress {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_pass   unix:/var/run/php/php7.0-fpm.sock;
        include  fastcgi_params;
        # ※ここがミソ。リクエストに関係なくすべて、index.phpを実行する
        fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
    }
}
###############
 
Nginxの設定ファイルに問題が無いかチェックし、Nginxを再起動する。
sudo nginx -t
sudo /etc/init.d/nginx restart
 
 
 
4. phpMyAdmin のインストール
 
phpMyAdmin のインストール。
sudo apt-get install phpmyadmin
 
Web-server selection の画面で Apache か lighttpd かどちらのサーバーかと、と聞いてくるが、どちらでもないので、チェックを外しておく。
phpMyAdminのインストール

必要ないのでNo。
phpMyAdminのインストール
 
リンクを貼る。
ln -s /usr/share/phpmyadmin /home/yaopi/arakoki70
 
[ http://192.168.nn.nnn/phpmyadmin/ ] にアクセスすると、以下のような画面になるので MariaDB に登録したユーザーでログインする。
phpMyAdminのインストール
 
 
 
5. 子テーマの作成とテーマ変更
 
wp-content/themes/twentyseventeen-child ディレクトリを作成し、新しいディレクトリ内に「style.css」と「functions.php」を作成する。
style.css
functions.php
 
style.css の内容。
/*
Theme Name: Twenty Seventeen child
Template:   twentyseventeen
Version: 1.1
*/
 
functions.php の内容。
<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}
//以下に子テーマ用の関数を書く
 
『外観』→『テーマ』の中に【 twentyseventeen-child 】が追加されるので、選択し『有効化』する。
wordpress テーマの変更
 

これで、カスタマイズが WordPress のバージョンアップに影響されることなく行えるようになった。

これから、外観やサイトのカスタマイズを完成させ、記事を投稿して行く。

参考:

 

以上。
(2017.09.18)

 

 

スポンサー リンク

 

             

 

 

 

“Raspbian Stretch Webサーバーに WordPress4.8 をインストール” への5件の返信

  1. 分かりやすい情報で参考にしております。
    ありがとうございます。
    RaspberryPiでnginx+MariaDB+php-fpmでWEBサーバー構築中です。

    こちらのページを参考にWordPressをインストールしていますが、下記のエラーがでてインストールが中断しました。
    504 Gateway Time-out
    nginx/1.10.3

    解決策を調べていますが、未だにわからないままです。
    php-fpm.conf でlog_level = debugにしたところ下記のログが大量にでました。

    [04-Jan-2018 15:33:16.329061] DEBUG: pid 20344, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool www] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1

    WordPressインストール時にこのような症状はでましたでしょうか。教えて頂けると幸です。

    かず

    1. 少しでも参考になれば幸いです。
      お問い合わせの件、そのような症状に遭遇したことがなく、適切なアドバイスが出来る能力がありません。
      WordPress導入前の状態というか、Webサイトとしてのindex.htmlは正常に表示されるのでしょうか。
      ルートディレクトリーに、WordPressをインストールしていない状態との切り分けをされてみてはいかがでしょうか。
      こんな返信で、申し訳ありません。

  2. tacsan様

    ご返信ありがとうございます。
    静的ファイルindex.htmlやindex.php(phpinfo()の実行結果)は正常に表示できました。

    php7.0-fpmの動作がおかしいのかな、と思っているのですがしばらく調べてみます。

    こちらのページのRaspberryPi情報は面白くて充実しているので楽しく勉強させていただいています。

    また立ち寄らせていただきます。
    かず

  3. tacsan様

    結果のご報告になります。

    WordPressのインストールに成功しました。
    phpの処理時間が長引くとタイムアウトになることが原因でした。

    やったこと
    /etc/nginx/sites-available/defaultファイルを記載しました。

    server {
     :
     :
     省略
     :
     fastcgi_read_timeout 1000;
    }
    予想以上にWordPressのインストールに時間がかかるのだと分かりました。

    他のファイルを編集するような情報もありましたが、
    結果的には、タイムアウトの時間を伸ばすことでうまくいきました。

    失礼します。

    かず

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください