如何在ubuntu 20.04 安装LAMP 服务器

LAMP是web服务堆栈的传统模型。LAMP构建的组件都是开源的,包括:Linux操作系统、ApacheHTTP服务器、MySQL关系数据库管理系统和PHP编程语言。

我们可以使用“APT”命令安装Lamp服务器堆栈:

$ sudo apt install php-mysql libapache2-mod-php mysql-server

或者使用tasksel命令:

$ sudo tasksel install lamp-server

启用重新启动后,自动启动Mysql/MariaDB和Apache:

$ sudo systemctl enable --now mysql
$ sudo systemctl enable --now apache2

配置mysql / mariadb数据库。
首先,执行安全安装:

$ sudo mysql_secure_installation

从命令行连接到MySQL:

root@onitroad:~# mysql -u root -p

我们将创建一个示例数据库和用户。

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

mysql> CREATE DATABASE onitroad;
mysql> CREATE USER `admin`@`localhost` IDENTIFIED WITH mysql_native_password BY 'yourpass';
mysql> GRANT ALL ON onitroad.* TO `admin`@`localhost`;
mysql> FLUSH PRIVILEGES;

创建一个php脚本/var/www/html/php-mysql-connect.php,用于连接到本地MySQL数据库:

<?php
  $conn = new mysqli("localhost", "admin", "yourpass", "onitroad");

  if ($conn->connect_error) {
    die("ERROR: Unable to connect: " . $conn->connect_error);
  } 
  echo 'Connected to the database.
';
  $conn->close();
?>

为脚本添加可执行权限

$ sudo chmod +x /var/www/html/php-mysql-connect.php

使用浏览器打开
http://localhost/php-mysql-connect.php
查看PHP脚本是否已连接到Ubuntu 20.04上的MySQL数据库

启用HTTPS,我们将使用默认的Apache2设置,其中包含默认的自签名SSL证书:
请注意,我们使用的是默认SSL证书。建议您上载SSL证书或者使用Let's Encrypt为您的域生成新证书。

$ sudo a2ensite default-ssl
$ sudo a2enmod ssl
$ sudo systemctl restart apache2

最后,打开防火墙端口80和443允许远程传入流量:

$ sudo ufw allow in "Apache Full"

创建一个php脚本,查看 LAMP 配置设置和启用的模块:

/var/www/html/phpinfo.php

<?php phpinfo(); ?>

赋予可执行权限:

chmod +x /var/www/html/phpinfo.php

浏览器打开
http://YOURSERVER-OR-IP/phpinfo.php

常见问题

The server requested authentication method unknown to the client

服务器请求客户端未知的身份验证方法,
此错误意味着我们无法使用密码对用户进行身份验证。

使用下面命令为用户设置密码

mysql> ALTER user 'username'@'localhost' identified with mysql_native_password by 'password';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

错误1819(HY000):密码不满足当前的策略要求

查看密码策略并确保给定的密码符合要求:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+

或者,切换到另一个密码策略。
例如,下面的命令将切换到low密码策略:

mysql> SET GLOBAL validate_password.policy = LOW;
日期:2020-07-07 20:55:39 来源:oir作者:oir