安装 LAMP Web 服务器在 Amazon Linux 上

安装 LAMP Web 服务器(在 Amazon Linux 上)

通过以下步骤,您可以将支持 PHP 和 MySQL 的 Apache Web 服务器(有时称为 LAMP Web 服务器或 LAMP 堆栈)安装到您 Amazon Linux 实例上。您可以使用此服务器来托管静态网站或部署能对数据库中的信息执行读写操作的动态 PHP 应用程序。

先决条件

本教程假定您已经启动具有可从 Internet 访问的公有 DNS 名称的实例。有关更多信息,请参见 启动 Amazon EC2 实例。还必须将安全组配置为允许 SSH(端口 22)、HTTP(端口 80)和 HTTPS(端口 443)连接。有关这些先决条件的更多信息,请参阅 Amazon EC2 的设置。

Important

这些过程适用于 Amazon Linux。有关其他发布版本的更多信息,请参阅其具体文档。如果您尝试在 Ubuntu 实例上设置 LAMP Web 服务器,则本教程不适合您。有关 Ubuntu 上的 LAMP Web 服务器的信息,请转到 Ubuntu 社区文档 ApacheMySQLPHP 主题。

安装和启动 LAMP Web 服务器(在 Amazon Linux 上)

连接到您的实例。

为确保您的所有软件包都处于最新状态,请对您的实例执行快速软件更新。此过程可能需要几分钟的时间,但必须确保您拥有最新的安全更新和缺陷修复。

Note

-y 选项安装更新时不提示确认。如果您希望在安装前检查更新,则可以忽略此选项。

[ec2-user ~]$ sudo yum update -y

您的实例处于最新状态后,便可以安装 Apache Web 服务器、MySQL 和 PHP 软件包。使用 yum install 命令可同时安装多个软件包和所有相关依赖项。

[ec2-user ~]$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd

启动 Apache Web 服务器。

[ec2-user ~]$ sudo service httpd start
Starting httpd:                                            [  OK  ]

使用 chkconfig 命令将 Apache Web 服务器配置为在每次系统启动时启动。

[ec2-user ~]$ sudo chkconfig httpd on

Tip

当您成功启用服务时,chkconfig 命令不提供任何确认消息。您可以通过运行以下命令验证 httpd 是否已启用。

[ec2-user ~]$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

在运行级别 2、3、4 和 5 下,httpd 为 on(您希望看到的状态)。

测试您的 Web 服务器。在 Web 浏览器中,输入您实例的公有 DNS 地址(或公有 IP 地址),您应该可以看到 Apache 测试页面。您可以使用 Amazon EC2 控制台获取实例的公有 DNS(勾选 Public DNS (公有 DNS) 列;如果此列处于隐藏状态,请单击 Show/Hide (显示/隐藏) 图标并选择 Public DNS (公有 DNS))。

Tip

如果您未能看到 Apache 测试页面,请检查您使用的安全组是否包含允许 HTTP(端口 80)流量的规则。有关将 HTTP 规则添加到您安全组的信息,请参阅 向安全组添加规则。

Important

如果您使用的不是 Amazon Linux,则还可能需要在实例上配置防火墙才能允许这些连接。有关如何配置防火墙的更多信息,请参阅适用于特定分配的文档。

Note

此测试页面仅在 /var/www/html 无内容时显示。将内容添加到文档根目录后,您的内容将显示在您实例的公有 DNS 地址中,而不显示在本测试页面。

Apachehttpd 提供的文件保存在称为 Apache 文档根目录的目录中。Amazon Linux Apache 文档根目录是 /var/www/html,默认情况下归 root 所有。

[ec2-user ~]$ ls -l /var/www
total 16
drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin
drwxr-xr-x 3 root root 4096 Aug 7 00:02 error
drwxr-xr-x 2 root root 4096 Jan 6 2012 html
drwxr-xr-x 3 root root 4096 Aug 7 00:02 icons

要允许 ec2-user 操作此目录中的文件,您需修改其所有权和权限。有多种方法可以完成此任务;在本教程中,您可以将 www 组添加到您的实例,然后赋予该组 /var/www 目录的所有权并为该组添加写入权限。随后,该组的所有成员都将能够为 Web 服务器添加、删除和修改文件。

设置文件权限

将 www 组添加到您的实例。

[ec2-user ~]$ sudo groupadd www

将您的用户(这里指 ec2-user)添加到 www。

[ec2-user ~]$ sudo usermod -a -G www ec2-user

Important

