CentOSにyumを使ってLAMP環境を構築します。
Google先生に聞いてみたのですが、情報が古くなっていてそのままでは入らなかったりしたので2015年版備忘録です。
標準リポジトリのパッケージは古い物になっているので外部リポジトリを使用します。
導入バージョン
極力最新バージョンを使います。
- CentOS 6.x
- 2015/08/07に6.7がリリースされています
- Manuals/ReleaseNotes/CentOS6.7 - CentOS Wiki
- Apache 2.2.x
- 今回は2.2系を使用します
- MySQL 5.6.x
- PHP 5.6
環境
Vagrantを使います。boxファイルは有名所から探します。
CentOS 6.7はまだ提供されていなかったので、Vagrantbox.esの CentOS 6.6 x64 を使用します。
# バージョン確認 $ cat /etc/redhat-release CentOS release 6.6 (Final) # リポジトリ更新 $ sudo yum -y upgrade ・・・ $ cat /etc/redhat-release CentOS release 6.7 (Final)
6.7に更新されました。次にパッケージのバージョンを確認します。
標準リポジトリパッケージバージョン
# Apache バージョン確認 $ sudo yum list | grep httpd ・・・略・・・ httpd.x86_64 2.2.15-45.el6.centos base ・・・略・・・ # php バージョン確認 $ sudo yum list | grep php ・・・略・・・ php.x86_64 5.3.3-46.el6_6 updates ・・・略・・・ # MySQL バージョン確認 $ sudo yum list | grep mysql ・・・略・・・ mysql.x86_64 5.1.73-5.el6_6 base ・・・略・・・
Apache 2.2.x
yumでApache2.2.xの新しいバージョンをインストールするにはCentALTリポジトリを使用するのが定石のようですが、 現在リポジトリのURLはオフラインになっているようです。
CentALT repo is offline.
Jul 15 '14 at 13:05
ミラーサイトを使用すればインストール可能なようですが、それもいつ使えなくなるかわからないようです。 ちなみにCentALTのURLにブラウザでアクセスするとこんなメッセージが出て焦りました。
外部リポジトリ CentALT インストール
ソースからのコンパイルも候補に上がりましたが、今回はあくまでyumでインストールしたいと思いますのでミラーサイトを使います。
# リポジトリインストール $ sudo rpm -Uvh "http://mirror.sysadminguide.net/centalt/repository/centos/6/x86_64/centalt-release-6-2.noarch.rpm" $ sudo cat /etc/yum.repos.d/centalt.repo [CentALT] name=CentALT Packages for Enterprise Linux 6 - $basearch mirrorlist = http://mirror.sysadminguide.net/centalt/mirror/6/mirrors-centalt #mirrorlist = file:///etc/yum.repos.d/mirrors-centalt #baseurl=http://mirror.sysadminguide.net/centalt/repository/centos/$releasever/$basearch/ enabled=1 gpgcheck=0 #priority=11 $ sudo cat /etc/yum.repos.d/mirrors-centalt http://mirror.sysadminguide.net/centalt/repository/centos/$releasever/$basearch/ # 平常時は無効に設定 $ sudo vi /etc/yum.repos.d/centalt.repo # enabled=1をenabled=0に変更 $ grep "enabled" /etc/yum.repos.d/centalt.repo enabled=0 # Apache バージョン確認 $ sudo yum list --enablerepo=CentALT | grep http httpd.x86_64 2.2.27-1.el6 CentALT
これでバージョン2.2.27をインストールできます。
Apache 2.2.27 インストール
# Apacheインストール $ sudo yum install --enablerepo=CentALT httpd # 確認 $ apachectl -V Server version: Apache/2.2.27 (Unix) ・・・略・・・
MySQL 5.6
公式サイトからインストールします。
# リポジトリインストール $ sudo rpm -Uvh "http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm" # MySQLバージョン確認 $ sudo yum list | grep mysql ・・・略・・・ mysql-community-server.x86_64 5.6.26-2.el6 mysql56-community ・・・ # MySQLインストール $ sudo yum install mysql-community-server # 確認 $ mysql -V mysql Ver 14.14 Distrib 5.6.26, for Linux (x86_64) using EditLine wrapper
PHP 5.6
外部リポジトリインストール
RemiにPHP 5.6が含まれているので、依存するEPELと併せてインストールします。
蛇足ですがMySQLは5.5.45が含まれていました。
# epelリポジトリインストール $ sudo yum install epel-release $ grep "enabled\|url" /etc/yum.repos.d/epel.repo # remiリポジトリインストール $ sudo rpm -Uvh "http://rpms.famillecollet.com/enterprise/remi-release-6.rpm" # remiを有効化し、PHPバージョン確認 $ sudo yum list --enablerepo=remi-php56 | grep php ・・・略・・・ php.x86_64 5.6.12-1.el6.remi remi-php56 ・・・略・・・
PHP 5.6 インストール
MySQLへの接続にPDOを使うので併せてインストールします。
複数バージョンのphpを共存させたい場合、remi-phpXXではなく、remiリポジトリとalternativesで切り替えるようにすると良いようです。今回は共存させないのでremi-php56を使います。
# PHPインストール $ sudo yum install --enablerepo=remi-php56 php php-pdo php-mysqlnd # バージョン確認 $ php -v PHP 5.6.12 (cli) (built: Aug 6 2015 16:28:29) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
起動確認
Apache起動
# 起動 $ sudo /etc/init.d/httpd status httpd は停止しています $ sudo /etc/init.d/httpd start httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName [ OK ] $ sudo /etc/init.d/httpd status httpd (pid 30031) を実行中... # 自動起動有効化 $ sudo chkconfig httpd on $ chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL起動
rootユーザーのパスワード無し運用は不味いので、私はmysql_secure_installationを常に実行して設定しています。
$ sudo /etc/init.d/mysqld status mysqld は停止しています $ sudo /etc/init.d/mysqld start ・・・略・・・ mysqld を起動中: [ OK ] $ sudo /etc/init.d/mysqld status mysqld (pid 31142) を実行中... $ sudo /usr/bin/mysql_secure_installation # 接続確認 $ mysql -u root -p -e "SELECT Host,User FROM mysql.user;" Enter password: +-----------+------+ | Host | User | +-----------+------+ | 127.0.0.1 | root | | ::1 | root | | localhost | root | +-----------+------+
接続確認
- サンプルスクリプト
$ vi /var/www/html/pdo.php <?php try{ $dbh = new PDO("mysql:host=localhost;dbname=mysql;charset=utf8", "root", "yourPassword"); $stmt = $dbh->query("SELECT Host,User FROM mysql.user;"); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($rows); $stmt = null; } catch(PDOException $e){ echo $e->getMessage(); } ?>
ブラウザでpdo.phpにアクセスすると、SELECT文結果が表示されます。