如何在 Lightsail 实例上手动安装 LAMP 堆栈?

上次更新时间:2022 年 3 月 21 日

我想在我的 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 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 地址以查看原定设置网页。您的网站现在可以进行自定义了。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?