如何在Debian 10(Buster)上安装LAMP

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

如何在Debian 10(Buster)上安装LAMP堆栈?

LAMP是软件堆栈的首字母缩写,包括Linux,Apache Web服务器,MariaDB数据库(取代MySQL)和PHP Web脚本语言。

LAMP堆栈使我们能够托管动态网站和流行的应用程序,例如MediaWiki,WordPress等。
本教程显示如何在Debian Linux 10(Buster)服务器上安装LAMP堆栈。

在Debian 10(Buster)上安装LAMP

  • 更新Debian Linux,运行:sudo-sh -c'apt update && apt upgrade'
  • 安装Apache,执行:sudo apt install apache2
  • 更新防火墙并打开端口80和443,运行:sudo ufw allow in" WWW Full"
  • 设置MariaDB:sudo apt install mariadb-server
  • 保护您的MariaDB服务器,运行:sudo mysql_secure_installation
  • PHP 7.3安装:sudo apt install php libapache2-mod-php php-gd php-mysql
  • 测试您的LAMP设置

让我们详细了解所有步骤。
但是,首先使用ssh命令登录到远程服务器:

ssh user@server-ip
ssh -i ~/.ssh/aws-ec2-key admin@deb10-lmum1-box1

1.更新服务器

确保所有软件包都是最新的,运行以下apt命令或apt-get命令:

sudo apt update
sudo apt upgrade

确保您的服务器/虚拟机是最新的安全补丁程序

2.安装Apache Web服务器

Apache HTTP Server,也称为Apache。
这是一个以促进万维网的增长而闻名的Web服务器。
因此,我们将在Debian 10上安装Apache,运行:

sudo apt install apache2

如何启动,停止,重新启动并获取Apache服务器的状态

systemctl命令的语法如下:

sudo systemctl start apache2.service ## <-- Start the server ##
sudo systemctl restart apache2.service ## <-- Restart the server ##
sudo systemctl stop apache2.service ## <-- Stop the server ##
sudo systemctl reload apache2.service ## <-- Reload the server config ##
sudo systemctl status apache2.service ## <-- Get the server status ##

3.更新防火墙并打开端口80和443

重要的是,打开TCP端口80(www)和443(https),以使Debian 10上的LAMP正常工作。
执行以下命令:

sudo ufw allow www
sudo ufw allow https
sudo ufw status

输出示例:

Status: active
 
To                         Action      From
--                         ------      ---
22/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)

通过输入服务器IP或域名进行测试:

http://server1.theitroad.local
http://your_public_IPv4_here

配置Apache

使用文本编辑器(例如vi/vim,nano,emacs等)编辑以下文件:

sudo vi /etc/apache2/mods-available/mpm_prefork.conf

我为带有两个2 GB内存和1个vCPU的EC2更新了配置文件,用于运行几个WP站点:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves
 
<IfModule mpm_prefork_module>
	StartServers		  4
	MinSpareServers		  20
	MaxSpareServers		  40
	MaxRequestWorkers	  200
	MaxConnectionsPerChild    4500
</IfModule>
 
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

以上设置应根据您的部署需求进行调整。
最后,禁用Apache事件模块并启用httpd prefork,运行:

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork

要激活新配置,您需要运行:

sudo systemctl restart apache2.service

如何创建您的第一个虚拟主机

使用cp命令,为您的域创建一个默认的Apache配置副本,称为www.theitroad.local,如下所示:

sudo cp -v /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/www.theitroad.local.conf

如下更新/etc/apache2/sites-available/www.theitroad.local.conf:

<Directory /var/www/theitroad.local/public_html>
        Require all granted
</Directory>
<VirtualHost *:80>
        ServerName theitroad.local
        ServerAlias www.theitroad.local
        ServerAdmin [email protected]
        DocumentRoot /var/www/theitroad.local/public_html
	ErrorLog ${APACHE_LOG_DIR}/www.theitroad.local_error.log
	CustomLog ${APACHE_LOG_DIR}/www.theitroad.local_access.log combined
</VirtualHost>

接下来,创建一个新目录来存储域的HTML/PHP文件:

mkdir -vp /var/www/theitroad.local/public_html

添加一个新的Linux用户,运行:

sudo useradd -d /var/www/theitroad.local/ -s /usr/sbin/nologin -c 'www.theitroad.local user' cbzuser
sudo passwd -l cbzuser

启用您的站点并禁用默认的LAMP站点:

sudo a2ensite www.theitroad.local
sudo a2dissite 000-default

创建一个名为index.html的新html文件:

vi /var/www/theitroad.local/public_html/index.html

追加HTML4/HTML5代码:

