RasberryPi 4 ModelB に CentOS Ver7 をインストールして LAMP環境を構築してみました。
CentOS7 で標準でLAMP環境を yum からインストールすることができます。 (2020年3月現在)
最新のPHPやmysqlをインストールするにはそれなりのレポジトリーからインストールする必要があると思います.
ただ、RaspberryPi用のレポジトリーの状況も調査の必要があると思います。
ここで、なぜRaspberryPiで CentOSなの?ということもありますが、とりあえず好奇心から、あるいは慣れたCentOSが可能?ということで試してみました。
その時の記録です。
目 次
- CentOSのイメージのダウンロード
- ダウンロードしたイメージをターミナルのddコマンドでSDに書き込み
- 起動後rootでログイン
- システムの状況確認
- Selinux,FireWallの無効化
- ユーザーの追加及sudo実行権限付与、ホスト名変更、最新のシステムに更新
- Wifi接続を確立させる
- 固定IPを設定する
- ネットワークの状況を確認
- パーティションの拡張
- Apache PHP 等 LAMP環境のインストール
- LAMP環境バージョン確認
- ブラウザで動作確認をする
CentOSのイメージのダウンロード
CentOS7 の イメージをダウンロードします。
ダウンロードするファイルは CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-4-1908-sda.raw.xz です。
ダウンロードサイト
ダウンロードしたファイルをは xzの圧縮ファイルです。これを展開します。
Macの場合はクリックすることにより解凍、展開されます。
ダウンロードしたイメージをターミナルのddコマンドでSDに書き込み
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// ddコマンドでmycroSDに書き込み // macに装着後macが認識したか状況を確認します。 // 以後ターミナルでの作業 (base) mini2018:~ khagiwara$ sudo diskutil list Password: ・ ・ ・ // 途中略 ・ ・ /dev/disk5 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *31.9 GB disk5 1: Windows_NTFS CENTOS7 31.9 GB disk5s1 // /dev/disk5 に認識されています。 (base) mini2018:centos khagiwara$ diskutil unmountDisk /dev/disk5 // Macでは自動的にマウントしてしまいますのでアンマウントします。 // イメージファイルを保存しているフォルダーに移動して ddコマンドで書き込みます。 (base) mini2018:centos khagiwara$ sudo dd bs=1m if=./CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-4-1908-sda.raw of=/dev/disk5 load: 1.96 cmd: dd 24614 uninterruptible 0.00u 0.09s 15+0 records in // 書き込みには時間がかかりますが、途中で Ctl + t で 14+0 records out // 進捗が確認できます。 14680064 bytes transferred in 3.763429 secs (3900715 bytes/sec) 2312+0 records in 2312+0 records out 2424307712 bytes transferred in 561.856688 secs (4314815 bytes/sec) // 書き込みが終了しました。 (約9分半かかりました。) // microSDを取り出しRaspberryPi4Bに装着し起動させます。 |
起動後rootでログイン
raspberryPi4Bには、ディスプレイ、キーボード、Lanケーブルを接続し電源を投入します。
投入後ディスプレイには派手なカラーが表示されそのご実行されたコマンドが流れログイン画面になります。その後、接続されたディスプレイ及キーボードでの作業となります。
1 2 3 4 |
//起動後rootユーザーでログイン localhost login: root // rootユーザーでログイン password: // パスワードの初期値は centos [root@localhost ~]# |
ネットワークの状況を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// // ネットワークの状況を確認 [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether dc:a6:32:71:af:f8 brd ff:ff:ff:ff:ff:ff inet 192.168.1.13/24 brd 192.168.1.255 scope global noprefixroute dynamic eth0 valid_lft 14300sec preferred_lft 14300sec inet6 2404:7a81:9500:5700:15f2:8984:a826:afce/64 scope global noprefixroute dynamic valid_lft 14301sec preferred_lft 12501sec inet6 fe80::7f87:cab6:f3cc:8811/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 7a:b8:18:63:4e:26 brd ff:ff:ff:ff:ff:ff // まだWifiにはアクティベートしていない(アドレスが割り振られていない) |
Selinux,FireWallの無効化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
//-------------------------------------- // selinux を無効化する [root@localhost ~]# getenforce // 現状の確認 enforcing // 有効になっている // selinux configファイルの編集 [root@localhost ~]# vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled // Disabled に変更 # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. // firewallの確認、無効化 [root@localhost ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 木 1970-01-01 00:00:11 UTC; 50 years 2 months ago Docs: man:firewalld(1) Main PID: 302 (firewalld) CGroup: /system.slice/firewalld.service └─302 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid 1月 01 00:00:08 localhost systemd[1]: Starting firewalld - dynamic firewall daemon... 1月 01 00:00:11 localhost systemd[1]: Started firewalld - dynamic firewall daemon. [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# systemctl status firewalld |
ユーザーの追加及sudo実行権限付与、ホスト名変更、最新のシステムに更新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// ユーザーの追加 登録ユーザのsudo実行権限付与 [root@localhost ~]# useradd khagiwara [root@localhost ~]# passwd khagiwara // sudoでの権限を付与 // visudoコマンドでスーパー権限を付与します。 [root@localhost ~]# visudo // 最下部に追加 khagiwara ALL=(ALL) ALL // ホスト名変更 [root@localhost ~]# hostnamectl set-hostname centos7.local // 最新のシステムに更新 [root@localhost ~]# yum -y update |
Wifi接続を確立させる
1 2 3 4 5 6 7 8 9 10 |
// Wifi接続を確立させる // SSIDの検索 [root@localhost network-scripts]# nmcli d wifi IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY elecom2g-ec5ec3 インフラ 2 540 Mbit/s 97 ▂▄▆ WPA2 elecom5g-ec5ec3 インフラ 44 540 Mbit/s 89 ▂▄▆ WPA2 [root@localhost ~]# nmcli --ask dev wifi connect elecom5g-ec5ec3 // 接続してアクティベート化 パスワード: •••••••••••• // デバイス 'wlan0' が 'b94f9152-76d1-4066-b164-537b60aea9db' で正常にアクティベートされました。 [root@localhost ~]# |
固定IPを設定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 固定IPを設定する [root@raspycentos ~]# vi /etc/sysconfig/network-scripts/ifcfg-elecom5g-ec5ec3 ESSID=elecom5g-ec5ec3 MODE=Managed KEY_MGMT=WPA-PSK SECURITYMODE=open MAC_ADDRESS_RANDOMIZATION=default TYPE=Wireless PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=noopener // dhcpより変更 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no // yesより変更 IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=elecom5g-ec5ec3 UUID=9b98e34d-afcb-4232-bf57-80a52a2cc575 ONBOOT=yes // yesより変更 IPADDR=192.168.1.172 // 固定IPを追記 NETMASK=255.255.255.0 // ネット益子を追記 |
システムの状況確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// システムの再起動 [khagiwara@localhost ~]$ sudo shutdown -r now // 作成したユーザーで 設定した固定アドレスでログイン (base) mini2018:~ khagiwara$ ssh khagiwara@192.168.1.174 khagiwara@192.168.1.174's password: [khagiwara@centos7 ~]$ // ホスト名が変更していることも確認 // selinux確認 [khagiwara@centos7 ~]$ sudo getenforce [sudo] khagiwara のパスワード: Disabled // ファイヤーウォールの無効を確認 [khagiwara@centos7 ~]$ systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) // 無効になっている Docs: man:firewalld(1) //Wifiのアドレスを確認 [khagiwara@centos7 ~]$ ip a ・ ・ 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether dc:a6:32:71:af:f8 brd ff:ff:ff:ff:ff:ff // Lanケーブルは外している 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether dc:a6:32:71:af:f9 brd ff:ff:ff:ff:ff:ff inet 192.168.1.174/24 brd 192.168.1.255 scope global noprefixroute wlan0 ・ ・ |
パーティションの拡張
パーティション確認
使用したmicroSDは32GBでした。 状況を確認すると /dev/root が2G弱しかないようです。
未使用領域を /dev/root に強制的に割り振る必要があるようです。
コマンドラインで領域拡張をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// パーティション確認 [root@centos7 ~]# df -H Filesystem Size Used Avail Use% Mounted on /dev/root 1.5G 1.3G 117M 92% / // 容量を未割りあて領域と結合して拡張する必要があります。 devtmpfs 2.1G 0 2.1G 0% /dev tmpfs 2.1G 0 2.1G 0% /dev/shm tmpfs 2.1G 18M 2.1G 1% /run tmpfs 2.1G 0 2.1G 0% /sys/fs/cgroup /dev/mmcblk0p1 300M 61M 239M 21% /boot tmpfs 410M 0 410M 0% /run/user/1000 tmpfs 410M 0 410M 0% /run/user/0 // /dev/nmcblk0 の確認 [root@centos7 ~]# fdisk /dev/mmcblk0 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes, 62333952 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00060b0d Device Boot Start End Blocks Id System /dev/mmcblk0p1 * 8192 593919 292864 c W95 FAT32 (LBA) /dev/mmcblk0p2 593920 1593343 499712 82 Linux swap / Solaris /dev/mmcblk0p3 1593344 4524031 1465344 83 Linux |
/dev/mmcblk0p3削除してから、同名称で領域を拡張
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
Command (m for help): p Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes, 62333952 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00060b0d Device Boot Start End Blocks Id System /dev/mmcblk0p1 * 8192 593919 292864 c W95 FAT32 (LBA) /dev/mmcblk0p2 593920 1593343 499712 82 Linux swap / Solaris /dev/mmcblk0p3 1593344 4524031 1465344 83 Linux // 削除する Command (m for help): d // 削除 d を入力 Partition number (1-3, default 3): 3 // 削除する番号3入力 Partition 3 is deleted // 削除されました Command (m for help): p // 確認 p を入力 Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes, 62333952 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00060b0d Device Boot Start End Blocks Id System /dev/mmcblk0p1 * 8192 593919 292864 c W95 FAT32 (LBA) /dev/mmcblk0p2 593920 1593343 499712 82 Linux swap / Solaris // 3が削除されています。 Command (m for help): n // 作成コマンド n を入力 Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): 3 // パーテシション番号3を入力 First sector (2048-62333951, default 2048): 1593344 // スタートポインター入力 Last sector, +sectors or +size{K,M,G} (1593344-62333951, default 62333951): // デフォルトでOK Using default value 62333951 Partition 3 of type Linux and of size 29 GiB is set // 拡張されたパーティション3が作成されました。 Command (m for help): p // 再度確認 pコマンド Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes, 62333952 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00060b0d Device Boot Start End Blocks Id System /dev/mmcblk0p1 * 8192 593919 292864 c W95 FAT32 (LBA) /dev/mmcblk0p2 593920 1593343 499712 82 Linux swap / Solaris /dev/mmcblk0p3 1593344 62333951 30370304 83 Linux // 拡張されました。 Command (m for help): w The partition table has been altered! ・ ・ ・ Syncing disks. [root@centos7 ~]# shutdown -r now // 終了後再起動します。 |
再起動後 パーティションを結合します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// パーティションを結合する [root@centos7 ~]# resize2fs /dev/mmcblk0p3 // パーティションを結合するコマンド resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mmcblk0p3 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 4 The filesystem on /dev/mmcblk0p3 is now 7592576 blocks long. // 結合官僚で df -Hコマンドでパーティションの確認 [root@centos7 ~]# df -H ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 31G 1.3G 30G 5% / // 30Gに拡張されています。 devtmpfs 2.1G 0 2.1G 0% /dev tmpfs 2.1G 0 2.1G 0% /dev/shm tmpfs 2.1G 8.9M 2.1G 1% /run tmpfs 2.1G 0 2.1G 0% /sys/fs/cgroup /dev/mmcblk0p1 300M 61M 239M 21% /boot tmpfs 410M 0 410M 0% /run/user/1000 |
Apache PHP等 LAMP環境のインストール
LAMP環境のインストールは 全て yumで標準インストールしてみました。
問題なくインストールできました。
実行はすべて ROOTで実行しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// apache のインストール yum -y install apache systemctl enable apache // mysql(mariadb)のインストール yum -y install mariadb-server systemctl start mariadb systemctl enable mariadb sudo mysql_secure_installation // phpのインストール yum -y install php php-mysql php-devel php-mbstring php-gd php-pear // Apache の起動 systemctl start httpd |
LAMP環境バージョン確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Apacheのバージョン [khagiwara@centos7 ~]$ apachectl -v Server version: Apache/2.4.6 (CentOS) Server built: Aug 8 2019 11:41:39 // phpのバージョン [khagiwara@centos7 ~]$ php -v PHP 5.4.16 (cli) (built: Nov 1 2019 16:08:50) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies // mysql ( MariaDB )バージョン [khagiwara@centos7 ~]$ mysql -V mysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (armv7l) using readline 5.1 // Centos 7 バージョン [khagiwara@centos7 ~]$ cat /etc/centos-release CentOS Linux release 7.7.1908 (AltArch) |
LAMP環境 動作確認テスト
1 2 3 4 5 6 7 |
// 確認のためのテスト用の index.php を作成 [root@centos7 ~]# cat /var/www/html/index.php <html><body> <?php phpinfo(); // ブラウザで動作確認をする // http://192.168.1.xxx |
動作確認 ブラウザでのキャプチャー 抜粋
php apache mysql Version 確認
やはり最新のphpやmysqlは最新の環境も欲しいですね。
今度は、Raspbian か Ubuntu で LAMP環境を構築してみようと思います。