首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 下 Apache + PHP + MySQL + Perl + mod_perl 完整編譯優化實戰筆記

     編輯:MySQL 資料庫相關知識

硬體與基礎環境

  • 硬碟 9.2GB、記憶體 128MB、網卡 EEPro100
  • OS:RedHat 6.2
  • 安裝時選擇 FTP、DNS 服務

核心優化(針對 2.2 核心)

1. 關閉無用服務

cd /etc/rc.d/init.d
./sendmail stop; ./apmd stop; ./kudzu stop
rpm -e --nodeps sendmail kudzu nfs-utils

2. 核心參數調整

  • /usr/src/linux/include/linux/tasks.h:NR_TASKS 5120→3072、MIN_TASKS_LEFT_FOR_ROOT 16→24
  • /usr/src/linux/Makefile:編譯器改 egcs,CFLAGS 加入 -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions

3. 核心重編

make xconfig  # 依硬體選擇模組
make dep && make clean && make bzlilo && make modules && make modules_install

軟體版本清單

mm-1.1.3.tar.gz
mysql-3.22.32.tar.gz
apache_1.3.12.tar.gz
php-4.0.0.tar.gz (含 Zend Optimizer)
phpMyAdmin_2.0.5.tar.gz
mod_perl-1.24.tar.gz
perl-5.6.0.tar.gz
DBI-1.14.tar.gz, DBD-mysql, Msql-Mysql-modules 等 Perl 模組

編譯安裝順序與關鍵參數

  1. mm:./configure --disable-shared --prefix=/usr
  2. MySQL:
    CC=egcs OPTIM="-O9 ..." ./configure --prefix=/mysql
    make && make install
    /mysql/bin/mysql_install_db
    cp /mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
    ln -s ../init.d/mysql /etc/rc.d/rc3.d/S70mysql
  3. Apache(第一次 configure,為 PHP/Perl 準備):
    CC=egcs OPTIM="..." CFLAGS="-DDYNAMIC_MODULE_LIMIT=0" ./configure --prefix=/apache
  4. PHP:
    CC=egcs OPTIM="..." ./configure --prefix=/usr --with-apache=../apache_1.3.12 --enable-safe-mode --with-mm --enable-inline-optimization --enable-memory-limit --enable-track-vars --with-mysql=/mysql
    make && make install
  5. mod_perl:
    perl Makefile.PL EVERYTHING=1 APACHE_SRC=../apache_1.3.12/src USE_APACI=1 DO_HTTPD=1
    make && make install
  6. Apache(最終編譯,啟用 PHP4 + Perl 模組):
    EAPI_MM=SYSTEM CC=egcs OPTIM="..." CFLAGS="-DDYNAMIC_MODULE_LIMIT=0" \
    ./configure --prefix=/apache \
      --activate-module=src/modules/php4/libphp4.a --enable-module=php4 \
      --activate-module=src/modules/perl/libperl.a --enable-module=perl
    make && make install
    cp /apache/bin/apachectl /etc/rc.d/init.d/httpd
    ln -s ../init.d/httpd /etc/rc.d/rc3.d/S80httpd
  7. ePerl:perl Makefile.PL && make && make test && make install

優化重點總結

  • 全套使用 egcs + -O9 激進優化(針對 Pentium Pro)
  • mm 共享記憶體庫加速 Session 處理
  • --enable-inline-optimization、--enable-memory-limit 強化 PHP 效能
  • Apache 靜態編譯 PHP/Perl 減少 DSO 開銷
  • 核心精簡行程上限、優化調度器

現代視角補充

現今建議:

  • 使用發布套件管理器(yum/apt)或 Docker 部署,避免手動編譯維護負擔
  • PHP 7+ 已內建 mysqlnd,效能遠超舊版
  • Apache 2.4 + PHP-FPM (FastCGI) 架構取代 mod_php
  • MySQL 8.0 / MariaDB 10+ 提供更佳優化器與功能
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved