1 views

導入目的

ブログサイトの運営にWordPress(ワードプレス)を使っています。WordPress は、オープンソースのブログ/CMS プラットフォームです。セマンティック Web、コードやデザインの美しさ、Web 標準、ユーザビリティなどを意識して開発されており、無料でダウンロードして使うことができます。今回はSELinuxを有効にしたまま使用してみました。

事前準備

Webサーバー+PHPMySQLデータベースFTPサーバーが構築済であること

■MySQLデータベース作成

[root@ufuso ~]# mysql -u root -p ← MySQLへrootでログイン
Enter password:  ← MySQLのrootパスワード応答(パスワードは表示されない)
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 1385
Server version: 5.0.45 Source distribution

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> create database wpress; ← 「wpress」という名のデータベース作成
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on wpress.* to ufuso@localhost identified by 'pass';
 ← 「wpress」という名のデータベースを読み書きできるユーザー「ufuso」をパス
ワード「pass」で作成

Query OK, 0 rows affected (0.00 sec)

mysql> exit ← MySQLからログアウト
Bye

■WordPressインストール

(1)php-mysqlインストール
WordPressはPHPで動作するため、PHPからMySQLデータベースへアクセスするためのパッケージであるphp-mysqlをインストールする

[root@ufuso ~]# rpm -q php-mysql ← php-mysqlがインストールされているか確認
php-mysql-5.3.3-27.el6_5.x86_64
 ← インストール済み。インストールされていなければ下記を実行のこと

[root@ufuso ~]# yum -y install php-mysql ← php-mysqlインストール

(2)WordPressダウンロード&インストール
ここにアクセスして下図のサイトを表示させ、赤枠1を右クリックし、赤枠2をクリックして最新版のURLをコピー。
wpress0
※「wpress」、「tu」、「ufuso」、「pass」は例示なので、自分用に置き換えること。

[root@ufuso ~]# wget http://ja.wordpress.org/wordpress-3.8-ja.tar.gz
 ← wget以下にコピーしたURLを貼り付けてWordPressダウンロード
`wordpress-3.8-ja.tar.gz' に保存中

100%[======================================>] 6,304,202   1.19M/s 時間 5.0s    

2013-12-28 01:59:33 (1.19 MB/s) - `wordpress-3.8-ja.tar.gz' へ保存完了 [6304202/6304202]

[root@ufuso ~]# tar zxvf wordpress-3.8-ja.tar.gz ← WordPress解凍
wordpress/
wordpress/wp-trackback.php
wordpress/wp-admin/
・・・
・・・
・・・
wordpress/wp-mail.php
wordpress/wp-config-sample.php
wordpress/wp-comments-post.php

[root@ufuso ~]# mv wordpress/ /var/www/html/wpress ← WordPress解凍先ディレクト
リを/var/www/html/wpressディレクトリ下へ移動(「wpress」は例示)

[root@ufuso ~]# chmod 777 /var/www/html/wpress ← WordPressディレクトリwpress
(「wpress」は例示)を一時的に書込可にする

[root@ufuso ~]# chown -R tu:apache /var/www/html/wpress/ ← WordPressディレクト
リとその中の全ファイルの所有者をtu、グループをApache実行ユーザへ変更(「tu」は自分
のユーザー名の例示。「apache:apache」も可)

[root@ufuso ~]# mkdir /var/www/html/wpress/wp-content/uploads ← uploadsフォル
ダの作成

[root@ufuso ~]# mkdir /var/www/html/wpress/wp-content/upgrade ← upgradeフォル
ダの作成

[root@ufuso ~]# chmod -R 777 /var/www/html/wpress/wp-content ← wp-contentフォ
ルダとその中の全ファイルに読み書き権限の設定

[root@ufuso ~]# rm -f wordpress-3.8-ja.tar.gz ← ダウンロードしたファイルを削除

■SELinuxが有効な場合

[root@ufuso ~]# getsebool -a | grep http ← SELinuxでhttpの下記項目がすべてon
であるか確認
httpd_builtin_scripting --> on
httpd_can_network_connect --> off ← onにしてネットワークへの接続を許可
httpd_can_network_connect_db --> off ← onにしてデータベースへの接続を許可
httpd_dbus_avahi --> on
httpd_enable_cgi --> on
httpd_tty_comm --> on
httpd_unified --> on

