本文共 2900+ 字,阅读完约需 13 分钟,建议收藏后看。 后端开发和运维岗,LAMP(Linux+Apache+MySQL+PHP)依然是面试高频区。 不管你是运维、后端、还是DevOps,这些题大概率会被问到。 我从真实题库里整理了 30道核心问题,涵盖基础、架构、优化、故障排查。 👉 背下来不一定行,但理解这套逻辑,面试绝对加分。

LAMP 是指 Linux、Apache、MySQL 和 PHP。它是一套用于构建动态网站和 Web 应用的开源技术栈。本文将介绍 30 道常见 LAMP 面试题,涵盖基础概念、架构、性能优化、故障排查等,帮助你在面试中脱颖而出。
答:LAMP 是 Linux、Apache、MySQL 和 PHP 的首字母缩写。它是一组开源软件,常用于搭建动态网站和 Web 应用。其中 Linux 是操作系统,Apache 是 Web 服务器,MySQL 是关系型数据库,PHP 是服务器端脚本语言。
答:典型工作流程:
📌 记忆口诀:Apache 守门,PHP 干活,MySQL 存数据。
答:Linux 是 LAMP 栈的操作系统基础,负责管理硬件资源、文件系统、进程等。选择 Linux 的原因:开源免费、稳定、安全、性能优异,且与 Apache、MySQL、PHP 兼容性好。
答:Apache HTTP Server 是开源的 Web 服务器。主要特性:支持虚拟主机、模块化设计(如 mod_rewrite、mod_ssl)、跨平台、支持多种语言(PHP、Perl、Python)及强大的认证与访问控制。
答:
对比项 | Apache | Nginx |
|---|---|---|
模型 | 多进程/线程 | 事件驱动 |
并发 | 较低 | 高 |
动态处理 | 内置强 | 依赖后端 |
静态文件 | 一般 | 很强 |
答:使用以下命令:
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo mysql_secure_installation
然后创建 info.php文件测试 PHP:
<?php phpinfo(); ?>
答:MySQL 是开源关系型数据库管理系统(RDBMS),用于存储 Web 应用的数据,如用户信息、文章、产品等。在 LAMP 中,PHP 通过 SQL 语句与 MySQL 交互。
答:
特性 | InnoDB | MyISAM |
|---|---|---|
事务支持 | 支持 | 不支持 |
外键 | 支持 | 不支持 |
锁粒度 | 行锁 | 表锁 |
全文索引 | 支持(5.6+) | 支持 |
崩溃恢复 | 更好 | 一般 |
答:PHP 是服务器端脚本语言,嵌入 HTML 中。当 Apache 收到 .php 文件请求时,调用 PHP 模块(如 mod_php)或通过 PHP-FPM 解释执行,生成动态 HTML 返回客户端。
答:PHP-FPM(FastCGI Process Manager)是 PHP 的 FastCGI 实现,用于管理 PHP 进程池。优势:提高高并发性能、进程管理灵活、与 Nginx/Apache 配合良好。
答:
答:
答:
sudo netstat -tulpn | grep :80)。sudo apachectl configtest。/var/log/apache2/error.log。答:
max_connections。SHOW PROCESSLIST查看正在运行的查询。答:
答:.htaccess 是 Apache 的目录级配置文件,允许在不修改主配置文件的情况下重写 URL、设置认证、控制访问等。使用前需在 httpd.conf中启用 AllowOverride All。
答:在 /etc/apache2/sites-available/创建配置文件,例如 example.com.conf:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用:sudo a2ensite example.com.conf,然后重载 Apache。
答:mod_rewrite 是 Apache 的 URL 重写模块,用于将动态 URL 转换为对 SEO 友好的静态形式。例如:
RewriteEngine On
RewriteRule ^product/([0-9]+)$ product.php?id=$1 [L]
将 product/123映射到 product.php?id=123。
答:
/var/www/html)和数据库(mysqldump)。答:索引是加速数据检索的数据结构。选择索引列的原则:
答:使用预处理语句(Prepared Statements)与参数绑定。例如 PDO:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
也可以使用转义函数(如 mysqli_real_escape_string),但预处理更推荐。
答:
/var/log/apache2/access.log/var/log/apache2/error.log
可以使用 tail -f实时监控。答:使用 mpm_prefork或 mpm_event模块调整 MaxRequestWorkers(或 MaxClients)。例如在 /etc/apache2/mods-enabled/mpm_prefork.conf中设置:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 3000
</IfModule>
答: 备份:
mysqldump -u root -p database_name > backup.sql
恢复:
mysql -u root -p database_name < backup.sql
答:主从复制是将主库的数据变更异步同步到一个或多个从库。配置步骤:
CHANGE MASTER TO并启动 START SLAVE。答:
php -l file.php)。答:
MaxRequestWorkers和 ServerLimit。答:
答:常用工具:
top, htop, iostat, vmstatmod_statusSHOW STATUS, SHOW PROCESSLIST, MySQL Workbench答:
/var/www/html/(或虚拟主机目录)。sudo chown -R www-data:www-data /var/www/html/appconfig.php)。http://your-server-ip/app。掌握 LAMP 栈不仅对面试至关重要,更是理解 Web 基础架构的关键。通过以上 30 道问题,你可以系统复习 LAMP 的核心概念、常见故障与优化手段。祝面试顺利!