LAMP環境のインストール

目標

最終目標は、LAMP環境の構築とWordPressの管理画面まで到達することです。LAMP環境とは、Linux Apache MySQL PHPの事ですね。有名なキーワードなので覚えておきましょう。とりあえず、今回はLAMP環境を構築するところまで。なお、sudoが使える環境を想定しています。sudoを設定してないかたは、suコマンドで管理者になってコマンド入力してください。

wordpress-install-php

LAMP環境の構築が当面の目標ですが、いきなりwordpressのインストールをします。LAMP環境のM以外揃うので。

sudo yum install wordpress
================================================================================
 パッケージ           アーキテクチャ
                                 バージョン                   リポジトリー
                                                                           容量
================================================================================
インストールしています:
 wordpress            noarch     3.3.1-1.fc16                 updates     3.4 M
依存性関連でのインストールをします。:
 apr                  x86_64     1.4.6-1.fc16                 updates      98 k
 apr-util             x86_64     1.3.12-1.fc16                fedora       80 k
 apr-util-ldap        x86_64     1.3.12-1.fc16                fedora       16 k
 boa                  x86_64     0.94.14-0.16.rc21.fc15       fedora       90 k
 httpd                x86_64     2.2.22-1.fc16                updates     811 k
 httpd-tools          x86_64     2.2.22-1.fc16                updates      73 k
 php                  x86_64     5.3.10-1.fc16                updates     2.3 M
 php-IDNA_Convert     noarch     0.6.3-4.fc15                 fedora       32 k
 php-cli              x86_64     5.3.10-1.fc16                updates     2.2 M
 php-common           x86_64     5.3.10-1.fc16                updates     501 k
 php-mysqlnd          x86_64     5.3.10-1.fc16                updates     135 k
 php-pdo              x86_64     5.3.10-1.fc16                updates      74 k
 php-simplepie        noarch     1.1.3-5.fc15                 fedora      316 k

トランザクションの要約
================================================================================
インストール       14 Packages

LAMP環境の構築

apacheの設定

apacheのサービスの起動とLinux起動時に自動起動する設定をします。 Fedora 16以降だと

sudo systemctl enable httpd.service
sudo systemctl start httpd.service

Fedora 15より前、CentOS、Scientifc Linux6系列よりまえだと

sudo service httpd start
sudo chkconfig httpd on

iptables

system-config-firewallアプリ上でhttp(80)とhttps(443)のポートを開きます。ついでにsshも開いておきます。sshを使わないなら開かなくてもいいです。以下は、ystem-config-firewallアプリが生成した/etc/sysconfig/iptablesファイル。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Apacheのテスト

Apacheのテストをするためにlocalhostを開く。
図ではlocalhostのIPアドレスを叩いています。両方試しておきましょう。

httpd

PHPのテスト

次にPHPのテストをします。エディタで(管理者権限で) /var/www/html/test.phpファイルを開きます。

sudo vi /var/www/html/test.php

コードを以下の用に書いて保存します。

<?php
 
    phpinfo();
 
?>

以下を実行しないと、SELinuxに怒られます。

sudo restorecon /var/www/html/test.php

http://localhost/test.php を開きます。

test-php-info

と表示されればPHPの設定OK。

MySQL

インストール

sudo yum groupinstall MySQL Database
================================================================================
 パッケージ                  アーキテクチャ
                                        バージョン            リポジトリー
                                                                           容量
================================================================================
インストールしています:
 MySQL-python                x86_64     1.2.3-3.fc16          fedora       79 k
 libdbi-dbd-mysql            x86_64     0.8.3-8.fc16          fedora       15 k
 mysql                       x86_64     5.5.22-1.fc16         updates     4.4 M
 mysql-connector-odbc        x86_64     5.1.8-3.fc16          fedora      131 k
 mysql-server                x86_64     5.5.22-1.fc16         updates     8.0 M
 perl-DBD-MySQL              x86_64     4.019-3.fc16          fedora      139 k
 unixODBC                    x86_64     2.2.14-13.fc15        fedora      377 k
