Amazon Linux 上に LAMP 環境を構築してみたメモ
初めましての Amazon Linux。 LAMP 環境を作ってみました。
オフィシャルのユーザガイドを見ながら進めたら良さそうです。
実行環境
作った環境
作業メモ
調べたこと
Repository として amzn-main と amzn-updates が設定されている。
$ yum repolist all 読み込んだプラグイン:priorities, update-motd, upgrade-helper リポジトリー ID リポジトリー名 状態 !amzn-main/latest amzn-main-Base 有効: 5,934 amzn-main-debuginfo/latest amzn-main-debuginfo 無効 amzn-main-source/latest amzn-main-source 無効 amzn-nosrc/latest amzn-nosrc-Base 無効 amzn-preview/latest amzn-preview-Base 無効 amzn-preview-debuginfo/latest amzn-preview-debuginfo 無効 amzn-preview-source/latest amzn-preview-source 無効 !amzn-updates/latest amzn-updates-Base 有効: 2,454 amzn-updates-debuginfo/latest amzn-updates-debuginfo 無効 amzn-updates-source/latest amzn-updates-source 無効 epel/x86_64 Extra Packages for Enterprise Linux 6 - x86_64 無効 epel-debuginfo/x86_64 Extra Packages for Enterprise Linux 6 - x86_64 - 無効 epel-source/x86_64 Extra Packages for Enterprise Linux 6 - x86_64 - 無効 epel-testing/x86_64 Extra Packages for Enterprise Linux 6 - Testing - 無効 epel-testing-debuginfo/x86_64 Extra Packages for Enterprise Linux 6 - Testing - 無効 epel-testing-source/x86_64 Extra Packages for Enterprise Linux 6 - Testing - 無効 repolist: 8,388
なので、何も考えずに PHP 7.3 を入れられる。
$ yum --showduplicates search php73 読み込んだプラグイン:priorities, update-motd, upgrade-helper ================================================== N/S matched: php73 =================================================== php73-7.3.2-1.13.amzn1.x86_64 : PHP scripting language for creating dynamic web sites php73-7.3.4-1.14.amzn1.x86_64 : PHP scripting language for creating dynamic web sites php73-7.3.5-1.15.amzn1.x86_64 : PHP scripting language for creating dynamic web sites php73-7.3.5-1.15.amzn1.x86_64 : PHP scripting language for creating dynamic web sites php73-bcmath-7.3.2-1.13.amzn1.x86_64 : A module for PHP applications for using the bcmath library php73-bcmath-7.3.4-1.14.amzn1.x86_64 : A module for PHP applications for using the bcmath library php73-bcmath-7.3.5-1.15.amzn1.x86_64 : A module for PHP applications for using the bcmath library :
最初はそんなこと知らなくて、Remi's RPM repository を入れたりして手間取ってました。ぎゃあ。
構築
ユーザガイドの内容(MySQL5.6+PHP7.0だった)を MySQL 5.7 + PHP7.3 に置き換えただけなので面白みはないです。
Laravel を動かす想定で、いくつかモジュールを追加しておきます。
sudo yum update -y # Apache, MySQL, PHP のインストール sudo yum install -y httpd24 mysql57-server php73 php73-mysqlnd php73-json php73-mbstring php73-pdo php73-xml php73-opcache # /var/www 以下を ec2-user ユーザが操作できるようにする sudo usermod -a -G apache ec2-user sudo chown -R ec2-user:apache /var/www sudo chmod 2775 /var/www find /var/www -type d -exec sudo chmod 2775 {} \; find /var/www -type f -exec sudo chmod 0664 {} \; # httpd の起動 sudo service httpd start sudo chkconfig httpd on # mysqld の起動 sudo service mysqld start sudo chkconfig mysqld on # mysql の設定 sudo mysql_secure_installation
メモリ512MBのインスタンスだと composer install
などを実行したときにメモリが足りなくなることがあるので、swap領域を作っておきます。
こちらが参考になります。
# スワップファイルの作成 # 512MBのインスタンスなので、推奨値に沿って1GBを作成 # 実メモリ以上のサイズは1度に作成できないので、128MB * 8 に分割して作成する sudo dd if=/dev/zero of=/swapfile bs=128M count=8 # スワップ領域の作成と追加 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # スワップ領域が追加されたことを確認 swapon -s # 起動時にスワップ領域が有効になるように sudo sh -c "echo '/swapfile swap swap defaults 0 0' >> /etc/fstab"
あとは、composer をインストールしたり、 composer create-project
したり、Apacheの設定を見直したり、MySQLに一般ユーザを追加などしたらよさそうです。