如何在Debian 9 Stretch上安装Linux,Apache,MySQL,PHP(LAMP)堆栈

时间:2020-01-09 10:39:22  来源:igfitidea点击:

如何在Debian 9(Stretch)上设置和安装LAMP堆栈吗?

LAMP是四个经常用于开发Web应用程序(例如论坛,博客和商业网站)的开源软件的缩写:

  • Linux操作系统
  • Apache Web服务器
  • MySQL/MariaDB关系数据库管理系统(RDBMS)
  • PHP服务器端编程语言

本教程向您展示如何在Debian 9 Linux服务器上安装LAMP(Apache版本2,PHP版本7,MariaDB版本10.2)堆栈以及防火墙设置,以打开TCP端口80、22和443。

步骤1:应用补丁

执行以下apt-get命令/apt命令以更新系统:

$ sudo apt update

输出示例:

Hit:1 http://security.debian.org stretch/updates InRelease  
Hit:2 http://cdn-fastly.deb.debian.org/debian stretch InRelease
Reading package lists... Done
Building dependency tree       
Reading state information... Done
38 packages can be upgraded. Run 'apt list --upgradable' to see them.

要将其修补为最新更新,请运行:

$ sudo apt-get upgrade

步骤2:安装Apache http服务器

执行以下命令:

$ sudo apt install apache2

您可以通过执行服务器的IP地址来查看默认页面。
要查找服务器的IP地址,请使用ip命令/ifconfig命令,如下所示:

$ ifconfig eth0
$ ip a show eth0
$ ip a show eth0 | grep -w inet

输出示例:

inet 10.114.13.8/24 brd 10.114.13.255 scope global eth0

打开浏览器,然后输入以下网址:

http://10.114.13.8

Apache HTTP服务器已成功安装在您的服务器上。
您可以通过编辑/var/www/html /目录中的index.html文件来更改默认页面:

$ sudo vi /var/www/html/index.html

如何停止/启动/重新启动/重新加载Apache HTTP服务器?

语法如下:

$ sudo systemctl {start|stop|restart|reload|status|graceful-stop|force-reload} apache2

要停止Apache 2服务器,请运行:

$ sudo systemctl stop apache2

要启动Apache 2服务器,请运行:

$ sudo systemctl start apache2

要重新启动Apache 2服务器,请运行:

$ sudo systemctl restart apache2

要重新加载Apache 2服务器,请运行:

$ sudo systemctl reload apache2

要查看Apache 2服务器的状态,请运行:

$ sudo systemctl status apache2

使用systemctl命令控制Apache 2服务器

如何更改Apache HTTP服务器的配置?

您需要编辑/etc/apache2 /目录中的文件:

$ cd /etc/apache2/
$ ls -l

您需要在/etc/apache2/conf-available /目录中编辑或添加新的配置文件。
这是默认的配置文件:

$ cat /etc/apache2/sites-enabled/000-default.conf

输出示例:

<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com
 
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
 
	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn
 
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
 
	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
 
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

步骤3:安装MariaDB服务器

MariaDB是RDBMS,可替代原始MySQL服务器。
它是世界上最受欢迎的数据库服务器之一。
它由MySQL的原始开发人员制作,并保证保持开源。
要安装MariaDB服务器,请运行:

$ sudo apt install default-mysql-server

或者

$ sudo apt install mariadb-server

如何保护MariaDB mysql服务器?

执行以下命令:

$ sudo mysql_secure_installation

请注意,MariaDB/mysql根帐户和系统根帐户是两个不同的帐户。
这不是用于服务器管理的根帐户。
因此,请确保设置不同的密码。

如何测试MariaDB安装?

执行以下命令:

$ mysql -u root -p

您将看到MariaDB mysql提示符。
您可以执行sql命令以查看数据库,版本等:

MariaDB [(none)]> show databases;
MariaDB [(none)]> exit

步骤4:安装PHP版本7

与PHP 5.6相比,PHP版本7至少快30-50%。
因此,让我们在Debian 9服务器上安装PHP版本7和php模块:

$ sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-gd php7.0-opcache

这将安装:

  • 适用于Apache 2的PHP版本7
  • PHP 7 MySQL连接模块
  • PHP 7 OpCache模块可加速脚本
  • PHP 7 GD图形模块

您可以使用以下语法搜索和安装其他PHP模块:

## [search php7 modules] ##
$ apt-cache search php7 | grep module
$ apt search php7 | grep mysql
$ apt-cache search php7 | egrep 'mysql|gd|zip'
$ apt-cache search php7 | more
$ apt search php7 | more
## [search php7 modules] ##
$ sudo apt install {module-name-here}

最后,重新启动Apache 2 HTTP服务器,运行:

$ sudo systemctl restart apache2

要测试PHP的安装,请在/var/www/html /目录中创建一个名为test.php的脚本:

$ sudo vi /var/www/html/test.php

其中追加以下PHP代码:

<?php phpinfo(); ?>

打开浏览器,然后输入以下网址:

http://10.114.13.8/test.php

PHP现在已安装并在您的服务器上运行。

步骤5:配置防火墙以打开端口80和443

执行以下命令以安装ufw防火墙前端:

$ sudo apt install ufw

您必须允许访问SSH端口22:

$ sudo ufw allow 22

打开端口80和443

$ sudo ufw allow 80
$ sudo ufw allow 443

现在,您具有默认策略和允许80/443的ssh端口。
启动防火墙是安全的,执行:

$ sudo ufw enable

输出示例:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

要查看防火墙规则,请运行:

$ sudo ufw status verbose

输出示例:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ---
22                         ALLOW IN    Anywhere                  
80                         ALLOW IN    Anywhere                  
443                        ALLOW IN    Anywhere                  
22 (v6)                    ALLOW IN    Anywhere (v6)             
80 (v6)                    ALLOW IN    Anywhere (v6)             
443 (v6)                   ALLOW IN    Anywhere (v6)

现在LAMP在Debian 9系统上成功安装并运行。