centos lamp安装教程
小樊
35
2026-01-02 08:47:37
CentOS LAMP 安装教程
一 环境准备与版本选择
- 本教程适用于 CentOS 7/8,以 Apache + MariaDB + PHP 为例(CentOS 7/8 默认仓库使用 MariaDB 作为 MySQL 替代)。
- 建议先更新系统并安装常用工具:
- CentOS 7:sudo yum update -y
- CentOS 8:sudo dnf update -y
- 建议全程使用 root 或具备 sudo 权限的账号操作。生产环境请避免关闭 SELinux 和防火墙,按需放行端口与服务。
二 CentOS 7 快速安装步骤
- 安装并启动 Apache
- sudo yum install -y httpd httpd-tools
- sudo systemctl start httpd && sudo systemctl enable httpd
- 安装并启动 MariaDB
- sudo yum install -y mariadb-server mariadb
- sudo systemctl start mariadb && sudo systemctl enable mariadb
- 运行安全初始化:sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 登录等)
- 安装 PHP 及常用扩展
- sudo yum install -y php php-mysql php-gd php-mbstring php-xml
- 验证安装
- 创建测试文件:echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/ 与 http://服务器IP/info.php
- 防火墙放行(如启用 firewalld)
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
- sudo firewall-cmd --reload
三 CentOS 8 快速安装步骤
- 安装并启动 Apache
- sudo dnf install -y httpd httpd-tools
- sudo systemctl start httpd && sudo systemctl enable httpd
- 安装并启动 MariaDB
- sudo dnf install -y mariadb-server mariadb
- sudo systemctl start mariadb && sudo systemctl enable mariadb
- 运行安全初始化:sudo mysql_secure_installation
- 安装 PHP 7.4(通过 Remi 仓库)
- 启用 EPEL 与 Remi:sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
- sudo dnf -y install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
- 查看并启用 PHP 模块:sudo dnf module list php && sudo dnf module reset php && sudo dnf module enable php:remi-7.4
- 安装 PHP 与组件:sudo dnf install -y php php-opcache php-gd php-curl php-mysqlnd
- 如需使用 PHP-FPM(与某些模块/部署方式更契合):sudo systemctl start php-fpm && sudo systemctl enable php-fpm
- 验证安装
- echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/ 与 http://服务器IP/info.php
- 防火墙放行(如启用 firewalld)
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
- sudo firewall-cmd --reload
四 常见问题与优化建议
- 无法访问网站
- 检查服务状态:systemctl status httpd;如未运行则启动。
- 检查防火墙:firewall-cmd --list-services;如未放行,执行 firewall-cmd --permanent --add-service=http(以及 https)后重载。
- PHP 不解析
- 确认已安装 PHP 包并重启 Apache:sudo systemctl restart httpd;访问 info.php 验证。
- SELinux 导致访问或数据库权限异常
- 排查模式:getenforce;临时宽松:sudo setenforce 0(仅测试用途)。生产环境建议保留 Enforcing 并通过策略/布尔值精细化放行,而非直接禁用。
- 需要远程连接数据库
- 在 MariaDB 中创建用户并授权远程访问(示例):
- CREATE USER ‘newuser’@‘%’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL ON . TO ‘newuser’@‘%’ WITH GRANT OPTION;
- FLUSH PRIVILEGES;
- 防火墙放行 3306 端口:firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload。
- 性能与安全优化
- Apache:调整 MaxKeepAliveRequests、KeepAliveTimeout;开启压缩等。
- MariaDB:根据内存调优 innodb_buffer_pool_size。
- PHP:启用 opcache,仅保留必要扩展,隐藏版本信息。