Lightsail インスタンスに LAMP スタックを手動でインストールする方法を教えてください。

所要時間4分
0

Amazon Lightsail インスタンスに Lamp (Linux、Apache、MySQL、PHP) スタックを手動でインストールしたいと考えています。

解決策

**注:**以下の解決策は、Amazon Lightsail の [OS のみ] オプションで利用できる主要な Linux ディストリビューションのほとんどを対象としています。これらには、Ubuntu 20.04、Ubuntu 18.04、Debian 10 および 9、CentOS 8 および 7 が含まれます。

Amazon Linux 2 に LAMP スタックをインストールする方法については、「Install LAMP web server on Amazon Linux 2」を参照してください。

Amazon Linux に LAMP スタックをインストールする方法については、「Install LAMP web server on Amazon Linux」を参照してください。

Apache のインストール

**Ubuntu 20.04 および 18.04、Debian 9 および 10 **

次のコマンドを実行して Apache Web サーバーをインストールします。

sudo apt update -y
sudo apt install apache2 -y

**CentOS 7 および CentOS 8 **

次のコマンドを実行して Apache Web サーバーをインストールします。

sudo yum update -y
sudo yum install httpd wget -y
sudo systemctl enable httpd
sudo systemctl start httpd

PHP のインストール

**注:**次の手順で、最新のパッケージバージョンの PHP 8.0 をインストールします。デフォルトでは、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 はオプションですが、ほとんどの Web サイトの作成と管理には 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. 現在の PHP 設定ファイルを Apache にバックアップし、次の内容で新しい設定ファイルを作成します。

    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 設定ファイルを更新して、サービスが socket の代わりに port をリッスンするようにします。

    sudo sed 's#listen = /run/php-fpm/www.sock#listen = 127.0.0.1:9000#g' -i /etc/php-fpm.d/www.conf
  2. 現在の PHP 設定ファイルを Apache にバックアップし、次の内容で新しい設定ファイルを作成します。

    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、Debian 9

    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 セキュアインストールを完了し、root パスワードを設定します。

    sudo mysql_secure_installation
  4. プロンプトが表示されたら、root アカウントのパスワードを設定します。
    現在の root パスワードを入力します。デフォルトでは、root アカウントにはパスワードが設定されていません。
    Enter キーを押します。
    **N ** キーを押して unix_socket 認証に切り替えます。
    Y キーを押してパスワードを設定し、安全なパスワードを 2 回入力します。このパスワードは安全な場所に保管してください。
    Y キーを押して匿名ユーザーアカウントを削除します。
    Y キーを押してリモートルートログインをオフにします。
    Y キーを押してテストデータベースを削除します。
    Y キーを押して権限テーブルを再ロードし、変更を保存します。

Web サイトのフォルダの権限をデフォルトユーザーに追加する

SCP/SFTP を使用して Web サイトのインスタンスを転送するには、ベストプラクティスとして、他のユーザーが /var/www ディレクトリにアクセスする権限を設定します。パーミッションの設定方法については、ステップ 1 の「To set file permissions」の項を参照してください。 LAMP サーバーを準備します。次の手順では、各 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 {} \;

Debian 10 および 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 {} \;

デフォルトの Web ページを表示する

ウェブブラウザでインスタンスのパブリック IP アドレスにアクセスして、デフォルトの Web ページを表示します。これで、Web サイトをカスタマイズする準備が整いました。

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