“LAMP”实际上是以下四个词汇的首字母组合,LAMP分别为Linux操作系统,Apache Web服务器,MariaDB数据库和PHP动态语言。它们共同组成动态内容网站的基础环境,本文我们将介绍如何在 Debian 9服务器上安装LAMP。
第1步 – 安装Apache
使用 Debian 的 apt
包管理器安装 Apache :
sudo apt update
sudo apt install apache2
由于使用的 sudo 命令,可能会要求进行密码验证。
输入密码后,apt
会显示计划安装哪些软件包以及它们将占用多少磁盘空间。输入 Y
并按 ENTER
继续。
如果服务器上已经安装和启用 UFW 防火墙,要保证防火墙已经允许 HTTP 和 HTTPS 流量。
在 Debian 9 系统上安装 Apache 时,UFW 会加载应用程序的配置文件,通过运行以下命令查看 UFW 配置文件的完整列表:
sudo ufw app list
下面的 WWW
配置文件用于管理由Web服务器使用的端口:
Output
Available applications:
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .
如果再进一步查看 WWW Full
配置文件,它会显示 80
和 443
端口的更多信息:
sudo ufw app info "WWW Full"
Output
Profile: WWW Full
Title: Web Server (HTTP,HTTPS)
Description: Web Server (HTTP,HTTPS)
Ports:
80,443/tcp
通过执行如下命令,允许来自 HTTP 和 HTTPS 访问请求:
sudo ufw allow in "WWW Full"
通过在 Web 浏览器中访问服务器的公共 IP 地址来验证是否可以正常访问:
http://your_server_ip
如果看到了默认的 Apache 欢迎页面,则说明 Apache 已经正确安装,并已经正确的配置了 UFW 允许访问:
第 2 步 – 安装 MariaDB
现在我们已经启动了 Apache,接下来要安装 MariaDB 。MariaDB 是一个数据库管理系统,负责管理网站数据的存储和访问。
通过执行如下命令安装 mariadb-server
:
sudo apt install mariadb-server
执行此命令,系统将显示即将安装的软件包列表,以及它们将占用的磁盘空间。输入 Y
继续。
安装完成后,需要对MariaDB 进行一些安全配置:
sudo mysql_secure_installation
执行该命令后,系统将通过一系列引导提示,帮助我们对 MariaDB 的安全选项进行一些配置。首先提示输入 MariaDB的 root 账户密码。root 是 MariaDB 中具有更高权限的管理帐户,类似于服务器的 root 帐户。MariaDB 的 root 账户的默认密码为空,所以只需按 ENTER
即可。
接下来,系统会询问是否要为 root 设置密码。键入 N
,然后按 ENTER
。在 Debian 系统中,MariaDB 的 root 帐户与自动系统维护密切相关,因此我们不应更改 root 帐户配置的身份验证方法。
接下来全部输入 Y
,然后按 ENTER
接受所有的默认值。这将删除匿名用户和测试数据库,禁用远程 root 登录,并加载这些新规则,以便 MariaDB 立即执行所做的更改。
在 Debian 系统上新安装的 MariaDB,它的 root 用户默认被设置为使用插件而不是密码进行身份验证。在许多情况下,这具有更高的安全性和可用性,但是当我们需要允许外部程序(例如,phpMyAdmin)管理权限时,就会比较麻烦。
由于服务器使用 root 帐户执行日志轮换、启动和停止服务器等任务,因此最好不要更改 root 帐户的身份验证方式。可以通过配置 /etc/mysql/debian.cnf
文件的方式来实现,但包更新可能会覆盖这些配置。如果要设置基于密码的访问,建议创建一个单独的管理员帐户。
为此,我们新创建一个名为 admin
的新帐户,该帐户具有与 root 帐户相同的功能,但配置为通过密码进行验证。从终端打开 MariaDB 提示符:
sudo mariadb
现在,通过如下命令创建一个名为“admin”的账户,授予该账户 root 权限并为其设置访问密码:
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
刷新权限使配置生效:
FLUSH PRIVILEGES;
退出 MariaDB 命令行:
exit;
现在,就可以用 admin 用户身份访问数据库了,通过以下命令进行身份验证:
mariadb -u admin -p
至此,MariaDB 数据库系统已设置完毕。
第 3 步 – 安装 PHP
使用 apt
命令安装 PHP以及一些 PHP 扩展,以便 PHP 代码可以在 Apache 服务器下运行,并与服务器上的 MariaDB 数据库进行通信:
sudo apt install php libapache2-mod-php php-mysql
在大多数情况下,如果用户请求访问网站目录,Apache 将首先查找是否有名为 index.html
的文件。我们需要对Apache 进行一些配置,告诉 Apache 在接收用户请求时优先读取 PHP 文件。
执行如下命令,对 dir.conf 文件进行配置:
sudo nano /etc/apache2/mods-enabled/dir.conf
类似如下:
/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
将 index.php 文件移动到 DirectoryIndex
规则后的第一个位置,如下所示:
/etc/apache2/mods-enabled/dir.conf
<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 systemctl restart apache2
通过如下命令检查 apache2
的运行状态:
sudo systemctl status apache2
Sample Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-09-04 18:23:03 UTC; 9s ago
Process: 22209 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 22216 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 22221 (apache2)
Tasks: 6 (limit: 4915)
CGroup: /system.slice/apache2.service
├─22221 /usr/sbin/apache2 -k start
├─22222 /usr/sbin/apache2 -k start
├─22223 /usr/sbin/apache2 -k start
├─22224 /usr/sbin/apache2 -k start
├─22225 /usr/sbin/apache2 -k start
└─22226 /usr/sbin/apache2 -k start
为了满足更多 PHP 的功能需求,我们可以选择安装一些 PHP 扩展。要查看可用的 PHP 扩展和库,可以执行如下命令:
apt search php- | less
使用箭头键上下滚动,然后按 Q
退出。
系统将显示可以安装的所有可选组件:
Output
Sorting...
Full Text Search...
bandwidthd-pgsql/stable 2.0.1+cvs20090917-10 amd64
Tracks usage of TCP/IP and builds html files with graphs
bluefish/stable 2.2.9-1+b1 amd64
advanced Gtk+ text editor for web and software development
cacti/stable 0.8.8h+ds1-10 all
web interface for graphing of monitoring systems
cakephp-scripts/stable 2.8.5-1 all
rapid application development framework for PHP (scripts)
ganglia-webfrontend/stable 3.6.1-3 all
cluster monitoring toolkit - web front-end
haserl/stable 0.9.35-2+b1 amd64
CGI scripting program for embedded environments
kdevelop-php-docs/stable 5.0.3-1 all
transitional package for kdevelop-php
kdevelop-php-docs-l10n/stable 5.0.3-1 all
transitional package for kdevelop-php-l10n
…
:
要详细了解每个扩展的作用,可以输入以下命令查看扩展包的详细说明:
apt show package_name
例如,我们想要了解 php-cli
扩展模块的作用,可以输入以下命令:
apt show php-cli
将显示如下所示的内容:
Output…
Description: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
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.
.
This package is a dependency package, which depends on Debian's default
PHP version (currently 7.0).
…
如果决定要安装某个扩展模块,可以使用 apt install
命令来安装。
如果我们想要安装 php-cli
,可以执行如下命令:
sudo apt install php-cli
如果想同时安装多个扩展模块,可以在 apt install
命令后逐项列出每个模块的名称,用空格分隔,如下所示:
sudo apt install package1 package2 ...
此时,已经成功在 Debian 服务器安装了 LAMP 堆栈,我们还需要测试一下 PHP 是否正常工作。
第 4 步 — 测试 PHP 处理
在网站的根目录下(一般为 /var/www/html/
),创建一个名为 info.php
的PHP 脚本。通过运行如下命令创建文件:
sudo nano /var/www/html/info.php
在文件中添加以下代码:
/var/www/html/info.php
<?php
phpinfo();
?>
完成后,保存并关闭文件。
通过浏览器访问该文件:
http://your_server_ip/info.php
打开的页面如下所示:
测试完毕后,请运行以下命令删除该文件:
sudo rm /var/www/html/info.php
结论
现在我们已经成功在 Debian 系统上安装了 LAMP 堆栈,接下来就可以进行后续的项目搭建工作了。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-install-linux-apache-mariadb-php-debian9/