如何在Debian9上安装LAMP环境(Linux,Apache,MariaDB,PHP)

“LAMP”实际上是以下四个词汇的首字母组合,LAMP分别为Linux操作系统,Apache Web服务器,MariaDB数据库和PHP动态语言。它们共同组成动态内容网站的基础环境本文我们将介绍如何在 Debian 9服务器上安装LAMP。

如何在Debian9上安装LAMP环境(Linux,Apache,MariaDB,PHP)
如何在Debian9上安装LAMP环境(Linux,Apache,MariaDB,PHP)

第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配置文件,它会显示 80443 端口的更多信息:

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 允许访问:

安装Apache
安装Apache

第 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

打开的页面如下所示:

phpinfo
phpinfo

测试完毕后,请运行以下命令删除该文件:

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

结论

现在我们已经成功在 Debian 系统上安装了 LAMP 堆栈,接下来就可以进行后续的项目搭建工作了。

原创文章,作者:牛奇网,如若转载,请注明出处:https://www.niuqi360.com/lamp-config/how-to-install-linux-apache-mariadb-php-debian9/

发表评论

登录后才能评论