您的位置:首页 > 运维架构 > Apache

如何在Ubuntu 14.04之上安装Linux、Apache、MySQL与PHP(即LAMP)堆栈

2016-11-09 15:25 831 查看

如何在Ubuntu 14.04之上安装Linux、Apache、MySQL与PHP(即LAMP)堆栈

提供 Zstack社区

内容简介

所谓“LAMP”堆栈是指一整套开源软件集合,其通常以捆绑方式进行安装以实现服务器对动态网站及Web应用的托管能力。LAMP作为缩写词代表着Linux操作系统外加Apache Web服务器这一绝佳组合。其站点数据被保存在MySQL数据库当中,而动态内容则由PHP负责处理。

在今天的指导文章中,我们将了解如何将LAMP堆栈安装在Ubuntu 14.04 Droplet当中。Ubuntu显然满足我们此前提到的第一项基本要求:Linux操作系统。

备注: LAMP堆栈可以通过添加此脚本 在启动时被自动安装至其用户数据当中。查阅此教程 以了解更多与Droplet用户数据相关之细节信息。

先决条件

在开始浏览本教程之前,大家应当在自己的服务器上建立一个独立的非root用户账户。大家可以通过Ubuntu 14.04初始服务器设置教程以四步方式完成这项任务。

第一步——安装Apache

Apache Web服务器当数目前人气最高的Web服务器选项了,其提供的默认选项能够出色地完成网站托管工作。

我们可以利用Ubuntu的apt软件包管理器轻松实现Apache安装。软件包管理器允许大家顺畅地从Ubuntu所支持软件库内选取所需软件并进行安装。大家可以通过如何使用apt教程了解如何实现这项工作。

在本次示例中,我们首先输入以下命令:

sudo apt-get update
sudo apt-get install apache2


由于我们使用的是sudo命令,因此相关操作必须通过root权限加以执行。换言之,我们作为普通用户需要输入密码以验证操作意图。

在此之后,我们的Web服务器也就安装完成了。

大家可以在浏览器中查看服务器的公共IP地址(查看下一节中的说明以了解公共IP地址的查询方式),从而通过抽查验证一切是否如预期般顺利进行:

http://your_server_IP_address


这时大家将看到Ubuntu 14.04的默认Apache网页,其专门用于信息查看与测试。这时我们看到的内容应如下所示:

如果正确查看到此页面,则证明大家的Web服务器已经安装完毕。

如何获取服务器公共IP地址

如果大家不清楚自己服务器的公共IP地址,则可以通过几种常见方式进行查询。一般来讲,公共IP应为大家通过SSH接入服务器所使用的地址。

通过该命令行,大家可以发现几种可行方式。首先,我们可以利用iproute2工具输入以下命令以获取地址:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'


这条命令将返回一到两行结果,其中列出的皆为正确地址——不过我们的计算机只能使用其中一项地址,因此不妨逐一进行尝试。

还有一种办法,就是借助于外部机制了解其如何访问我们的服务器。大家可以通过以下方式向特定服务器询问自己的IP地址:

curl http://icanhazip.com


无论采用哪种方式,我们在获取到IP地址后即可将其输入浏览器的地址栏以接入自己的服务器。

第二步——安装MySQL

现在我们的Web服务器已经启动并开始运行,接下来需要安装MySQL。MySQL是一套数据库管理系统,它的基本工作就是组织并提供数据库访问机制,而这里存储的正是我们站点的相关信息。

同样的,我们需要使用apt以获取并安装所需软件。这一次,我们还要安装其它“helper”软件包,旨在帮助我们获取必要组件以实现相互通信:

sudo apt-get install mysql-server php5-mysql


备注:在这里,大家不需要像之前的命令那样运行sudo apt-get。这是因为我们刚刚在命令中利用它安装了Apache,意味着我们计算机中的软件包索引已然处于最新状态。

在安装过程中,服务器将要求大家为MySQL的“root”用户选定并确认一条密码。其属于MySQL当中的管理账户,且拥有较高权限。其约等于服务器上的root账户(不过这里我们配置的为单纯面向MySQL的特定账户)。

安装完成之后,我们需要运行部分额外命令对MySQL环境进行安全设置。

首先,我们要求MySQL创建其数据库目录结构,用于存储相关信息。大家可以使用以下命令:

sudo mysql_install_db


在此之后,我们还需要运行一套简单的安全脚本以移除各项高危默认设置,同时对数据库系统的访问机制进行一定程度锁定。通过以下命令启动该交互式脚本:

sudo mysql_secure_installation


这时我们需要输入此前为MySQL root账户设置的密码。接下来系统还会询问我们是否希望对密码进行变更。如果现有密码没问题,那么输入“n”拒绝变更即可。

在此之后,大家可以一路按回车键以确认各项默认设定值。这部分流程会移动部分示例用户与数据库、禁用远程root登录并载入各项新规则以确保MySQL立即响应我们做出的变更。

现在大家的数据库系统已经安装完成了,下面继续推进。

第三步——安装PHP

PHP作为设置组件,负责处理代码以显示动态内容。其能够运行脚本、与MySQL数据库对接以获取信息,同时将处理后的内容传递至我们的Web服务器以供显示。

这里我们可以再次使用apt系统安装所需组件。这次我们同样需要使用部分helper软件包:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt


