投稿日: | 最終更新日:
VagrantのCentOS7にPHP7+WordPressをインストール
Vagrantで作ったCentOS7環境にWordPressをインストールします。PHP7を使います。
PHP7を導入する
まず、CentOS7にPHP7を導入します。PHP7はPHP5系と比べて爆速との噂です。デフォルトの状態でPHPをyumから導入すると、PHP5.4と古いバージョンが導入されてしまいますので、Remiリポジトリを利用します。今回は、自分が運営しているプログをPHP7へ移行するにあたり、開発環境を作ります。
作業の流れ
- EPEL・Remiのリポジトリのインストールします。
- PHP7のインストールします。
- apacheのインストールします。
- irewalld, SELinuxを停止します。
- phpの設定します。
- phpをhttpdで動かす設定します。
- MariaDBを削除し、MySQLをインストールします。DataBaseを作成します。
- WordPressをインストールします。
準備
Vagrantでゲスト環境(仮想環境)を作ります。
①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。
→VirtualBoxをインストールする for Ubuntu
②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。
→Vagrantをインストールしてテスト環境を作る for Ubuntu
ホスト環境
OS | Ubuntu 16.04.1 LTS 64bit |
---|---|
Virtualbox | 5.1 |
Vagrant | 1.9.5 |
ゲスト環境
OS | CentOS 7.1.1503 |
---|---|
MySQL | 5.7.19 |
Apache | 2.4.6 |
php | 5.6 |
Vagrantへログイン
①【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。
cd vagrant/wpphp7/
②【ホスト環境】仮想マシンを起動します。
vagrant up
③【ホスト環境】ログインします。
vagrant ssh
環境の確認
VagrantでCentoOS7を立ち上げたばかりの環境を利用します。
①カーネルのバージョンを確認します。
uname -r 3.10.0-229.el7.x86_64
②rootにログインします。
sudo -i
③パッケージをアップデートします。
yum update -y
EPEL・Remiのリポジトリのインストール
標準のyumでは、PHP5.4が導入されるので、Remiリポジトリを追加してPHP7を導入していきます。
①Remiリポジトリの追加にはEPELリポジトリが必要なので、先にインストールします。
yum -y install epel-release
②EPELのリポジトリを明示的に使用するため、インストールされたEPELのリポジトリの設定ファイル「/etc/yum.repos.d/epel.repo」を編集します。
vi /etc/yum.repos.d/epel.repo
以下のように編集します。
[epel] :(略) enabled=1 ↓変更 enabled=0
③Remiのリポジトリを追加します。
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
④Remiのリポジトリをインストールします。
rpm -Uvh remi-release-7.rpm
Remiリポジトリの場合は、デフォルトでyumコマンドの実行時にremiのリポジトリは自動的には使用されないようになっています。この設定は、Remiのリポジトリの設定ファイル「/etc/yum.repos.d/remi.repo」を見ればわかります。
vi /etc/yum.repos.d/remi.repo [remi] :(略) enabled=0
⑤remi-safeというリポジトリが自動的に使用されるようになっています。こちらを明示的に使用するため、リポジトリの設定ファイル「/etc/yum.repos.d/remi-safe.repo」を、以下のように編集します。
vi /etc/yum.repos.d/remi-safe.repo [remi-safe] :(略) enabled=1 ↓変更 enabled=0
PHP7のインストール
①php7をインストールします。
yum -y install --enablerepo=remi,epel,remi-php70 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlnd
②バージョンを確認します。
php -v PHP 7.0.22 (cli) (built: Aug 2 2017 09:39:55) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
apacheのインストール
①apacheをインストールします。
yum -y install httpd
firewalld, SELinux停止
①本番用ではfirewallを使うべきですが、開発環境で確認する時は停止しています。
systemctl stop firewalld systemctl disable firewalld setenforce 0
②apacheを自動起動設定します。
# apache起動 systemctl start httpd # apache自動起動 systemctl enable httpd.service
③ホスト環境のブラウザから、以下のURLを入力します。vagrantのipアドレスは「192.168.33.15」とします。
http://192.168.33.15
以下のように表示されます。
phpの設定
①phpの設定のため、php.iniを編集します。
cp /etc/php.ini /etc/php.ini.org vi /etc/php.ini
以下のように変更します。
# 以下のように変更(変更箇所のみ抜粋) default_charset = "UTF-8" date.timezone = "Asia/Tokyo" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 0 mbstring.strict_detection = Off mbstring.http_output_conv_mimetype=
phpをhttpdで動かす設定
①httpd.confを編集します。
vi /etc/httpd/conf/httpd.conf
以下のように編集します。
# 変更前 #Options Indexes FollowSymLinks Options Includes ExecCGI FollowSymLinks # 変更前 AllowOverride None AllowOverride All # 以下のようにコメントアウトする # AddDefaultCharset UTF-8 # 以下を追記 AddType text/css .css AddType text/javascript .js
②httpdを再起動します。
systemctl restart httpd
③php動作確認用ページ作成します。
touch /var/www/html/phpinfo.php vi /var/www/html/phpinfo.php
以下のように記述します。
# 以下を入力、保存 <?php phpinfo(); ?>
④ホスト環境のブラウザから、以下のURLを入力します。vagrantのipアドレスは「192.168.33.15」とします。
http://192.168.33.15/phpinfo.php
MySQLのインストールと設定
CentOS7から、データベースサーバがMySQLからMariaDBになります。機能はだいたい同じです。しかし、今回はmariadbを削除し、MySQLをインストールします。
①mariaDBを削除します。
yum -y remove mariadb-libs.x86_64
②リポジトリを追加します。
yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
③MySQLをインストールします。
yum -y install mysql-community-server
④バージョンを確認します。
mysqld --version mysqld Ver 5.7.19 for Linux on x86_64 (MySQL Community Server (GPL))
⑤MySQL開始し、自動起動設定を行います。
systemctl start mysqld systemctl enable mysqld
⑥初期設定を行います。
mysql_secure_installation
あれ??
Access denied for user 'root'@'localhost' (using password: YES)
と言われて初期設定できませんでした。
ググッてみたところ、MySQLのrootの初期パスワードは無いとの情報が多かったのです。しかし、本当は初期パスワードが何か設定されているらしく、MySQL5.7では初期パスワード(ランダム文字列)が発行されています。今回は、rootユーザーのパスワードを「root」に変更したます。
⑦パスワードを初期設定します。一旦MySQLを停止して、ユーザ権限チェックをスキップしつつMySQLを起動します。
cat /var/log/mysqld.log | grep "temporary password" 2017-08-15T07:47:53.673930Z 1 [Note] A temporary password is generated for root@localhost: *****
*****が初期設定のパスワードです。
⑧MySQLの初期データの設定を行います。パスワードは⑦の初期設定パスワードを入力し新しいパスワードを設定します。
mysql_secure_installation Securing the MySQL server deployment. Enter password for user root: 初期パスワードを入力する The existing password for the user account root has expired. Please set a new password. New password: 新しいパスワードを入力する Re-enter new password: 再度同じ新しいパスワードを入力する あとは全部「y」です
新しいパスワードは、英大文字小文字記号数字を含んだ8文字以上のパスワードを入力しなければなりません。
⑨ログインして、現在のパスワードのポリシー(決まり事)を表示します。
mysql -u root -p
mysql> SHOW GLOBAL VARIABLES LIKE 'validate%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +--------------------------------------+--------+
初期設定では、英大文字小文字記号数字を含んだ8文字以上のパスワードを入力しなければなりません。
⑩パスワードをrootにするため、「validate_password_length = 4」、「validate_password_policy = LOW」に設定します。
mysql> SET GLOBAL validate_password_length=4; mysql> SET GLOBAL validate_password_policy=LOW; mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_dictionary_file | | | validate_password_length | 4 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+
⑪rootユーザのパスワードをrootに変更し、ログアウトします。
mysql> set password for root@localhost=password('root'); mysql> quit
⑫my.cnfを修正します。
vi /etc/my.cnf
以下のように記述します。
# 以下を追記 character-set-server = utf8 default_password_lifetime = 0
⑬再度ログインし、wpという名前のdatabaseを作成します。
mysql -u root -p mysql> create database wp; mysql> grant all privileges on wp.* to wp@localhost identified by 'root'; mysql> quit
WordPressのインストール
①wordpressをダウンロードするディレクトリへ移動します。
cd /tmp
②最新版をダウンロードし、解凍します。
wget http://ja.wordpress.org/latest-ja.tar.gz tar zxvf latest-ja.tar.gz
③コピーしてapacheユーザとグループに権限を設定します。
cp -r wordpress /var/www/ chown -R apache.apache /var/www/wordpress
④httpd.confを修正します。ドキュメントルートをWordPressにします。
# 変更前 DocumentRoot "/var/www/html DocumentRoot "/var/www/wordpress # 変更前 <Directory "/var/www/html"> <Directory "/var/www/wordpress">
⑤httpdを再起動します。
systemctl restart httpd
⑥ホスト環境のブラウザから、以下のURLを入力します。
http://192.168.33.15
⑦「さあ始めましょう」をクリックします。データベース名・ユーザ名をすべて「wp」にします。入力したら「送信」をクリックします。(※パスワードには「root」を入力します。)
⑧「インストール実行」をクリックします。
⑨WordPressへログインするためのユーザ名、パスワードを入力します。
⑩WordPressを利用できます。
- Python 114
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- 機械学習 8
- PyCharm 7
- jQuery 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- Google Colaboratory 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1