优化Debian LAMP(Linux+Apache+MySQL/MariaDB+PHP)环境的存储空间,需从系统基础清理、LAMP组件针对性优化、长期管理策略三个维度入手,以下是具体步骤:
分析磁盘空间使用情况
使用df -h查看各分区使用率,定位占用高的分区(如/var、/home);用du -sh /path/to/directory(如du -sh /var/log)查看具体目录大小,结合sort -hr按大小排序,快速找出大目录。
清理APT缓存与无用包
/var/cache/apt/archives/):sudo apt-get clean;.deb文件):sudo apt-get autoclean;sudo apt-get autoremove;sudo apt-get purge package-name。清理临时文件与日志
/tmp目录下的临时文件(谨慎操作,确认无重要文件):sudo rm -rf /tmp/*;/var/log目录下的过期日志: sudo find /var/log -type f -mtime +30 -exec rm -f {} \;(删除30天前的日志);logrotate工具(自动管理日志大小与保留时间):sudo apt-get install logrotate,并配置/etc/logrotate.conf(如设置maxsize 100M、rotate 7)。删除孤儿软件包与旧内核
sudo apt-get install deborphan,然后sudo deborphan | xargs sudo apt-get purge -y;sudo apt-get purge linux-image-x.x.x-x-generic(替换为实际内核版本,可通过dpkg --list | grep linux-image查看)。Apache优化
event模式(适用于高并发场景),修改/etc/apache2/mods-enabled/mpm_prefork.conf(若使用prefork)或/etc/apache2/mods-enabled/mpm_event.conf(event模式),降低MaxRequestWorkers(最大请求数)与KeepAliveTimeout(保持连接超时)的值,减少内存占用;sudo a2dismod module-name(如status、autoindex),仅启用需要的模块(如rewrite、ssl)。MySQL/MariaDB优化
OPTIMIZE TABLE table_name;(针对InnoDB/MyISAM表),减少碎片占用;wordpress_old),可通过mysql -u root -p -e "SHOW DATABASES;"查看数据库列表;my.cnf(或/etc/mysql/mariadb.conf.d/50-server.cnf)中的innodb_buffer_pool_size(设置为物理内存的50%-70%,提升InnoDB性能)、key_buffer_size(MyISAM索引缓存,若不用MyISAM可设小)。PHP优化
php-opcache扩展(sudo apt-get install php-opcache),修改php.ini(/etc/php/8.x/apache2/php.ini)中的opcache.enable=1、opcache.memory_consumption=128(内存分配),缓存编译后的PHP脚本,减少重复解析时间;/var/lib/php/sessions/(默认路径),定期删除过期会话(如sudo find /var/lib/php/sessions/ -type f -mtime +1 -exec rm -f {} \;)。定期自动化清理
编写Shell脚本(如cleanup.sh),包含上述清理命令(如apt-get clean、logrotate、find /tmp -type f -mtime +7 -exec rm -f {} \;),通过cron定时执行(如每天凌晨2点):sudo crontab -e添加0 2 * * * /path/to/cleanup.sh。
使用磁盘空间分析工具
ncdu(命令行工具):sudo apt-get install ncdu,运行ncdu /扫描根目录,直观查看大文件/目录;baobab(图形界面工具):sudo apt-get install baobab,通过GUI界面分析磁盘使用情况。调整分区或扩容
/var)空间不足,可使用gparted(图形工具)调整分区大小(需备份数据);fdisk/gdisk分区,mkfs格式化,挂载到指定目录(如/home),并将原目录数据迁移过去。压缩不常用文件
对于大型但不常用的文件(如备份文件、日志归档),使用gzip/bzip2压缩:gzip large_file.log(生成large_file.log.gz),节省空间。
注意事项:
/var/www/html、/etc、数据库备份);/boot、/lib),防止系统无法启动;