如何在我的 Lightsail 实例上手动安装 LAMP 堆栈?
我想在我的 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
-
更新 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 配置文件,然后使用以下内容创建一个新的 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 配置文件,然后使用以下内容创建一个新的 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 -y
CentOS 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 地址以查看默认网页。您的网站现已准备就绪,可以进行自定义。
相关内容
- 已提问 2 个月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 个月前
- AWS 官方已更新 9 个月前