前回まででVirtualBox側の設定が一部を除いてほぼ完了しました。
今回はCentOS7へのWebサーバー構築について書きます。
ほとんどが端末からのコマンド実行になります。
1) ApacheおよびPHPインストールしApache起動
まず管理者になり、yumでApacheとPHPをインストールします。
sudo su
yum -y install httpd
yum -y install php php-mbstring
私の場合はインストールができていることを確認するために、ここで起動しました。
systemctl start httpd
この時点でブラウザのURL欄に「localhost」を入力することでApacheの画面が表示されます。
さらにここでOS起動時に自動起動できるように設定しておきました。
systemctl enable httpd
あと、後々Apacheの設定ファイル「httpd.conf」を編集することになりますが、私は念のため元のhttpd.confをコピーして保存しておきました。場所は「/etc/httpd/conf/」です。
cd /etc/httpd/conf/
cp httpd.conf httpd.conf.orig
2) MySQLをインストール
MySQLをインストールします。CentOS7には標準でMariaDBというMySQL互換のデータベースがインストールされています。これがあるとMySQLがインストールできないので、一旦削除します。
yum -y remove mariadb-libs
削除できたらMySQLをインストールします。まずMySQL公式リポジトリを追加してからインストールを行います。
yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
インストールが完了したら、MySQLを起動し、Apacheと同様にOS起動時に自動起動できるようにします。
systemctl start mysqld.service
systemctl enable mysqld.service
このままではMySQLにログインできません。というのはrootの初期パスワードがログファイルに記述されており、まだ確認していないからです。。ログファイルは「/var/log/mysqld.log」なので、そのファイルの中身を表示し、6行目付近にあるパスワードを確認しておきます。以下のコマンドで表示される行の最後にある12個の英数字と記号です。
cat /var/log/mysqld.log | grep password
パスワードを保存したら、MySQLにrootでログインしてパスワードを変更します。この時にMySQLのパスワードのポリシーにより、短くてシンプルなものを設定しようとするとエラーになります。今回はローカルでの開発環境目的ということで短くてシンプルなパスワードに設定できるようにしました。
mysql -u root -p
SET GLOBAL validate_password_length=6;
SET GLOBAL validate_password_policy=LOW;
ALTER USER root@localhost IDENTIFIED BY 'パスワード';
3) PostgreSQLをインストール
PostgreSQLをインストールします。手順としてはMySQLとほぼ同様です。yumでインストール→DB初期化→起動→rootのパスワード設定の手順で行います。
yum -y install postgresql-server
postgresql-setup initdb
systemctl start postgresql
systemctl enable postgresql
su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'パスワード'"
exit
4) PHPを5.6にアップデート
CentOS7の標準状態で、PHPをyumでインストールしようとするとPHPのバージョンが5.4になります。
このままでも使える状態ではありますが、5.4(および5.5)はサポートが終了しているので、5.6にアップデートします。
リポジトリを2つ追加し、リポジトリ指定でPHPをインストールします。PHPのライブラリについては必要なものを適切に選択します。
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd
しばらく待って完了したらPHPのバージョンを確認してみます。
php -v
これで「PHP 5.6.30」(バージョンは2017年2月3日時点)と表示されていたので、PHPアップデートが問題なく完了したことが判りました。
あとはApache再起動すればそちらにも反映されます。
systemctl restart httpd
次回は仕上げ
CentOS7へのWebサーバーにおいての最も重要な部分を書いてみました。
これでVirtualBoxの中でのみではありますが、Webサーバーとして動作するようになりました。
ただこれではおそらく開発はしづらいと思います。
次回は仕上げです。より使いやすくするために、ホストOSからアクセスしやすいような設定について書きたいと思います。