我輩は雑記帖である。名はまだない。

WordPressインスト-ル (CentOS 7.3 + PHP7.1)

諸事情により、WordPress を再インスト-ルしなければならなくなったので。

過去の記事の通りにインスト-ルできなかったので改めて記載 (誰~、あの記事書いたの)。

 

手順は下記の通り。

 

  1. CentOS セットアップ
  2. Apache、PHP、MariaDB、sshd セットアップ
  3. SELinux 設定
  4. WordPress インスト-ル

 

1.CentOS セットアップ (省略)

理由も省略。

 

2.Apache、PHP、MariaDB、sshd セットアップ

1.epel リポジトリインスト-ル

yum install epel-release

2.remi リポジトリインスト-ル

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

3.Apache、PHP、MariaDB インスト-ル

yum install --enablerepo=remi,remi-php71 httpd mariadb mariadb-server php php-gd php-mbstring php-mysqlnd php-xml policycoreutils-python

※php-xml は、プラグイン『Associates Link Builder』に必要なためにインスト-ルしている。

4.MariaDB ル-トパスワード設定

mysql -u root
update mysql.user set password=password('ル-トパスワ-ド') where user = 'root';
flush privileges;
exit;

5.WordPress 用DB作成

mysql -u root -p
create database WordPress用DB名;
grant all privileges on WordPress用DB名.* to WordPress用DBユ-ザ-名@localhost identified by 'パスワ-ド';
exit;

6.WordPress セットアップファイル配置

適当なディレクトリへWordPress書庫ファイルを配置し、ファイルを展開する。

tar -zxvf WordPress書庫ファイル

ドキュメントル-トとするディレクトリへ展開結果を配置する。

 

展開結果フォルダ直下の、『license.txt』、『readme.html』を削除する。

7.設定ファイル追加・削除・修正

『/etc/httpd/conf/httpd.conf』 の修正

119行目付近

# DocumentRoot "/var/www/html"
DocumentRoot "ドキュメントル-トに指定するフルパス"

145行目付近

 # Options Indexes FollowSymLinks
 Options FollowSymLinks

153行目付近

 # AllowOverride None
 AllowOverride All

161行目付近

    <LimitExcept GET POST HEAD>
        Order deny,allow
        Deny from all
    </LimitExcept>

ファイル末尾に追記

ServerSignature Off
ServerTokens ProductOnly

『/etc/httpd/conf.d/welecom.conf』、『/etc/httpd/conf.d/autoindex.conf』、『/etc/httpd/conf.d/userdir.conf』の削除

『/etc/httpd/conf.d/expires.conf』 を新規作成

<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault                     "access plus 1 month"
        ExpiresByType application/xml      "access plus 0 seconds"
        ExpiresByType text/xml             "access plus 0 seconds"
        ExpiresByType text/html            "access plus 0 seconds"
        ExpiresByType application/atom_xml "access plus 1 hour"
        ExpiresByType application/rss+xml  "access plus 1 hour"
</IfModule>

『/etc/httpd/conf.d/deflate.conf』 を新規作成

<IfModule mod_deflate.c>
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico) no-gzip dont-vary
        SetEnvIfNoCase Request_URI _\.utxt$ no-gzip

        SetOutputFilter DEFLATE
        AddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE application/xhtml+xml
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE application/rss+xml
        AddOutputFilterByType DEFLATE application/atom_xml
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE application/x-javascript
        AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>

『/etc/php.ini』

374行目付近

# expose_php = On
expose_php = Off

903行目付近

;date.timezone =
date.time = "Asia/Tokyo"

8.各サ-ビスの自動起動設定 及び 起動

systemctl start httpd.service
systemctl start mariadb.service

systemctl enable httpd.service
systemctl enable mariadb.service

9.ssh 鍵認証化

鍵認証で ssh ログインするユ-ザ-で以降の処理を実行する。

 

下記コマンドで 鍵を生成

ssh-keygen -t rsa

※パスフレ-ズ入力が要求される。

生成された鍵ファイルの内、『id_rsa.pub』を『authorized_keys』にリネ-ムする。

生成された鍵ファイルの内、『id_rsa』を ssh ログインするマシンにコピ-する。

ssh 鍵認証でログインする場合は、下記コマンドを実行する。

ssh -i ./id_rsa ユ-ザ-ID@リモ-トマシンのIPアドレス または ホスト名

 

『/etc/ssh/sshd_config』の修正

79行目付近

#PasswordAuthentication yes
PasswordAuthentication no

10.パケットフィルタリング設定

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

3.SELinux 設定

1.ポリシ-設定

以下のポリシ-をOnにする。

・httpd_builtin_scripting
・httpd_can_network_connect
・httpd_unified
・httpd_can_network_connect_db

ポリシ-のパラメ-タ値を確認するコマンド

getsebool -a | grep キ-ワ-ド

ポリシ-のパラメ-タ値を設定するコマンド

setsebool -P ポリシ-名=on

 

コンテキスト設定

semanage fcontext -a -t httpd_sys_content_t "WordPress配置ディレクトリ(/.*)?"
restorecon -R -v WordPress配置ディレクトリ
semanage fcontext -a -t httpd_sys_rw_content_t "WordPress配置ディレクトリ/wp-content(/.*)?"
restorecon -R -v WordPress配置ディレクトリ/wp-content

5.WordPressインスト-ル

1.WordPressインスト-ル

http://セットアップしたサ-バのIPアドレス

にアクセスしてインスト-ルする。

2.設定ファイル修正

『WordPress配置ディレクトリ.htaccess』

<Files ~ "^(wp-config\.php|xmlrpc\.php)$">
    Order deny,allow
    Deny from all
</Files>

<Files "wp-login.php">
    Order deny,allow
    Deny from all
    Allow from アクセスを許すIPアドレス または ドメイン名
</Files>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

※# BEGIN WordPress の前に記載すること。

『WordPress配置ディレクトリ/wp-admin.htaccess』

Order deny,allow
Deny from all
Allow from アクセスを許すIPアドレス または ドメイン名
<FilesMatch "(admin-ajax.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>

参考元

  1. Linux入門
  2. ITわかり隊
  3. CentOS7にPHP7をyumでインストールする
  4. Remi’s RPM repository – Packages
  5. Apacheセキュリティ設定
  6. はかいおうこうむてん
  7. WordPress Codex 日本語版
  8. web制作の覚え書き
  9. stackoverflow
  10. Server World

 

CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)
  • 価格:Check on Amazon
  • 製造元:サーバ構築研究会

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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