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

4 分钟阅读
0

我想在我的 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 堆栈的信息,请参阅 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 不是必选,但最佳做法是将其用于大多数网站创建和管理。

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 配置文件,然后使用以下内容创建一个新的 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 配置文件,然后使用以下内容创建一个新的 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 目录的权限。有关如何设置权限的说明,请参阅步骤 1 的设置文件权限部分: 准备 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 地址以查看默认网页。您的网站现已准备就绪,可以进行自定义。

AWS 官方
AWS 官方已更新 9 个月前