如何在 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 堆栈的信息,请参阅教程:在 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 地址以查看原定设置网页。您的网站现在可以进行自定义了。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前