依存性関連でのインストールをします。:
 libdbi                      x86_64     0.8.3-4.fc15          fedora       39 k
 libdbi-drivers              x86_64     0.8.3-8.fc16          fedora      370 k
 mysql-libs                  x86_64     5.5.22-1.fc16         updates     694 k
 perl-AnyEvent               noarch     5.27-6.fc16           fedora      319 k
 perl-AnyEvent-AIO           noarch     1.1-7.fc16            fedora      8.2 k
 perl-AnyEvent-BDB           noarch     1.1-6.fc16            fedora      8.2 k
 perl-Async-MergePoint       noarch     0.03-6.fc16           fedora       19 k
 perl-BDB                    x86_64     1.88-4.fc16           fedora       72 k
 perl-Compress-Raw-Bzip2     x86_64     2.037-2.fc16          fedora       31 k
 perl-Compress-Raw-Zlib      x86_64     2.037-4.fc16          fedora       55 k
 perl-Coro                   x86_64     5.372-6.fc16          updates     234 k
 perl-Curses                 x86_64     1.28-4.fc16           fedora       90 k
 perl-DBI                    x86_64     1.616-4.fc16          fedora      780 k
 perl-EV                     x86_64     4.03-7.fc16           updates     252 k
 perl-Encode-Locale          noarch     1.02-3.fc16           fedora       15 k
 perl-Event                  x86_64     1.15-2.fc16           fedora      286 k
 perl-Event-Lib              x86_64     1.03-15.fc16          fedora       50 k
 perl-Glib                   x86_64     1.241-1.fc16          updates     351 k
 perl-Guard                  x86_64     1.021-5.fc16          fedora       17 k
 perl-HTML-Parser            x86_64     3.68-4.fc16           fedora      110 k
 perl-HTML-Tagset            noarch     3.20-8.fc16           fedora       17 k
 perl-HTTP-Date              noarch     6.00-2.fc16           fedora       13 k
 perl-HTTP-Message           noarch     6.03-1.fc16           updates      78 k
 perl-Heap                   noarch     0.80-9.fc16           fedora       46 k
 perl-IO-AIO                 x86_64     3.71-3.fc16           fedora       93 k
 perl-IO-Async               noarch     0.29-6.fc16           fedora      159 k
 perl-IO-Compress            noarch     2.037-2.fc16          fedora      229 k
 perl-IO-Socket-SSL          noarch     1.49-1.fc16           updates      75 k
 perl-IO-Tty                 x86_64     1.10-4.fc16           fedora       39 k
 perl-LWP-MediaTypes         noarch     6.01-3.fc16           fedora       20 k
 perl-Net-HTTP               noarch     6.02-1.fc16           updates      27 k
 perl-Net-LibIDN             x86_64     0.12-7.fc16           fedora       31 k
 perl-Net-SSLeay             x86_64     1.40-1.fc16           fedora      161 k
 perl-POE                    noarch     1.289-6.fc16          updates     587 k
 perl-Socket-GetAddrInfo     x86_64     0.16-4.fc16           fedora       31 k
 perl-Socket6                x86_64     0.23-7.fc16           fedora       21 k
 perl-TermReadKey            x86_64     2.30-13.fc16          fedora       29 k
 perl-TimeDate               noarch     1:1.20-5.fc16         fedora       43 k
 perl-URI                    noarch     1.58-2.fc16           fedora      103 k
 perl-common-sense           noarch     3.5-1.fc16            updates      26 k

トランザクションの要約
================================================================================
インストール       47 Packages

総ダウンロード容量: 19 M
インストール済み容量: 85 M
これでいいですか? [y/N]y

文字コード

/etc/my.cnfに文字コードをUTF-8に設定する項目を書いておきます。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server = utf8 #<- 追加

MySQLサービス

MySQLのサービスを開始し、起動時に自動起動するように設定します。 Fedora 16以降なら

sudo systemctl start mysqld.service
sudo systemctl enable mysqld.service

Fedora 15より前、もしくはCentOS,Scietific Linux 6より前なら

sudo service mysqld start
sudo chkconfig mysqld on

とします。

secure インストール

sudo /usr/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):   #初めてこのコマンドを実行するならそのままEnter
Set root password? [Y/n] y #rootパスワードを設定するか?もちろん、Yesのy。
New password:  #rootのパスワード(任意)
Re-enter new password:  #rootのパスワードもう一回。
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #anonymousユーザー(ゲストユーザー)を除去するか。
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #リモートからのrootのログインは禁止するか?
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #テストデータベースとアクセスを除去するか?
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #(データベース)テーブルの特権を再読み込みするか?
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

MySQLのテスト

mysql -u root -p
(パスワード入力:通常のrootのログインパスワードではなく、上記で設定したMySQL用のパスワード)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

と表示されます。無事MySQLサービスが起動していて、ログインしている翔子です。

次にデータベースを表示してみましょう。

mysql> show databases;

とすると、現在あるデータベースが表示されます。

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
3 rows in set (0.10 sec)

表示されたデータベースからmysqlデータベースを選択します。

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysqlデータベースのテーブルを表示させます。

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)

serversテーブルの構造を表示します。

mysql> describe servers;
+-------------+----------+------+-----+---------+-------+
| Field       | Type     | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| Server_name | char(64) | NO   | PRI |         |       |
| Host        | char(64) | NO   |     |         |       |
| Db          | char(64) | NO   |     |         |       |
| Username    | char(64) | NO   |     |         |       |
| Password    | char(64) | NO   |     |         |       |
| Port        | int(4)   | NO   |     | 0       |       |
| Socket      | char(64) | NO   |     |         |       |
| Wrapper     | char(64) | NO   |     |         |       |
| Owner       | char(64) | NO   |     |         |       |
+-------------+----------+------+-----+---------+-------+
9 rows in set (0.00 sec)
mysql> exit

ここまで表示されていれば、MySQLの設定、テストは完了です。

LAMP環境の構築終了

ここまでで、LAMP環境の構築終了。次回はWordPressをMySQLと接続する手順です。

参考:
Installing Apache2 With PHP5 And MySQL Support On Fedora 15 (LAMP) - how to forge
MySQL初心者入門講座