Apache で WordPress を動かしてみました。
環境
CentOS 6.6
Remiリポジトリの追加
以下のページ通りにRemiリポジトリとEPELリポジトリを追加しておきます。 (Remiリポジトリを利用するにはEPELリポジトリが必要)
【Linux】EPEL, Remi, RPMforgeリポジトリを追加する方法 - kzy52's blog
PHP のインストール
$ sudo yum -y --enablerepo=remi install php php-mbstring php-mysql
設定ファイル
# /etc/php.ini ; デフォルトの文字コード default_charset = "UTF-8" ; タイムゾーンの設定 date.timezone = "Asia/Tokyo" [mbstring] ; デフォルト言語の設定 mbstring.language = Japanese ; 内部文字エンコーディングの設定 ; PHP 5.6.0以降では非推奨になっているので設定しないようにしてください。代わりにdefault_charsetを設定します。 ;mbstring.internal_encoding = EUC-JP ; HTTP入力文字エンコーディングの設定 ; PHP 5.6.0以降では非推奨になっているので設定しないようにしてください。代わりにdefault_charsetを設定します。 ;mbstring.http_input = auto ; HTTP出力文字エンコーディングの設定 ; PHP 5.6.0以降では非推奨になっているので設定しないようにしてください。代わりにdefault_charsetを設定します。 ;mbstring.http_output = SJIS
MySQL のインストール
$ sudo yum -y --enablerepo=remi install mysql-server
設定ファイル
# /etc/my.cnf [mysqld] character-set-server = utf8 skip-character-set-client-handshake [mysql] default-character-set = utf8
MySQL の起動、自動起動設定
$ sudo service mysqld start $ sudo chkconfig mysqld on
セキュリティ強化
$ sudo mysql_secure_installation Enter current password for root (enter for none): Enter Set root password?(rootパスワード設定する?) [Y/n] Y Remove anonymous users?(匿名ユーザー削除する?) [Y/n] Y Disallow root login remotely?(リモートからのrootログインを拒否する?) [Y/n] Y Remove test database and access to it?(テストDB削除する?) [Y/n] Y Reload privilege tables now?(設定した内容を反映するか?) [Y/n] Y
データベース作成
データベースを「wordpress」ユーザー名を「wpadmin」パスワードを「password」で作成します。
$ mysql -u root -p > CREATE DATABASE `wordpress` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; > CREATE USER `wpadmin`@`localhost` IDENTIFIED BY 'password'; > GRANT ALL ON `wordpress`.* TO `wpadmin`@`localhost`;
Apache のインストール
$ sudo yum -y install httpd
設定ファイル
# /etc/httpd/conf/httpd.conf # ユーザーとグループの設定です User apache Group apache # Web サーバーにアクセスしたクライアントに返す情報です。 # レスポンスヘッダには「Server: Apache」という名前しか返されません。 ServerTokens Prod # エラーメッセージ出力時にフッタを表示しないようにします。 ServerSignature Off
# /etc/httpd/conf.d/wordpress.conf <VirtualHost *:80> ServerName example.com; # 取得したドメインを指定してください DocumentRoot /var/www/wordpress <Directory "/var/www/wordpress"> AllowOverride All # .htaccess による設定変更を許可 Options -Indexes </Directory> # wp-config.phpへのアクセスをすべて拒否します。 <Files wp-config.php> order allow,deny deny from all </Files> </VirtualHost>
設定のチェック
$ sudo apachectl configtest Syntax OK
Apache の起動、自動起動設定
$ sudo service httpd start $ sudo chkconfig httpd on
WordPress のインストール
https://ja.wordpress.org/ から最新版をダウンロードします。
$ cd /var/www $ wget https://ja.wordpress.org/latest-ja.tar.gz $ sudo tar zxfv latest-ja.tar.gz $ sudo rm -rf latest-ja.tar.gz $ sudo chown -R apache:apache wordpress
設定ファイル
$ cd /var/www/wordpress $ sudo cp wp-config-sample.php wp-config.php
# wp-config.php // データベース情報を設定します。 define('DB_NAME', 'wordpress'); define('DB_USER', 'wpadmin'); define('DB_PASSWORD', 'password'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); // 「put your unique phrase here」を 適当な文字列に置き換えます。 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'); // プレフィックスは変更しておいた方がいいです。 $table_prefix = 'wp_';
動作確認
http://[wordpress.confで設定したドメイン] をブラウザで開きます。
Basic 認証の設定
管理画面にBasic 認証を設定します。
鍵の生成
ユーザー名を「wordpress」 パスワードを「password」にします。
$ sudo htpasswd -cb /var/www/wordpress/.htpasswd wordpress password
# /var/www/wordpress/.htaccess <Files "wp-login.php"> AuthType Basic AuthName "Please enter your name and password" AuthUserFile /var/www/wordpress/.htpasswd Require valid-user </Files>
設定を反映
$ sudo apachectl configtest $ sudo service httpd graceful