lamp在centos上的最佳实践是什么
一、基础环境搭建最佳实践
-
系统准备:更新与最小化安装
搭建前执行sudo yum update -y
更新系统,确保所有软件包为最新版本,修复已知安全漏洞。建议选择CentOS Stream或Rocky Linux等滚动更新发行版,获得更及时的安全支持。安装时仅选择必要组件(如Minimal Install
),减少不必要的服务占用系统资源。 -
组件选择:MariaDB替代MySQL
CentOS 7及以上版本默认使用MariaDB(MySQL的分支),兼容MySQL协议且维护更活跃。安装命令:sudo yum install mariadb-server mariadb -y
。启动服务并设置开机自启:sudo systemctl start mariadb & & sudo systemctl enable mariadb
。 -
PHP版本管理:使用Remi仓库获取最新稳定版
CentOS默认仓库的PHP版本较旧,建议启用Remi仓库安装最新稳定版(如PHP 8.1/8.2)。步骤:①安装EPEL仓库:sudo yum install epel-release -y
;②安装Remi仓库:sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
;③启用指定PHP版本(以PHP 8.1为例):sudo yum-config-manager --enable remi-php81
;④安装PHP及常用模块:sudo yum install php php-mysqlnd php-gd php-mbstring php-xml -y
。
二、性能优化关键措施
-
Apache优化:调整连接与并发设置
修改/etc/httpd/conf/httpd.conf
文件:①KeepAliveTimeout 2
(减少空闲连接占用资源);②MaxKeepAliveRequests 100
(限制持久连接数量,避免资源耗尽);③启用mod_deflate
压缩(AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
),减少传输数据量;④调整StartServers
、MinSpareServers
、MaxSpareServers
(根据服务器CPU核心数调整,如4核服务器可设为StartServers 4
、MinSpareServers 2
、MaxSpareServers 8
)。 -
MySQL/MariaDB优化:提升数据库性能
编辑/etc/my.cnf
(或/etc/mysql/mariadb.conf.d/50-server.cnf
):①innodb_buffer_pool_size = 1G
(设置为物理内存的50%-70%,用于缓存InnoDB表数据,显著提升查询速度);②innodb_log_file_size = 256M
(增大重做日志文件大小,减少日志刷盘频率);③query_cache_type = 1
、query_cache_size = 64M
(启用查询缓存,缓存SELECT查询结果,适用于读多写少的场景);④定期执行OPTIMIZE TABLE
命令整理碎片,优化表性能。 -
PHP优化:启用Opcode缓存与禁用无用模块
①启用OPcache(PHP内置字节码缓存):编辑/etc/php.ini
,添加opcache.enable=1
、opcache.memory_consumption=128
、opcache.interned_strings_buffer=8
、opcache.max_accelerated_files=4000
,减少PHP脚本编译时间;②禁用不必要的PHP模块(如xdebug
、soap
),降低内存占用;③使用php-fpm
(FastCGI进程管理器)替代传统CGI模式,提升PHP处理效率(需配合Apache的mod_proxy_fcgi
模块)。 -
系统级优化:调整内核与文件系统
编辑/etc/sysctl.conf
:①vm.swappiness = 10
(减少交换分区使用,优先使用物理内存);②vm.dirty_background_ratio = 5
、vm.dirty_ratio = 10
(优化脏页写入策略,平衡性能与数据安全性);③net.ipv4.tcp_tw_reuse = 1
、net.ipv4.tcp_tw_recycle = 1
(复用TCP连接,提升网络性能)。挂载文件系统时添加noatime
选项(/etc/fstab
中添加defaults,noatime
),减少文件访问时间记录,降低磁盘I/O。
三、安全加固核心策略
-
防火墙配置:限制端口访问
使用firewalld
(推荐)或iptables
配置规则:①允许HTTP(80端口)和HTTPS(443端口):sudo firewall-cmd --permanent --add-service=http & & sudo firewall-cmd --permanent --add-service=https & & sudo firewall-cmd --reload
;②仅允许可信IP访问SSH(22端口):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
,防止暴力破解。 -
SELinux:启用并配置安全策略
SELinux提供强制访问控制,增强系统安全性。执行sudo setenforce 1
启用SELinux(/etc/selinux/config
中SELINUX=enforcing
),并通过audit2allow
工具处理拒绝日志,生成自定义策略(如允许Apache访问特定目录)。 -
服务与账户安全:最小权限原则
①禁用root远程登录:编辑/etc/ssh/sshd_config
,设置PermitRootLogin no
,使用普通用户登录后切换至root(su -
);②设置强密码:使用passwd
命令为用户设置包含大小写字母、数字和特殊字符的密码(长度≥12位);③定期更新软件包:sudo yum update -y
,修复已知安全漏洞。
四、自动化与监控维护
-
自动化部署:使用脚本简化流程
编写Shell脚本(如lamp-setup.sh
),整合系统更新、组件安装、配置修改等步骤,实现一键部署。示例脚本(部分):#!/bin/bash sudo yum update -y sudo yum install -y httpd mariadb-server php php-mysqlnd sudo systemctl start httpd & & sudo systemctl enable httpd sudo systemctl start mariadb & & sudo systemctl enable mariadb sudo mysql_secure_installation
执行
chmod +x lamp-setup.sh & & ./lamp-setup.sh
即可完成基础环境搭建。 -
监控与日志:及时发现性能瓶颈
使用top
、vmstat
、iostat
命令实时监控CPU、内存、磁盘I/O使用情况;安装监控工具(如Prometheus+Grafana),可视化系统指标(如Apache并发数、MySQL查询响应时间);定期检查日志文件(/var/log/httpd/access_log
、/var/log/mariadb/mariadb.log
),分析异常请求(如大量404错误)或攻击行为(如SQL注入)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: lamp在centos上的最佳实践是什么
本文地址: https://pptw.com/jishu/730114.html