如何在 Ubuntu 20.04 Focal Fossa 上设置 LAMP 服务器如何在 Ubuntu 20.04 Focal Fossa 上设置 LAMP 服务器如何在 Ubuntu 20.04 Focal Fossa 上设置 LAMP 服务器如何在 Ubuntu 20.04 Focal Fossa 上设置 LAMP 服务器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 20.04 Focal Fossa 上设置 LAMP 服务器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

LAMP 是 Web 服务堆栈的传统模型。 LAMP 构建的组件都是开源的,包括:Linux 操作系统、Apache HTTP 服务器、MySQL 关系数据库管理系统和 PHP 编程语言。在这个简短的教程中,我们将在 Ubuntu 20.04 Focal Fossa 上配置基本的 LAMP 服务器。

您可能还对我们关于在 Ubuntu 20.04 上创建基于 docker 的 LAMP 堆栈的文章感兴趣。

在本教程中您将学习:

  • 如何在 Ubuntu 20.04 上安装 LAMP 服务器。

  • 如何打开防火墙端口以允许 HTTP 和 HTTPS 传入流量。

  • 如何使用 PHP 脚本连接到 MySQL 数据库。

Ubuntu 20.04 Focal Fossa 上的 LAMP 服务器设置

在 Ubuntu 20.04 上设置 LAMP 服务器分步说明

  1. 您可以使用 apt 命令并包含最少数量的软件包来安装 LAMP 服务器堆栈:

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

    或者使用 tasksel 命令:

    
    $ sudo tasksel install lamp-server
    
  2. 重启后启用Mysql/MariaDB和Apache:

    
    $ sudo systemctl enable --now mysql
    $ sudo systemctl enable --now apache2
    
  3. 配置 MySQL/MariaDB 数据库。首先,执行安全安装:

    
    $ sudo mysql_secure_installation
    

    接下来,让我们使用 PHP 脚本以编程方式测试与 MySQL 数据库的连接。仅出于测试目的,我们将使用 LOW 密码策略。从命令行连接到 MySQL:

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

    在接下来的步骤中,我们将创建一个示例数据库和一个用户。首先,确认您的密码策略,然后创建新用户 admin 并授予该用户对新 linuxconfig 数据库的完全权限:

    
    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 linuxconfig;
    mysql> CREATE USER `admin`@`localhost` IDENTIFIED WITH mysql_native_password BY 'yourpass';
    mysql> GRANT ALL ON linuxconfig.* TO `admin`@`localhost`;
    mysql> FLUSH PRIVILEGES;
    
    

    接下来,创建以下 PHP 脚本,名为 例如: /var/www/html/php-mysql-connect.php 连接到本地 MySQL 数据库:

    <?php
      $conn = new mysqli("localhost", "admin", "yourpass", "linuxconfig");
      
      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:

    在Ubuntu 20.04上使用PHP脚本连接MySQL数据库

  4. (可选)启用 HTTPS 以提供与我们的 Apache Web 服务器的安全连接。请注意,我们将使用默认的 Apache2 设置和默认的自签名 SSL 证书:

    默认 SSL 证书
    请注意,我们使用的是默认 SSL 证书。建议您上传 SSL 证书或使用 Let’s Encrypt 为您的域生成新证书。

    
    $ sudo a2ensite default-ssl
    $ sudo a2enmod ssl
    $ sudo systemctl restart apache2
    
  5. 
    $ sudo ufw allow in "Apache Full"
    

    您现在可以使用以下内容创建以下脚本 /var/www/html/phpinfo.php 来查看您的 LAMP 配置设置和启用的模块:

    
    <?php phpinfo(); ?>
    

    不要忘记使 PHP 脚本可执行:

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

    使用以下 URL 连接到您的 phpinfo.php 脚本:http://YOURSERVER-OR-IP/phpinfo.php。

疑难解答

服务器请求客户端未知的身份验证方法


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

错误 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;
©2015-2025 Norria support@alaica.com