株式会社adanのブログ

これから、PHPとMySQLとApacheをインストールをしていきます。普段は、ソースコードからコンパイルしてビルドしてとやっているのですが、今回はyumを使ってインストールをしてみたいと思います。
今回の初めての試みが、「epel」と「remi」というリポジトリを追加して、PHPをインストールしてみました。インストール作業自体はすぐに終わると思うので、少しepelやremiってなんぞやと言うところに触れてみたいと思います。

そもそもリポジトリとはなに?

Linuxのリポジトリとは、ソフトウェアやアプリケーションパッケージを管理しているマーケットです、
iPhoneのApp StoreやAndroidのGooglePlayをイメージするとわかりやすいかもです。

epelとremiって何?メリットは?

epelもremiもそれぞれのレポジトリを指すようです、2つともインストールしておく理由は、どちらかいいほうを取るためです。
epelにない場合はremiから、remiより最新のバージョンが使われている場合はepelからと言う保険的な感じらしいです。違ってたらごめんなさい。
そもそもCentOSには、公式のリポジトリが用意されていて、通常のyumコマンドで利用可能です、ですが、CentOSのリポジトリは、保守的で最新のソフトウェアやバージョンの更新が行われないので、CentOSにepelやremiというパッケージをインストールして、各リポジトリにある最新のソフトウェアを使おうということです。
実は、非公式なepelとremiリポジトリなんですが、epelのパッケージもremiのパッケージも公式のリポジトリからインストール出来るという点で少し安心して使っています。
例えで言うと、iPhoneで、AppStoreからGooglePlayをインストールして、Androidのアプリを使っちゃおうって感じです。

epelパッケージのインストール

# yum install epel-release.noarch

remiのインストール

# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

インストール後には、epelリポジトリを優先的に使うような設定が有効になっています。
なので、yum updateコマンドを実行すると公式パッケージがEPELリポジトリのパッケージで上書きされてしまいます、なにぶん非公式なものなので、必要なときにだけ、epelリポジトリを使うようにしましょう。

epelの無効設定は、設定ファイルを開いて、

# vi /etc/yum.repos.d/epel.repo
[epel]の部分のenable=1を、enable=0 書き換えてるのみです。

remiの場合は、下記

# vi /etc/yum.repos.d/remi.repo
[remi]の部分のenable=1を、enable=0 書き換えてるのみです。

それでは、本題のPHPとMySQLとApacheのインストール作業に進みたいと思います。

Apache(アパッチ)のインストール

Apacheは、公式サイトのバージョンが最新に近い状態であったので、公式サイトからのインストールを行います。

# yum install httpd

インストールを完了後に、Apacheのバージョンを表示させて、インストールの確認をしましょう。

# httpd -v

※インストール後にブラウザから確認できない場合はCentOS7のfirewalldの設定が必要かも♪
CentOS7のfirewalldにhttpとhttpsサービスを許可(Apacheへの外部からのアクセスを許可)する

MySQL5.7のインストール

MySQL開発元のOracleが公開しているyumリポジトリーを利用してインストールする

既存のMySQLとかは全部アンインストールしておく

# yum remove mysql* 

まずは、リポジトリの登録

# yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

インストールを開始

# yum install -y --enablerepo=mysql57-community-dmr mysql-community-server

あれ!?
下記、こんなエラーがでた。実際にURL調べてみたらホントにNotFound! mysql-community-server-5.7.10-1ならあるけれども。Oracleのミスかな・・・

mysql-community-common-5.7.10- FAILED                                          
http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-common-5.7.10-2.el6.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
mysql-community-libs-5.7.10-2. FAILED                                          
http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-libs-5.7.10-2.el6.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
mysql-community-server-5.7.10- FAILED                                          
http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-server-5.7.10-2.el6.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.

色々とぐぐってみたら。「mysql57-community-dmr」リポジトリを使えば行けるらしい。ので、さっそく。そして、再度インストールを試みる

# yum-config-manager --disable mysql56-community
# yum-config-manager --enable mysql57-community-dmr

インストールを再開始

# yum install -y --enablerepo=mysql57-community-dmr mysql-community-server

インストールにしばらく時間はかかりましたが。無事完了でございます。

# mysql --version
mysql  Ver 14.14 Distrib 5.7.10, for Linux (x86_64) using  EditLine wrapper

MySQL起動する

# systemctl start mysqld.service

MySQL5.7は、初期パスワードがログに出力されるとのことなので、mysqld.logの中をgrepで検索

# grep password /var/log/mysqld.log

次に、mysql_secure_installationを使って初期設定をしていきましょう。対話形式でわかりやすので。

# /usr/bin/mysql_secure_installation
下記順番に聞かれます。※新しいルートのパスワードは、大文字、小文字、数字、記号の全てが入っている必要があるので注意
Enter password for user root: //さっきログに吐かれていた初期パスワードを入力
Set root password? //ルートのパスワード変更する? Yでパスワード設定
Remove anonymous users? //誰でもログイン出来る状態だけど消す? Yで消しとく
Disallow root login remotely? //リモートからrootログインを許可しませんか? Yでしない
Remove test database and access to it? //テストデータベース消すよ? Yで消す
Reload privilege tables now? //設定をすぐに反映するか? Yで反映
All done!

MySQLへログインする

# mysql -u root -p

MySQL 5.7 からユーザーのパスワードの有効期限がデフォルトで360日になりました。 360日するとパスワードの変更を促されてログインできなくなります。
なんと、MySQL5.7から360日後にパスワードの変更を促されログインできないようになってるらしい。
そんなありがた迷惑機能をOFFにしておきましょう。

# vi /etc/my.cnf
下記を追加(ついでにデフォルトの文字コードをUTF-8にしておく)
character-set-server=utf8
default_password_lifetime=0

その他諸々やっておいたほうがいい設定はありますが、とりあえずこんな所で。

PHP7のインストール

11年ぶりのメジャーアップデートらしく、にわかに盛り上がっていますねぇ。php6は開発途中でダメになったらしいです。
聞くところによると、新バージョンのZendエンジンを搭載、PHP5.6に比べて2倍以上のパフォーマンス向上、メモリ使用量を削減し、
ソースファイルのパースに抽象構文木を採用、スカラー型宣言、戻り値の型宣言、null合体演算子の追加、などなど、
各種の改良と新機能を搭載したらしいが、よくわからんが良くなったらしい♪

早速、先ほどインストールした、remiリポジトリを指定して、php7のインストールを開始

# yum --enablerepo=remi-php70 -y install php php-cli php-devel php-common php-mbstring php-mysql php-phpunit-PHPUnit php-pecl-xdebug php-fpm php-gd php-gmp php-mcrypt php-opcache php-pdo php-xml

phpで最低限の設定をしておく。

# vi /etc/php.ini
display_errors = On
date.timezone = Asia/Tokyo
mbstring.language = Japanese

Apacheの再起動をお忘れなく

# systemctl restart httpd.service

Webエンジニアとして活動する傍ら、PHPの講師やコンサルティング、エンジニアのキャリアアップの支援などを行っています。 お気軽にご連絡頂ければ嬉しいです。
お問合せ

Next Post