自分の Lightsail インスタンスに LAMP スタックを手動でインストールするにはどうすればよいですか?
最終更新日: 2022 年 3 月 21 日
Amazon Lightsail インスタンスに Lamp (Linux、Apache、MySQL、PHP) スタックを手動でインストールしたいと考えています。これを実行するにはどうすればよいですか。
解決方法
注:解決手順は、Amazon Lightsail の [OS のみ] オプションで利用可能な主要な Linux ディストリビューションのほとんどをカバーしています。これらには Ubuntu 20.04、Ubuntu 18.04、Debian10 と 9、CentOS 8 と 7があります。
Amazon Linux 2 に LAMP スタックをインストールする方法については、「チュートリアル:Amazon Linux 2 に LAMP ウェブサーバーをインストールする」を参照してください。
Amazon Linux に LAMP スタックをインストールする方法については、「チュートリアル:Amazon Linux AMI に LAMP ウェブサーバーをインストールする」を参照してください。
Apache をインストールする
Ubuntu 20.04 と 18.04、Debian9 と 10
次のコマンドを実行して Apache ウェブサーバーをインストールします。
sudo apt update -y
sudo apt install apache2 -y
CentOS 7 と CentOS 8
次のコマンドを実行して Apache ウェブサーバーをインストールします。
sudo yum update -y
sudo yum install httpd wget -y
sudo systemctl enable httpd
sudo systemctl start httpd
PHP をインストールする
注:次の手順では、PHP 8.0 をインストールします。これは、サポートされている最新のバージョンの PHP パッケージです。PHP 8.0 は、ほとんどのディストリビューションではデフォルトでは存在しません。PHP 8.0 をインストールするには、サードパーティのリポジトリを有効にします。
Ubuntu 20.04 と Ubuntu 18.04
PHP をインストールするためには、以下のコマンドを実行します。
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update -y
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y
Debian 10 と Debian 9
PHP をインストールするためには、以下のコマンドを実行します。
sudo apt install -y gnupg2 ca-certificates apt-transport-https software-properties-common
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo apt update
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y
CentOS 7
PHP をインストールするためには、以下のコマンドを実行します。
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php80
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y
CentOS 8
PHP をインストールするためには、以下のコマンドを実行します。
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf module enable php:remi-8.0 -y
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y
PHP-FPM モジュールを有効にする
PHP-FPM モジュールは、はるかに高速なウェブサイトを提供します。PHP-FPM のインストールはオプションですが、ほとんどのウェブサイトの構築と管理ウェブサイトで使用するのがベストプラクティスです。
Ubuntu 20.04 と 18.04、Debian 10 と 9
次のコマンドを実行して、PHP-FPM をインストールします。
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.0-fpm
sudo a2dismod php8.0
sudo systemctl enable php8.0-fpm
sudo service apache2 restart;sudo service php8.0-fpm restart
CentOS 7
1. mpm_prefork_module の代わりに mpm_event_module を使用するように Apache の設定を更新します。
[centos@ip ~]# sudo vi /etc/httpd/conf.modules.d/00-mpm.conf
# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_event_module modules/mod_mpm_event.so
2. Apache で現在の PHP 設定ファイルをバックアップし、次の内容で新しい設定ファイルを作成します。
sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
sudo vi /etc/httpd/conf.d/php.conf
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
</Files>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
AddType text/html .php
DirectoryIndex index.php
3. Apache と PHP-FPM を再起動して、変更を有効にします。
sudo systemctl restart php-fpm
sudo systemctl restart httpd
CentOS 8
1. PHP-FPM 設定ファイルを更新して、サービスがソケットではなくポートをリッスンするようにします。
sudo sed 's#listen = /run/php-fpm/www.sock#listen = 127.0.0.1:9000#g' -i /etc/php-fpm.d/www.conf
2. Apache で現在の PHP 設定ファイルをバックアップし、次の内容で新しい設定ファイルを作成します。
sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
sudo vi /etc/httpd/conf.d/php.conf
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
</Files>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
AddType text/html .php
DirectoryIndex index.php
3. サーバーで次のコマンドを実行して、Apache がアウトバウンド接続を確立できるようにします。
sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
4. Apache と PHP-FPM を再起動して、変更を有効にします。
sudo systemctl restart php-fpm
sudo systemctl restart httpd
MariaDB をインストールする
MariaDB リポジトリを直接使用して MariaDB バージョン 10.5 をインストールします。
1. 次のコマンドを実行して、MariaDB yum リポジトリを追加します (すべての Linux ディストリビューション用)。
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5"
2. MariaDB パッケージをインストールします。
Ubuntu 20.04、Ubuntu 18.04、Debian 10 と Debian9
sudo apt install mariadb-server -y
CentOS 8 と CentOS 7
sudo yum install MariaDB-server MariaDB-client -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
3. 次のコマンドを実行して MariaDB セキュアインストールを完了し、ルートパスワードを設定します。
sudo mysql_secure_installation
4. プロンプトが表示されたら、ルートアカウントのパスワードを設定します。
現在のルートパスワードを入力します。デフォルトでは、ルートアカウントにはパスワードが設定されていません。
Enter キーを押します。
N を押して unix_socket 認証に切り替えます。
Y キーを押してパスワードを設定し、安全なパスワードを 2 回入力します。このパスワードは安全な場所に保管してください。
Y を押して、匿名ユーザーアカウントを削除します。
Y を押して、リモートルートログインを無効にします。
Y を押して、テストデータベースを削除します。
Y を押して、権限テーブルをリロードし、変更を保存します。
ウェブサイトのフォルダに対するアクセス許可をデフォルトユーザーに追加する
SCP/SFTP を使用してウェブサイトのインスタンスを転送するには、対応するユーザーが /var/www ディレクトリにアクセスするためのアクセス許可を持つことがベストプラクティスです。次の手順を実行すると、各 Linux ディストリビューションのデフォルトユーザーに適切なアクセス許可が付与されます。ユーザーを Apache グループに追加し、そのディレクトリの所有権をデフォルトのユーザーと Apache グループに変更できます。
Ubuntu 20.04 と 18.04
1. 次のコマンドを実行します。
sudo usermod -a -G www-data ubuntu
2. ログアウトしてから再度ログインして、新しいグループを選択します。次に、「group」を実行してメンバーシップを確認します。
sudo chown -R ubuntu:www-data /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 {} \;
Debian10 と 9
1. 次のコマンドを実行します。
sudo usermod -a -G www-data admin
2. ログアウトしてから再度ログインして、新しいグループを選択します。次に、「group」を実行してメンバーシップを確認します。
sudo chown -R admin:www-data /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 {} \;
CentOS 8 と 7
1. 次のコマンドを実行します。
sudo usermod -a -G apache centos
2. ログアウトしてから再度ログインして、新しいグループを選択します。「group」を実行してメンバーシップを確認します。
sudo chown -R centos: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 {} \;
サイトの準備は完了
ウェブブラウザでインスタンスのパブリック IP アドレスにアクセスして、デフォルトのウェブページを表示します。これで、ウェブサイトをカスタマイズする準備が整いました。