这样PHP应该能够顺利完成安装,接下来我们对其进行测试。

多数情况下,我们可能希望在面对目录请求时修改Apache交付文件的方式。就目前而言,如果用户从服务器处请求一项目录,Apache会首先查询名为index.html的文件。这里我们要求Web服务器优先查询PHP文件,也就是确保Apache优先查询index.php文件。

为实现这一目标,输入以下命令在文本编辑器中以root权限打开dir.conf文件:

sudo nano /etc/apache2/mods-enabled/dir.conf


其中的内容将如下所示:

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>


我们需要将之前强调的PHP索引文件移动至DirectoryIndexspecification之后,具体如下所示:

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>


这一步完成之后,按下“CTRL-X”保存并退出。这时大家可以按下“Y”键确认保存,而后按下回车键以确认该文件的保存位置。

接下来,我们需要重启Apache Web服务器以应用各项变更。大家可以输入以下命令完成服务器重启:

sudo service apache2 restart


安装各PHP模块

为了强化PHP功能性,我们也可以有选择地安装其它附加模块。

为了查看当前可用的PHP模块与库选项,大家可以在系统中输入以下命令:

apt-cache search php5-


其返回的结果即为我们可以选择安装的全部组件。其中各项组件还将包含一条简短的描述:

php5-cgi - 服务器端、HTML嵌入式脚本语言(CGI二进制)
php5-cli - php5脚本语言之命令行解释器
php5-common - 来自php5源代码的软件包通用文件
php5-curl - php5的CURL模块
php5-dbg - PHP5的调试符号
php5-dev - PHP5模块开发文件
php5-gd - php5 GD模块
. . .


为了获得更多与各模块相关的信息,大家可以搜索互联网或者输入以下命令查看软件包中的更多描述:

apt-cache show package_name


这里会返回大量输出结果,其中名为Description-en的字段包含相关模块提供的详尽功能描述。

举例来说,要了解php5-cli模块的作用,我们可以输入:

apt-cache show php5-cli


除了大量其它信息之外,大家能够从返回结果中看到以下内容:

. . .
SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d
Description-en: php5脚本语言的命令行解释器,此软件包提供/usr/bin/php5命令解释器,用于通过shell测试PHP脚本或者执行常规shell脚本任务。

内置以下扩展: bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib.

PHP (PHP递归首字母缩写: Hypertext Preprocessor)是一种应用广泛的开源通用型脚本语言,适用于Web开发并可嵌入至HTML当中。
Description-md5: f8450d3b28653dcf1a4615f3b1d4e347
主页: http://www.php.net/ . . .


在研究之后,如果大家决定安装其中某一软件包,则可如之前所提到利用apt-get安装命令加以实现。

举例来说,如果我们决定安装php5-cli,则可输入:

sudo apt-get install php5-cli


如果大家希望一次安装多个模块,则可以将其在apt-get安装命令之后逐一列出、中间以空格隔开,如下所示:

sudo apt-get install package1package2...


到这里,我们的LAMP堆栈已经安装且配置完成。当然,大家还需要对自己的PHP进行测试。

第四步:在Web服务器上测试PHP

为了测试我们的系统是否已经顺利面向PHP完成配置,接下来可以创建一套非常基础的PHP脚本。

我们可以将这套脚本命名为info.php。为了保证Apace能够找到该文件并正确交付,其必须被保存在特定目录之下——即“web root”目录当中。

在Ubuntu 14.04系统内,该目录位于/var/www/html/。我们可以输入以下命令在该位置创建此文件:

sudo nano /var/www/html/info.php


此次将打开一个空白文件,我们将以下有效PHP代码添加进去:

<?php
phpinfo();
?>


完成之后,保存并退出。

现在我们可以测试自己的Web服务器是否能够正确显示由PHP脚本生成的内容了。要进行测试,我们只需要在浏览器中查看该页面。这里,我们又要用到服务器的公共IP地址。

大家希望访问的地址如下:

http://your_server_IP_address/info.php


此页面应该显示如下内容:

此页面基本上为我们提供了PHP层面的服务器信息。其能够帮助我们轻松完成调试并确保全部设置得到正确应用。

如果到这里一切顺利,那么大家的PHP已经能够如预期般成功起效。

大家可能希望在测试完成后删除该文件,因为其实际上会将服务器信息显示给未经授权的用户。执行以下命令即可实现:

sudo rm /var/www/html/info.php


当然,如果大家接下来需要再次访问这些信息,可以随时对页面进行重新创建。

总结

现在大家已经完成了LAMP堆栈的安装工作,之后的具体使用方式就全看大家需求了。基本上,我们安装的这套平台允许各位将绝大多数网站及Web软件安装在服务器当中。

相关主流选项包括:

安装Wordpress 人气最高的互联网内容管理系统。

设置PHPMyAdmin 以帮助我们通过浏览器管理MySQL数据库。

了解更多MySQL相关信息 以管理我们的数据库。

了解如何创建SSL证书 以确保指向Web服务器的流量安全。

了解如何使用SFTP 以将文件传入及传出服务器。

备注:我们将在编写14.04说明文档时更新上述链接。

本文来源自DigitalOcean Community。英文原文:How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04 by Justin Ellingwood

翻译:diradw
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息