本文記錄在 Red Hat Enterprise Linux AS 3.0 Update 1 環境下,移除系統預裝 RPM 包,從源碼編譯安裝 Apache 2、PHP 4、MySQL 4.0 的完整流程,供同類環境部署參考。
# useradd software
# mkdir -p /home/software
# chown software:software /home/software
將所有源碼壓縮包(httpd, php, mysql 等)上傳至 /home/software 目錄。
# rpm -e --nodeps httpd-2.0.46-26.ent
# rpm -e --nodeps php-4.3.2-8.ent
# rpm -e --nodeps mysql-3.23.58-1.ent # 若存在
注意:--nodeps 強制忽略依賴關係,請確認無其他關鍵服務依賴這些包。
# cd /home/software
# tar zxvf mysql-4.0.17.tar.gz
# cd mysql-4.0.17
# ./configure --prefix=/usr/local/mysql \
--with-charset=gbk \
--without-debug \
--enable-assembler \
--without-isam \
--with-pthread \
--enable-thread-safe-client \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--with-raid
關鍵參數說明:
--with-charset=gbk:預設字符集設為 GBK,適配中文環境--without-debug:移除調試符號,減小體積、提升性能--enable-assembler:啟用汇編優化的字符串函數--without-isam:移除已棄用的 ISAM 存儲引擎--with-pthread:強制使用 POSIX 線程庫--enable-thread-safe-client:線程安全的客戶端庫*-ldflags=-all-static:靜態鏈接客戶端/服務端,避免運行時庫依賴問題--with-raid:啟用 RAID 支持(MyISAM 表)# make
# make install
# /usr/local/mysql/scripts/mysql_install_db
# cd /usr/local
# groupadd mysql
# useradd -g mysql -M -s /sbin/nologin mysql
# chmod 750 mysql -R
# chgrp mysql mysql -R
# chown mysql mysql/var -R
# cp /home/software/mysql-4.0.17/support-files/my-medium.cnf /etc/my.cnf
# cp /home/software/mysql-4.0.17/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# cd /usr/local/mysql/libexec
# cp mysqld mysqld.old
# strip mysqld # 剝離符號表,進一步減小體積
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# service mysqld start
# pstree | grep mysqld
# 应看到 mysqld 進程樹,表明服務正常運行
# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
# ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
# mysqladmin -u root password 'YourStrongPassword'
# mysql -u root -p
mysql> USE mysql;
mysql> DELETE FROM user WHERE Password = '';
mysql> FLUSH PRIVILEGES;
mysql> QUIT
/etc/my.cnf 關鍵參數[client]
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
key_buffer_size = 16M
max_allowed_packet = 1M
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
# 其餘參數按硬件資源調整
修改後重啟服務生效:service mysqld restart
MySQL 安裝完成後,可繼續編譯安裝 Apache 2 與 PHP 4,並在 httpd.conf 中載入 libphp4.so、設置 AddType application/x-httpd-php .php 即可構建完整 APM 環境。建議根據實際業務量進一步調整 my.cnf 中的緩存、連接數、InnoDB 相關參數。