lamp环境搭建实验报告

知识 2026-10-17 04:00:56 783

LAMP 不是环境四个软件的首字母缩写那么简单,它是搭建一套在 Linux 上跑 Web 服务的经典组合:Linux + Apache + MySQL + PHP。我这次实验用的实验是 Ubuntu 22.04,Apache 2.4,报告MySQL 8.0,环境PHP 8.1。搭建装完之后的实验感受是——这套东西稳定得有点无聊,但每一步都有坑,报告值得记下来。环境

先装 Apache。搭建命令就一行:sudo apt install apache2。实验装完浏览器访问本机 IP,报告看到那个默认的环境 "It works!" 页面,说明 Web 服务器已经跑起来了。搭建但这里有个细节:如果你在虚拟机里装,实验记得把网络模式设成桥接或者 NAT 端口转发,不然宿主机根本连不上。我一开始用 host-only,折腾了十分钟才发现是网络配置的问题,跟 Apache 本身没关系。

MySQL 的安装稍微麻烦点。Ubuntu 22.04 默认源里是 MySQL 8.0,直接 sudo apt install mysql-server 就行。装完之后默认 root 用户用的是 auth_socket 插件认证,也就是说你得用 sudo mysql 才能进去,直接 mysql -u root -p 会报错。这个设计其实挺合理,本地开发免密码,但第一次遇到的人容易懵。进去之后我建了个测试库和用户:

CREATE DATABASE testdb; CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password123'; GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost'; FLUSH PRIVILEGES;

PHP 这块要注意版本兼容。Ubuntu 22.04 自带的 PHP 8.1 跟 Apache 配合需要装 libapache2-mod-php,不然 Apache 不认识 .php 文件,会直接把它当文本下载。装完重启 Apache,写个 info.php 放到 /var/www/html/ 下面,内容就一行 <?php phpinfo(); ?>。访问之后能看到那一大页紫色表格,说明 PHP 模块加载成功了。

但这里有个权限问题。默认 /var/www/html/ 的属主是 root,你用普通用户往里写文件得 sudo。我习惯把当前用户加到 www-data 组,然后改目录权限:

sudo usermod -a -G www-data $USER sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html

这样后续开发不用每次都 sudo,省事不少。不过生产环境别这么干,权限放太开有安全风险。

接下来是 PHP 连 MySQL。装 php-mysql 扩展:sudo apt install php-mysql。然后写个测试脚本:

<?php $conn = new mysqli('localhost', 'testuser', 'password123', 'testdb'); if ($conn->connect_error) {  die('连接失败: ' . $conn->connect_error); } echo 'MySQL 连接成功'; $conn->close(); ?>

如果浏览器输出 "MySQL 连接成功",那 LAMP 就算跑通了。我遇到过一次报错 "Access denied for user",原因是 MySQL 8.0 默认的密码加密方式跟旧版 PHP 客户端不兼容。解决办法是在 MySQL 里执行 ALTER USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password123';。这个坑在 PHP 7.4 以下版本更常见,PHP 8.1 其实已经支持 caching_sha2_password 了,但有些老代码还是得改。

整个搭建过程大概二十分钟,其中一半时间花在排错上。LAMP 这套组合的生命力在于它的简单直接——没有容器编排,没有服务网格,就是四个东西装在一起干活。对于学习 Web 开发原理来说,比直接上 Docker 更透明。你能看到每个组件在哪、配置文件长什么样、日志往哪写。这种可见性在调试的时候特别有用。

最后提一句,Ubuntu 的 tasksel 工具可以一键装 LAMP:sudo tasksel install lamp-server。但我建议还是手动一步步来,因为自动安装会帮你做很多决定,比如默认密码、目录权限、模块配置,出了问题你都不知道从哪查起。手动装一遍,心里有数。

本文地址:http://www.79wt.cn/news/1367c1899845.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

友情链接