如何在Debian 10(Buster)上安装LAMP
如何在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