<html>
	<head>
		<title>www.theitroad.local on Debian 10</title>
	</head>
	<body>
		<h2>www.theitroad.local</h2>
		<p>This is a test LAMP server.</p>
		<hr>
	</body>
</html>

保存并关闭文件。
使用chown命令和chmod命令命令对Apache DocumentRoot设置严格的权限:

sudo chown -R cbzuser:cbzuser /var/www/theitroad.local/
sudo chmod 0444 /var/www/theitroad.local/
sudo find /var/www/theitroad.local/ -type d -print0 | sudo xargs -0 -I {} chmod 0445 "{}"

要激活新配置,您需要运行:

sudo systemctl reload apache2.service

打开浏览器并对其进行测试:

http://www.theitroad.local

4.如何在Debian 10上安装MariaDB

现在,您已经建立了一个Web服务器并与您的第一个虚拟主机一起运行。
现在该安装MariaDB了,它是MySQL服务器的直接替代品。
执行以下apt命令:

sudo apt install mariadb-server

提高MariaDB安装安全性

运行mysql_secure_installation脚本:

sudo mysql_secure_installation

该脚本使您可以通过以下方式提高MariaDB安装的安全性:

  • 您可以为根帐户设置密码。
  • 删除可从localhost外部访问的root帐户。
  • 删除匿名用户帐户。
  • 擦除测试数据库,默认情况下匿名用户可以访问该数据库。

建议您为所有问题选择是(y)。

如何创建MariaDB数据库和用户/密码

要创建数据库并授予用户使用数据库的权限,请运行:

mysql -u root -p

出现提示时输入MariaDB的根密码。
创建一个名为wpdb的数据库,并授予用户对此数据库的权限。
更改数据库名称(wpdata)和用户名(wpuser)/更改密码(wppassword):

CREATE DATABASE wpdb;
GRANT ALL ON wpdb.* TO 'wpuser' IDENTIFIED BY 'wppasword';
quit

测试新的数据库和用户/密码组合:

mysql -u wpuser -p'wppasword' wpdb

在Debian 10上为您的LAMP安装PHP 7.3

PHP是使产生动态网页成为可能的难题的最后一部分。

PHP还是LAMP堆栈的流行Web开发引擎。
因此,让我们安装PHP:

sudo apt install php libapache2-mod-php

查找和安装PHP模块

我还将安装同样允许MySQL访问和GD lib的PHP模块:

sudo apt install php-mysql php-gd

可以使用apt-cache命令和grep命令的组合获得所有PHP模块的列表:

apt-cache search php | egrep 'module' | grep default

输出示例:

libapache2-mod-php - server-side, HTML-embedded scripting language (Apache 2 module) (default)
php-bcmath - Bcmath module for PHP [default]
php-bz2 - bzip2 module for PHP [default]
php-curl - CURL module for PHP [default]
php-dev - Files for PHP module development (default)
php-enchant - Enchant module for PHP [default]
php-gd - GD module for PHP [default]
php-gmp - GMP module for PHP [default]
php-imap - IMAP module for PHP [default]
php-interbase - Interbase module for PHP [default]
php-intl - Internationalisation module for PHP [default]
php-json - JSON module for PHP [default]
php-ldap - LDAP module for PHP [default]
php-mbstring - MBSTRING module for PHP [default]
php-mysql - MySQL module for PHP [default]
php-odbc - ODBC module for PHP [default]
php-pgsql - PostgreSQL module for PHP [default]
php-pspell - pspell module for PHP [default]
php-readline - readline module for PHP [default]
php-recode - recode module for PHP [default]
php-snmp - SNMP module for PHP [default]
php-soap - SOAP module for PHP [default]
php-sqlite3 - SQLite3 module for PHP [default]
php-sybase - Sybase module for PHP [default]
php-tidy - tidy module for PHP [default]
php-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]
php-xmlrpc - XMLRPC-EPI module for PHP [default]
php-zip - Zip module for PHP [default]

重新启动Apache:

sudo systemctl restart apache2.service

在Debian 10上与LAMP一起测试PHP安装

创建一个名为test.php的文件,如下所示:

sudo vi /var/www/theitroad.local/public_html/test.php

追加以下代码:

<?php
  phpinfo();
?>

保存并关闭文件。
设置权限:

sudo chown -R cbzuser:cbzuser /var/www/theitroad.local/
sudo chmod 0444 /var/www/theitroad.local/
sudo find /var/www/theitroad.local/ -type d -print0 | sudo xargs -0 -I {} chmod 0445 "{}"

打开一个Web浏览器并输入URL:

http://your-ip/test.php
http://www.theitroad.local/test.php

此页面表明您的PHP 7.3在LAMP服务器上正常工作。
现在是时候使用rm命令删除该页面,因为它暴露了敏感信息:

sudo rm -v /var/www/theitroad.local/public_html/test.php