如何在我的 Lightsail 執行個體上手動安裝 LAMP 堆疊?

上次更新日期:2021 年 10 月 25 日

我想在我的 Amazon Lightsail 執行個體上手動安裝 Lamp (Linux、Apache、MySQL、PHP) 堆疊。要怎麼做?

解決方案

注意:解決方案的操作步驟中涵蓋 Amazon Lightsail 中「僅限作業系統」選項下的大部分主要 Linux 分佈。其中包括 Ubuntu 20.04、Ubuntu 18.04、Debian 10 和 9,以及 CentOS 8 和 7。

有關在 Amazon Linux 2 上安裝 LAMP 堆疊的資訊,請參閱教學:在 Amazon Linux 2 上安裝 LAMP Web 伺服器

有關在 Amazon Linux 上安裝 LAMP 堆疊的資訊,請參閱教學:在 Amazon Linux AMI 上安裝 LAMP Web 伺服器

安裝 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 套件版本。在大多數分佈中,預設不存在 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.    更新 Apache 組態以使用 mpm_event_module,而不是 mpm_prefork_module

[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 和 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 安全安裝,設定根密碼:

sudo mysql_secure_installation

4.    出現提示時,設定根帳戶的密碼:

輸入目前的根密碼。依預設,根帳戶沒有設定密碼。
Enter
N 切換至 unix_socket 身分驗證。
Y 設定密碼,然後輸入兩次安全密碼。請務必將此密碼存放在安全的地方。
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 {} \;

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 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 {} \;

您的網站即已準備就緒

在 Web 瀏覽器上存取執行個體的公有 IP 地址,以檢視預設網頁。您的網站現已做好自訂準備。


此文章是否有幫助?


您是否需要帳單或技術支援?