介绍
“LAMP”堆栈是一组开源软件,通常安装在一起以使服务器能够托管动态网站和Web应用程序。这个术语实际上是一个缩写,代表L inux操作系统,带有A pache Web服务器。站点数据存储在M ySQL数据库中,动态内容由P HP 处理。
在本指南中,我们将在Ubuntu 14.04 Droplet上安装LAMP堆栈。Ubuntu将满足我们的第一个要求:Linux操作系统。
注意: LAMP堆栈可以通过在启动时将此脚本添加到其用户数据中自动安装在Droplet上。查看本教程以了解有关Droplet用户数据的更多信息。
先决条件
在开始本指南之前,您应该在服务器上设置单独的非root用户帐户。您可以通过完成Ubuntu 14.04的初始服务器设置中的步骤1-4来了解如何执行此操作。
第1步:安装Apache
Apache Web服务器是目前世界上最受欢迎的Web服务器,这使其成为托管网站的绝佳选择。
我们可以使用Ubuntu的包管理器轻松安装Apache apt
。包管理器允许我们从Ubuntu维护的存储库中无痛地安装大多数软件。您可以在此处了解有关如何使用的apt
更多信息。
出于我们的目的,我们可以通过键入以下命令开始:
sudo apt-get update sudo apt-get install apache2
由于我们使用的是sudo
命令,因此这些操作将以root权限执行。它将询问您的常规用户密码以验证您的意图。
之后,您的Web服务器已安装。
您可以立即通过在Web浏览器中访问服务器的公共IP地址来验证所有内容是否按计划进行检查(如果您没有此信息,请参阅下一个标题下的说明以了解您的公共IP地址是什么已经):
http:// your_server_IP_address
您将看到默认的Ubuntu 14.04 Apache网页,该网页用于提供信息和测试目的。它应该看起来像这样:
如果您看到此页面,则表明您的Web服务器已正确安装。
如何查找服务器的公共IP地址
如果您不知道服务器的公共IP地址是什么,可以通过多种方式找到它。通常,这是您用于通过SSH连接到服务器的地址。
从命令行中,您可以通过以下几种方式找到它。首先,您可以使用这些iproute2
工具输入以下内容来获取您的地址:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
这将为您提供一两行。它们都是正确的地址,但您的计算机可能只能使用其中一个,所以请随意尝试每个地址。
另一种方法是使用外部方来告诉您它如何看到您的服务器。您可以通过询问特定服务器的IP地址来执行此操作:
curl http://icanhazip.com
无论您使用何种方法获取IP地址,都可以将其输入Web浏览器的地址栏以访问您的服务器。
第2步:安装MySQL
现在我们已经启动并运行了Web服务器,现在是时候安装MySQL了。MySQL是一个数据库管理系统。基本上,它将组织并提供对我们的站点可以存储信息的数据库的访问。
同样,我们可以apt
用来获取和安装我们的软件。这一次,我们还将安装一些其他“帮助程序”包来帮助我们让我们的组件相互通信:
sudo apt-get install mysql-server php5-mysql
注意:在这种情况下,您不必sudo apt-get update
在命令之前运行。这是因为我们最近在上面的命令中运行它来安装Apache。我们计算机上的软件包索引应该已经是最新的。
在安装过程中,您的服务器将要求您选择并确认MySQL“root”用户的密码。这是MySQL中的一个管理帐户,具有更高的权限。可以认为它类似于服务器本身的root帐户(您现在配置的帐户是特定于MySQL的帐户)。
安装完成后,我们需要运行一些额外的命令来安全地设置MySQL环境。
首先,我们需要告诉MySQL创建其数据库目录结构,它将存储其信息。您可以通过输入以下内容来执
sudo mysql_install_db
之后,我们想要运行一个简单的安全脚本,它将删除一些危险的默认值并锁定对我们的数据库系统的访问。运行以下命令启动交互式脚本:
sudo mysql_secure_installation
系统将要求您输入为MySQL root帐户设置的密码。接下来,它会询问您是否要更改该密码。如果您对当前密码感到满意,请在提示符下键入“否”为“否”。
对于其他问题,您只需在每个提示中单击“ENTER”键即可接受默认值。这将删除一些示例用户和数据库,禁用远程root登录,并加载这些新规则,以便MySQL立即尊重我们所做的更改。
此时,您的数据库系统现已设置完毕,我们可以继续前进。
第3步:安装PHP
PHP是我们设置的组件,它将处理代码以显示动态内容。它可以运行脚本,连接到我们的MySQL数据库以获取信息,并将处理过的内容交给我们的Web服务器进行显示。
我们可以再次利用该apt
系统来安装我们的组件。我们还将包括一些帮助程序包:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
这应该没有任何问题安装PHP。我们马上就会测试一下。
在大多数情况下,我们要修改Apache在请求目录时提供文件的方式。目前,如果用户从服务器请求目录,Apache将首先查找名为的文件index.html
。我们想告诉我们的Web服务器更喜欢PHP文件,因此我们首先要让Apache查找index.php
文件。
为此,请键入以下命令以dir.conf
使用root权限在文本编辑器中打开文件:
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索引文件移动到DirectoryIndex
规范之后的第一个位置,如下所示:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>配置
完成后,按“CTRL-X”保存并关闭文件。您必须通过键入“Y”确认保存,然后按“ENTER”确认文件保存位置。
在此之后,我们需要重新启动Apache Web服务器才能识别我们的更改。你可以这样输入:
sudo service apache2 restart
安装PHP模块
为了增强PHP的功能,我们可以选择安装一些额外的模块。
要查看PHP模块和库的可用选项,可以在系统中键入:
apt-cache search php5-
结果是您可以安装的所有可选组件。它会给你一个简短的描述:
php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
. . .
要获得有关每个模块执行操作的更多信息,您可以搜索Internet,也可以键入以下内容来查看包中的长描述:
apt-cache show package_name
将会有很多输出,其中一个字段被调用Description-en
,它将对模块提供的功能有更长的解释。
例如,要找出php5-cli
模块的功能,我们可以输入:
apt-cache show php5-cli
除了大量其他信息外,您还可以找到如下所示的内容:
. . .
SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d
Description-en: command-line interpreter for the php5 scripting language
This package provides the /usr/bin/php5 command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
The following extensions are built in: 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 (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
Description-md5: f8450d3b28653dcf1a4615f3b1d4e347
Homepage: http://www.php.net/
. . .
如果在研究之后,您决定要安装软件包,则可以使用apt-get install
我们为其他软件执行的命令。
如果我们认为这php5-cli
是我们需要的东西,我们可以输入:
sudo apt-get install php5-cli
如果要安装多个模块,可以按照apt-get install
命令列出每个模块,用空格分隔,如下所示:
sudo apt-get install package1 package2 ...
此时,您的LAMP堆栈已安装并配置完毕。我们仍然应该测试我们的PHP。
第4步:在Web服务器上测试PHP处理
为了测试我们的系统是否为PHP正确配置,我们可以创建一个非常基本的PHP脚本。
我们将调用此脚本info.php
。为了让Apache找到并正确提供文件,必须将其保存到一个非常特定的目录,称为“web root”。
在Ubuntu 14.04中,该目录位于/var/www/html/
。我们可以通过键入以下内容在该位置创建文件:
sudo nano /var/www/html/info.php
这将打开一个空白文件。我们想在文件中放入以下文本,它是有效的PHP代码:
完成后,保存并关闭文件。
现在我们可以测试我们的Web服务器是否可以正确显示PHP脚本生成的内容。要试一试,我们只需在我们的网络浏览器中访问此页面即可。您将再次需要服务器的公共IP地址。
您要访问的地址将是:
http:// your_server_IP_address /info.php
您访问的页面应如下所示:
这个页面基本上从PHP的角度为您提供有关您的服务器的信息。它对于调试很有用,并确保正确应用您的设置。
如果这是成功的,那么您的PHP正在按预期工作。
您可能希望在此测试后删除此文件,因为它实际上可以向未经授权的用户提供有关您的服务器的信息。为此,您可以输入:
sudo rm /var/www/html/info.php
如果您以后需要再次访问该信息,则可以随时重新创建此页面。