[root@ufuso ~]# setsebool -P httpd_can_network_connect=on
 ← httpd_can_network_connectをonにする

[root@ufuso ~]# setsebool -P httpd_can_network_connect_db 1
 ← httpd_can_network_connect_dbをonにする。1を入力してonにする方法もある
(1=on、0=offの意味)

[root@ufuso ~]# yum provides *bin/semanage ← semanageをインストールするため確認
policycoreutils-python-2.0.83-19.39.el6.x86_64 : SELinux policy core python
                                               : utilities
Repo        : base
Matched from:
Filename    : /usr/sbin/semanage

[root@ufuso ~]# yum -y install policycoreutils-python ← policycoreutils-python
をインストール
Installed:
  policycoreutils-python.x86_64 0:2.0.83-19.39.el6                              

Dependency Installed:
  audit-libs-python.x86_64 0:2.2-2.el6                                          
  libcgroup.x86_64 0:0.40.rc1-5.el6_5.1                                         
  libsemanage-python.x86_64 0:2.0.43-4.2.el6                                    
  setools-libs.x86_64 0:3.3.7-4.el6                                             
  setools-libs-python.x86_64 0:3.3.7-4.el6                                      

Complete!

[root@ufuso ~]# semanage fcontext -a -t httpd_sys_content_t "/var/www/html/wpress(/.*)?"
 ← ウェブコンテンツとしてwpressフォルダへのアクセスを許可

[root@ufuso ~]# restorecon -R -v /var/www/html/wpress ← 変更設定を更新

[root@ufuso ~]# semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/wpress/wp-content(/.*)?"
 ← ウェブコンテンツとしてwp-contentフォルダへの書込を許可

[root@ufuso ~]# restorecon -R -v /var/www/html/wpress/wp-content ← 変更設定を
更新

[root@ufuso ~]# setsebool -P allow_ftpd_full_access 1 ← pluginやthemeの追加に
必要なftpへのフルアクセスを許可

■WordPress初期設定

(1)http://サーバー名/wpress/へアクセスし、表示される赤枠「設定ファイルを作成する」をクリック
wpress01

(2)表示される画面の赤枠「さあ、始めましょう!」をクリック
wpress02

(3)表示される画面にMySQLで作成した「データベース名」、「ユーザー名」、「パスワード」を入力して、赤枠の「送信」をクリック
wpress03

(4)表示される画面の赤枠「インストール実行」をクリック
wpress04

(5)表示される画面の赤枠1の全項目を埋め、赤枠2の「WordPressをインストール」をクリック
wpress05

(6)表示される画面の赤枠「ログイン」をクリック
wpress06

(7)ログイン画面が表示されるので、登録したユーザー名を赤枠1に、パスワードを赤枠2に入力して赤枠3の「ログイン」をクリック
wpress07

(8)管理画面が表示されればOK
wpress08

(9)サイトのトップページ
wpress09

※下図(10)赤枠のようにFTPS(SSL)を使うと(11)図赤枠のエラーが出るので注意

(10)
ftp-error01
(11)
ftp-error02
(12)上図(10)の確認画面の表示と入力を省くために、下記の設定をする

[root@ufuso ~]# chmod 755 /var/www/html/wpress ← WordPressディレクトリwpress
(「wpress」は例示)を書込不可に戻す

[root@ufuso ~]# vi /var/www/html/wpress/wp-config.php ← 設定ファイルを開く
define('FS_METHOD','direct'); ← 下行の直前に追記

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

使い方の詳細はWordPressフォーラム参照

2 Replies to “WordPress and SELinux(CentOS 6.5 x86_64)”

  1. この設定だと、WordPressのアップグレード時に、FTPサーバの入力画面が出てしまい、SFTPなどでファイルを転送することになるかと思います。
    インストールディレクトリ配下全てを “httpd_sys_rw_content_t”にするべきではないでしょうか。

    1. コメントありがとうございます。ご指摘のようにWordPressのアップグレード時に、FTPサーバの入力画面が出ることはありませんでしたが、「一部ファイルが更新できません」というメッセージが出ました。
      そこで、インストールディレクトリ配下(本サイトでは「wpress」フォルダ全て)に「chmod -R」コマンドで書き込み権限を与えたところ、”httpd_sys_rw_content_t”に変更せずとも通常どおりアップグレードできました。したがいまして、アップグレードにポリシーの変更までは不要かと思います。

コメントを残す

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

CAPTCHA


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