您必须先退出,再重新登录,然后才能接受新组。您可以使用 exit 命令,也可以关闭终端窗口。

先退出,再重新登录,然后验证您是否为 www 组的成员。

    退出。

    [ec2-user ~]$ exit

    重新连接到实例,然后运行以下命令,以验证您是否为 www 组的成员。

    [ec2-user ~]$ groups
    ec2-user wheel www

将 /var/ 及其内容的组所有权更改到 wwwwww 组。

[ec2-user ~]$ sudo chown -R root:www /var/www

更改 /var/www 及其子目录的目录权限以添加组写入权限并设置未来子目录上的组 ID。

[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} +

以递归方式更改 /var/www 及其子目录的文件权限以添加组写入权限。

[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} +

现在,ec2_user(以及 www 组的任何未来成员)可以在 Apache 根目录中添加、删除和编辑文件。现在您已准备好添加内容,例如静态网站或 PHP 应用程序。

测试您的 LAMP Web 服务器

如果您的服务器已安装并运行,且文件权限设置正确,则您的 ec2-user 账户应该能够在 /var/www/html 目录(可从 Internet 访问)中创建一个简单的 PHP 文件。

在 Apache 文档根目录中创建一个简单的 PHP 文件。

[ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

Tip

尝试运行此命令时,如果出现“Permission denied”错误,请尝试先退出,再重新登录,以接受您在 设置文件权限 中配置的适当组权限。

在 Web 浏览器中,输入您刚刚创建的文件的 URL。此 URL 是实例的公用 DNS 地址,后接正斜杠和文件名。例如:

http://my.public.dns.amazonaws.com/phpinfo.php

您应该可以看到 PHP 信息页面。

删除 phpinfo.php 文件。尽管此信息可能对您很有用,但出于安全考虑,不应将其传播到 Internet。

[ec2-user ~]$ rm /var/www/html/phpinfo.php

保障 MySQL 服务器的安全

MySQL 服务器的默认安装提供有多种功能,这些功能对于测试和开发都很有帮助,但对于产品服务器,应禁用或删除这些功能。mysql_secure_installation 命令可引导您设置根密码并删除安装中的不安全功能。即使您不打算使用 MySQL 服务器,执行此步骤也是一个不错的建议。

启动 MySQL 服务器,以便可以运行 mysql_secure_installation。

[ec2-user ~]$ sudo service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
...

Starting mysqld:                                           [  OK  ]

。

运行 mysql_secure_installation。

[ec2-user ~]$ sudo mysql_secure_installation

    在系统提示时,输入 root 账户的密码。

        输入当前 root 密码。默认情况下,root 账户没有设置密码,因此按 Enter。

        键入 Y 设置密码,然后输入两次安全密码。有关创建安全密码的更多信息,请转至 http://www.pctools.com/guides/password/。确保将此密码存储在安全位置。

    键入 Y 删除匿名用户账户。

    键入 Y 禁用远程 root 登录。

    键入 Y 删除测试数据库。

    键入 Y 重新加载权限表并保存您的更改。

(可选)如果不打算立即使用 MySQL 服务器,请停止。您可以在需要时再次重新启动该服务器。

[ec2-user ~]$ sudo service mysqld stop
Stopping mysqld:                                           [  OK  ]

(可选)如果您希望每次启动时 MySQL 服务器都启动,请输入以下命令。

[ec2-user ~]$ sudo chkconfig mysqld on

现在,您应该有了一个功能完善的 LAMP Web 服务器。如果您将内容添加到位于 /var/www/html 的 Apache 文档根目录,您应该能够在实例的公有 DNS 地址处看到这些内容。

相关主题

有关将文件传输到您的实例或在 Web 服务器上安装 WordPress 博客的更多信息,请参阅以下主题:

使用 WinSCP 将文件传输到您的 Linux 实例

使用 SCP 将文件从 Linux 传输到 Linux 实例

教程:使用 Amazon Linux 托管 WordPress 博客

有关 Apache Web 服务器的更多信息,请转至 http://httpd.apache.org/。有关 MySQL 数据库服务器的更多信息,请转至 http://www.mysql.com/。有关 PHP 编程语言的更多信息,请转至 http://php.net/

如果您想注册 Web 服务器的域名或将现有域名转移到此主机,请参阅 Amazon Route 53 开发人员指南 中的创建域和子域并将其迁移到 Amazon Route 53。

猜你喜欢

转载自blog.csdn.net/topbean/article/details/46455585
今日推荐