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