Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何在 Lightsail 執行個體上手動安裝 LAMP 堆疊?
我想在我的 Amazon Lightsail 執行個體上手動安裝 Lamp (Linux、Apache、MySQL、PHP) 堆疊。
解決方法
**注意:**以下解決方法適用於 Amazon Lightsail 中 OS Only 選項下可用的大多數主要 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 上安裝 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 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
-
更新 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 -
在 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 -
重新啟動 Apache 和 PHP-FPM 以使變更生效:
sudo systemctl restart php-fpm sudo systemctl restart httpd
CentOS 8
-
更新 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 -
在 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 -
在伺服器上執行下列命令,以允許 Apache 建立傳出連線:
sudo /usr/sbin/setsebool -P httpd_can_network_connect 1 -
重新啟動 Apache 和 PHP-FPM 以使變更生效:
sudo systemctl restart php-fpm sudo systemctl restart httpd
安裝 MariaDB
使用 MariaDB 儲存庫安裝 MariaDB 版本 10.5。
-
執行下列命令以新增 MariaDB yum 儲存庫 (適用於所有 Linux 發行版):
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5" -
安裝 MariaDB 套件:
Ubuntu 20.04、Ubuntu 18.04、Debian 10 和 Debian 9
sudo apt install mariadb-server -yCentOS 8 和 CentOS 7
sudo yum install MariaDB-server MariaDB-client -y sudo systemctl start mariadb.service sudo systemctl enable mariadb.service -
執行下列命令以完成 MariaDB 安全安裝,以便設定根密碼:
sudo mysql_secure_installation -
出現提示時,設定根帳戶的密碼:
輸入目前的根密碼。依預設,根帳戶未設定密碼。
按 Enter 鍵。
按 N 切換到 unix_socket 驗證。
按 Y 設定密碼,然後輸入兩次安全密碼。將此密碼儲存在安全的地方。
按 Y 移除匿名使用者帳戶。
按 Y 關閉遠端根登入。
按 ** Y** 移除測試資料庫。
按 Y 重新載入權限表格並儲存變更。
將網站資料夾的權限新增至預設使用者
若要使用 SCP/SFTP 傳輸網站的執行個體,最佳做法是為其他使用者設定存取 /var/www 目錄的權限。如需如何設定權限的說明,請參閱設定檔案權限部分 (步驟 1: 準備 LAMP 伺服器中)。下列步驟為每個 Linux 發行版中的預設使用者提供所需的權限。您可以將使用者新增至 Apache 群組,然後將目錄的所有權變更為預設使用者和 Apache 群組。
完成下列步驟:
Ubuntu 20.04 和 18.04
-
執行下列命令:
sudo usermod -a -G www-data ubuntu -
登出,然後重新登入以取得新的群組。然後,執行 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
-
執行下列命令:
sudo usermod -a -G www-data admin -
登出,然後重新登入以取得新的群組。然後,執行 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
-
執行下列命令:
sudo usermod -a -G apache centos -
登出,然後重新登入以取得新的群組。執行 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 位址以檢視預設網頁。您的網站現在可以自訂。
相關內容
- 已提問 1 年前
