今回はCentOS 6 にWordPressをインストールして、管理画面を表示するまでの一例を紹介します。
環境
Linux 6.9(さくらのクラウド)
# … root権限で実行
$ … ユーザー権限で実行可
[hoge] … 置き換え文字
初期設定
出来立てのLinuxにrootで、立ち上げ時に設定したパスワードでSSH接続します。
接続にはTera Term等のターミナルエミュレータを使用してください。
ユーザー作成
初期状態だとrootしか存在しませんが、セキュリティの観点から好ましくないのでユーザーを作成します。
# useradd [user_name] # passwd [user_name] [password] # cat /etc/passwd # cat /etc/shadow
SSH設定
同じくセキュリティの観点からrootでのログインを禁止します。
# cd /etc/ssh # ls -l # cp -p sshd_config sshd_config.org # sed -i -e 's/^#\(PermitRootLogin\) yes/\1 no/' sshd_config # diff sshd_config sshd_config.org
先ほど作成したユーザー名でSSHログイン出来ることを確認しましょう。
Tera Termなら新しくウィンドウを開けば楽です。
できたら下のコマンドでSSHの変更を反映させます。
# service sshd restart
rootユーザーでSSHログインが出来なくなっていれば成功です。
タイムゾーン設定
# date
で表示されたタイムゾーンがJST以外なら、下記を行います。
# cd /etc # strings localtime # cp -p localtime localtime.org # cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # strings localtime # date
WEBサーバインストール
# yum install httpd # service httpd start # chkconfig httpd on # chkconfig --list | grep httpd
127.0.0.1に対してホスト名を設定します。
# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 hostname
/etc/sysconfig/networkに記載されているホスト名をconfファイルにも設定します。
初期状態だと400 error等でドメイン名等の情報を返してしまい、ハッカーがハッピーになってしまうので、
ログへの記録等でドメイン名の逆引き等のDNS問い合わせ処理をしないよう設定します。
# cd /etc/httpd/conf # cp -p httpd.conf httpd.conf.org # vi httpd.conf ... ServerTokens ProductOnly ... KeepAlive On ... ServerName [host_name] ... ServerAdmin [e-mail] ... HostnameLookups Off ... ServerSignature Off ... # service httpd configtest # service httpd start
最後のコマンドで「Syntax OK」と表示されたら成功です。
PHP 5.6 インストール
epelとremiレポジトリを追加します。
# yum install epel-release # yum install php-mysqlnd php-mbstring php-gd php-pdo php-gd php-xml --enablerepo=remi,remi-php56,epel
remi-php56リポジトリを有効化し、プライオリティを設定します。
# vi /etc/yum.repos.d/remi.repo ... [remi] name=Remi's RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi ... [remi-php56] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror # NOTICE: common dependencies are in "remi-safe" priority=1 enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi ... # yum install --enablerepo=remi-php56 php php-common php-mbstring php-mysqlnd php-gd php-pecl-apcu php-pear php-pdo php-xml
PHPの設定
# cd /etc # cp -p php.ini php.ini.org # vi php.ini ... date.timezone = "Asia/Tokyo" ... upload_max_filesize = 32M ... # service httpd reload
PHPモジュール動作の確認
# cd /var/www/html/ # vi phpinfo.php
ブラウザでPHPinfoが確認できたら、chmodやrm等で閲覧不可にしましょう。
htmlディレクトリをWordPressが変更できるようにする為にApacheに権限を付与します。
# chgrp -R apache /var/www/html
MySQLのインストール
Mysql以外のDBでも大丈夫です。
# yum install mysql mysql-server mysql-devel mysql-utilities # chkconfig mysqld on # cd /etc # cp -p my.cnf my.cnf.org # vi my.cnf ... datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 ←この行を追加します。 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid ... # service mysqld start
※次のようなエラーが出るときは、mysql_install_db をオプション付きで実行します。
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist # mysql_install_db --datadir=/var/lib/mysql --user=mysql
続いて、MySQLのセキュリティ設定をします。
7行目はnにしても良いと思います。
# mysql_secure_installation ... Enter current password for root (enter for none): Set root password? [n] Remove anonymous users? [Y] Disallow root login remotely? [Y] Remove test database and access to it? [Y] Reload privilege tables now? [Y] ...
4行目…rootアカウントのパスワードを設定しますか?
5行目…ローカルホスト以外からアクセス可能な root アカウントを削除しますか?
6行目…リモートからのrootログインを拒否しますか?
7行目…testデータベース、および test_ で始まる名前を持つデータベースへのアクセスを許可する権限を削除しますか?
8行目…今すぐ再ロードしますか?
DB作成
# mysql -u root -p [password] set names utf8; create database [dbname] default character set utf8; grant all privileges on [dbname].* to [dbuser]@localhost identified by '[password]';
パスワードは最初にホストに接続した時のパスワードです。
文字コード確認
show variables like "char%";
権限確認
show grants for '[user_name]'@'localhost'; show grants for '[dbname]'@'%';
WordPressインストール
ここでようやく、WordPressのインストールです。
# cd /usr/local/src/ # wget https://ja.wordpress.org/wordpress-4.0-ja.zip # unzip wordpress-4.0-ja.zip # mv wordpress wordpress-4.0-ja # su - [user_name] $ cp -pr /usr/local/src/wordpress-4.0-ja /var/www/html/ $ cd html/wordpress/ $ mv wordpress-4.0-ja [sitename] $ chmod -R g+w [sitename]/ $ cd [site_name] $ ls -l $ cp -p wp-config-sample.php wp-config.php $ vi wp-config.php ... define('DB_NAME', '[db_name]'); define('DB_USER', '[user_name]'); define('DB_PASSWORD', '[passs_word]'); ... define('DB_COLLATE', ''); define('DISABLE_WP_CRON', 'true'); ... $table_prefix = '[prefix]'; ... define('FS_METHOD', 'direct');
ブラウザで開き、WordPressのログイン画面が表示されれば成功です。
終わりに
ずいぶん長くなりましたが、以上が「CentOS 6.9 にWordPressをインストールして初期設定をする一例」になります。
セキュリティが気になる方はポート変更やファイアウォールの設定等を別途するようにしてください。
最後までご覧いただき、ありがとうございました。