centos

lamp在centos上的最佳实践

小樊
39
2025-08-06 17:40:58
栏目: 智能运维

以下是在CentOS上部署LAMP(Linux, Apache, MySQL, PHP)环境的最佳实践,涵盖安装、配置、优化及安全等方面:

一、基础安装与配置

  1. 系统更新

    sudo yum update -y  
    
  2. 安装Apache

    sudo yum install httpd -y  
    sudo systemctl start httpd  
    sudo systemctl enable httpd  
    
    • 验证:访问服务器IP,查看默认欢迎页面。
  3. 安装MySQL/MariaDB

    sudo yum install mariadb-server mariadb -y  
    sudo systemctl start mariadb  
    sudo systemctl enable mariadb  
    sudo mysql_secure_installation  # 设置root密码及安全选项  
    
  4. 安装PHP及扩展

    sudo yum install php php-mysql php-fpm php-gd php-mbstring -y  
    sudo systemctl restart httpd  # 重启Apache加载PHP  
    
    • 测试:创建/var/www/html/info.php,内容为<?php phpinfo(); ?>,通过浏览器访问验证。
  5. 配置防火墙

    sudo firewall-cmd --permanent --add-service=http  
    sudo firewall-cmd --permanent --add-service=https  
    sudo firewall-cmd --reload  
    

二、性能优化

  1. 系统级优化

    • 内核参数:调整/etc/sysctl.conf,如vm.swappiness=10(减少交换)、net.ipv4.tcp_tw_reuse=1(优化TCP连接)。
    • 文件系统:使用XFS文件系统,挂载时添加noatime选项减少磁盘I/O。
  2. Apache优化

    • 编辑/etc/httpd/conf/httpd.conf
      • 调整MaxKeepAliveRequests(建议100-200)和KeepAliveTimeout(建议5-10秒)。
      • 启用mod_deflate压缩静态资源,或配置mod_ssl启用HTTPS。
  3. MySQL优化

    • 编辑/etc/my.cnf
      • 增加innodb_buffer_pool_size(建议设置为服务器内存的50%-70%)。
      • 启用查询缓存:query_cache_type=1query_cache_size=64M
    • 定期执行mysqlcheck --optimize --all-databases优化表。
  4. PHP优化

    • 启用Opcode缓存(如OPcache):编辑php.ini,设置opcache.enable=1
    • 禁用不必要的模块,减少资源占用。
    • 使用缓存机制(如Memcached/Redis)存储动态数据。

三、安全加固

  1. 服务安全配置

    • 禁用Apache目录列表:在httpd.conf中设置Options -Indexes
    • 限制MySQL远程访问:修改/etc/my.cnf,设置bind-address=127.0.0.1,仅允许可信IP连接。
  2. 权限管理

    • 确保网站文件权限合理:chown -R apache:apache /var/www/html,目录权限设为755,文件权限设为644
    • 定期备份数据库和网站文件,使用mysqldump工具。
  3. 安全工具

    • 启用SELinux:sudo setenforce 1,并配置安全策略。
    • 定期扫描漏洞:使用lynisOpenVAS进行安全审计。

四、自动化与监控

  1. 自动化部署

    • 使用脚本(如Bash)或Ansible实现LAMP环境的自动化安装配置。
  2. 监控与日志

    • 监控系统资源:使用tophtopvmstat等工具。
    • 配置日志轮转:编辑/etc/logrotate.d/httpd/etc/logrotate.d/mysql-server,避免日志文件过大。

五、注意事项

以上实践综合自官方文档及社区经验,可根据实际业务需求调整。[1,2,3,4,5,6,7,8,9,10,11]

0
看了该问题的人还看了