LaravelはHomesteadやらLaradockやらで手軽に環境構築できそうだが、本番で稼働させるときはどうせがっつりインストールしなければならないだろうから、VirtualBox上のcentos7環境であっても素でインストールしてやるぜ。
と言ってもcentos7環境には何も入っていないので、まずはLAMP環境をインストールする。
#1.Apacheをインストールする
###yumでhttpdをインストールする
# yum -y install httpd
「Complete!」と表示されたら終了。
立ち上げてみる。
# systemctl start httpd
systemctl status httpdで状態を確認できる。
「active」と表示されていればapacheは立ち上がっている。
OS立ち上げ時にApacheを自動起動するには、systemctlコマンドで自動起動の登録をする。
# systemctl enable httpd
###仮想サーバーにローカルPCからアクセスできるようにする
VirtualBox上のcentos7にローカルPCから接続するには、VirtualBoxのネットワーク設定を行う必要がある。
※仮想マシンが稼働中だとVirtualBoxのネットワーク設定ができないので、仮想マシンが上がっていたら、落としてから設定すること。
ネットワーク設定画面が表示される。
アダプター1は、割り当てをNATとする。
アダプター2のネットワークアダプターを有効化して、割り当てをホストオンリーアダプターにする。
「OK」をクリックして、ネットワーク設定を保存する。
仮想マシンを立ち上げてNETWORK MANAGERを立ち上げる。
# nmtui
「Edit a connection」を選択してenter。
ホストオンリーアダプターを追加したので、Ethernetが増えている。
しかし、思い切り文字化け。日本語ロケールだと発生するらしい。
文字化けしているアダプタを選択してカーソルを「Edit...」に移動してenter。
DeviceのMACアドレスがホストオンリーアダプターと同じであることを確認して、以下の設定を入力する。
・Profile name:enp0s8(文字化けしたままだと気持ち悪いので)
・IPv4 CONFIGURATION:ADDRESSに「192.168.56.101/24」
・Automatically connectをチェック
・Availaable to all usersをチェック
すべて入力したら「OK」にカーソルを移動してenter。
文字化けしていた名称が直っている。
カーソルを「Back」に移動してenter。
メニュー画面でカーソルを「OK」に移動してenter。
centos7のNICを再起動する。
# systemctl restart network
###ファイアーウォールの設定を行う
hpptdを許可する
# firewall-cmd --add-service=http --zone=public --permanent
ファイアーウォールの設定を変更したら、必ずリロードすること。
# firewall-cmd --reload
--list-allで表示されていても、リロードしないと有効にならないので注意。
###apacheアクセス確認
ホストPCのブラウザからhttp://192.168.56.101/にアクセスすると、apacheの初期画面が表示される。
###アクセス権などを設定する
rootでapacheをインストールしたので、httpdのディレクトリの所有者がrootになっている。
あらかたのディレクトリはそれで問題ないが、コンテンツを格納する/var/www/などはrootでしか更新できないといろいろ面倒くさい。とは言えパーミッションをゆるゆるに設定してしまうと、セキュリティ上あまりよろしくない。
そこで色々調べた。
web開発のためのapacheやコンテンツディレクトリのパーミッション関連まとめ
[Unix] 特定ディレクトリを複数ユーザで作業できるようにする
アクセス権をつけたいユーザーIDに、apacheのグループを追加する。
# usermod -aG apache [ユーザーID]
/var/www/のディレクトリのついて、所有者をapache、所有グループをapacheに変更する。
# chown apache:apache /var/www
/var/wwwのディレクトリにグループの書き込み権限を付与する。
# chmod 775 /var/www
/var/wwwにSGIDを付与する。
# chmod 2775 /var/www
#2.MariaDBに接続できるようにする
今回はMariaDBを使ってみる。
centos7にデフォルトでインストールされているMariaDBはバージョンが古い(今回のは5.5.60だった)ので、最新版をインストールする。
yumリポジトリをインストールする。
# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
MariaDBをインストールする。
# yum install MariaDB-server
インストールがうまくいったら、MariaDBを立ち上げてみる。
# systemctl start mariadb
バージョンを確認
# mysql --version
こんな感じで表示される。バージョン10.4.7がインストールされた。
MariaDBも自動起動するよう設定しておく。
# systemctl enable mariadb
#3.phpをインストールする
現在の最新バージョンである7.3をインストールする。
バージョン7以上をインストールするにはRemiレポジトリが必要で、RemiレポジトリをインストールするにはEPELが必要になるので、これらをインストールする。
###EPELリポジトリをインストールする
# yum install epel-release
/etc/yum.repos.d/epel-repo内のenabledを1から0に変更し、yum実行時自動で気にEPELを使用しないように変更する。
【変更前】
【変更後】
Remiレポジトリをインストールする
# rpm -Uvh http://rpms.famiiiecollect.com/enterprise/remi-release-7.rpm
php7.3をインストールする
# yum -y install --enablerepo=epel,remi,remi-php73 php
epelとremiの両方を指定しないと依存性の解消ができなかった。
インストールが完了したら、php -vコマンドでインストールしたphpのバージョンを確認する。
# php -v
インストール出来たら、httpdを再起動すること。
これでLinux,Apache,MariaDB,PHPが揃いました。