概要
今更ワードプレスでブログを始めようと思いその始めるまでの手順を素人ながら書いてみました。
主にサーバー構築についてです。
ただのレンタルサーバーでもよかったのですが、自分なりに勉強がてらカスタマイズしたく思い、VPSに選択。
環境、OSS
・レンタルサーバー GMOクラウドVPS
・OS CentOS7.4
・Apache2.4
・PHP5.4
・MariaDB(MYSQL)
・Wordpress
初期設定
まずサーバーを起動しrootでログイン(パスワードは初めに貰ったもの)
GMOにコンソール機能があったが、ペーストすらできずに、使いにくかったので、RLoginでドメインに接続。
この時はまだID、PWでログイン。後にssh接続に変える。
#まずは一般ユーザの作成
rootでずっと操作するのは危険性があるので、一般ユーザ作成
# useradd (任意のユーザー名) ← 一般ユーザの作成
# passwd (任意のパスワード) ← パスワード設定
→/home/(ユーザー名)/作成される。
続いてインストールなどで一般ユーザがroot権限で実行するためにsudo許可与える
visudo
# %wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL
コメントアウト消す
そしてsudoを許可するユーザーを追加
gpasswd -a ユーザー名 wheel
これで一般ユーザで不自由なく操作可能
rootを抜け一般ユーザでログインし直す
ちなみにifconfig(ip a)など使いたいので、
sudo yum install net-tools
より便利になりましたね!
ssh接続
本番環境だとこのままのID、PWだけのログインだとざるなので(しかもrootでもログイン出来てしまう)なので、公開鍵、秘密鍵を使ったssh接続で一般ユーザだけのログインとする。
一般ユーザにログイン後、その場で
ssh-keygen -t rsa
ls ~/.ssh
id_rsa id_rsa.pub
cd .ssh
ssh-keygen -i -f id_rsa.pub >> authorized_keys
rm id_rsa.pub
パーミッション設定
chmod 600 authorized_keys
chmod 600 id_rsa
SCPツールでサーバーのid_rsaをローカルに落とし保存する。
一般ユーザでドメイン名とユーザー名、秘密鍵だけでログインできるか確認する。
そのあとはさらにセキュリティ設定
vi /etc/ssh/sshd_config
Port 22
PasswordAuthentication no
PermitRootLogin no
に設定する。
そのあと
systemctl restart sshd.service
を忘れずにやる。じゃないと反映されない。
これで22ポート以外から受け付けず、パスワードログインできず、ルートでログインもできなくなる。
つまり一般ユーザのssh接続のみとなるので、本番環境でもセキュリティ上そこそこ強い。
注意
PasswordAuthentication noは必ずssh接続が確認出来てからやる。
じゃないとつながらなくなりOS再インストールしなくてはならない。
Apacheのインストール
apacheインストールコマンド実行
sudo yum install httpd
インストール完了後 apache起動させた後、自動起動設定する
systemctl start httpd.service
systemctl enable httpd.service
ポートでつながらないことが多いのでファイアウォールも再起動させとく。
systemctl stop firewalld
systemctl start firewalld
http://ドメイン名かIPアドレス/ で接続してみる
Apacheの画面が出てきたら正常に起動されている。
PHPインストール
$ yum install php php-mysql
$ php -v
PHP 5.4.x
$ cp /etc/php.ini /etc/php.ini.org
$ vi /etc/php.ini
date.timezone =
→date.timezone = "Asia/Tokyo"
MariaDBインストール
yum install mariadb mariadb-server
rpm -qa | grep maria
文字コード変更
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
character-set-server=utf8
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
DB起動
systemctl enable mariadb.service
systemctl start mariadb.service
WordpressのためのDB作成
create database testdb
#ユーザー追加
$ mysql -u root
mysql> update mysql.user set password=password('<PASSWORD') where user = 'root';
mysql> flush privileges;
mysql> exit;
$ mysql -u root -p
Wordpress導入
cd /tmp
wget http://wordpress.org/latest.tar.gz
vi wp-config.php
define('DB_NAME', 'sample');
define('DB_USER', 'sample');
define('DB_PASSWORD', 'hogehoge');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
(中略)
$table_prefix = 'wp_';
define ('WPLANG', '');
define('WP_DEBUG', false);
これであとはhttp://domein.com/wordpress/wp-admin/index.phpに繋いでソースコードが表示されず初期画面が出ればOK。
ざっとLAMP+Wordpressでした