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

Linux + Apache + MySQL + PHP (LAMP) 典型生產環境配置實戰

     編輯:MySQL 資料庫相關知識

調試環境

  • OS:RedHat 9.0
  • Apache:1.3.29
  • MySQL:3.23.58
  • PHP:4.3.4

前置條件: 必須移除系統預裝的 Apache/MySQL/PHP (rpm -e),避免衝突。

1. MySQL 3.23.58 原始碼安裝

下載與解壓

wget https://www.mysql.com/downloads/mysql-3.23.58.tar.gz
tar zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58

配置參數詳解

./configure \
    --prefix=/usr/local/mysql \
    --sysconfdir=/etc \
    --localstatedir=/var/lib/mysql \
    --with-charset=gbk \
    --with-extra-charsets=all
參數用途
--prefix安裝根目錄
--sysconfdirmy.cnf 配置檔目錄
--localstatedir資料庫檔案儲存目錄
--with-charset預設字元集 (中文環境建議 gbk/utf8)
--with-extra-charsets編譯支援所有字元集

編譯安裝與初始化

make
make install

# 初始化系統資料庫
/usr/local/mysql/bin/mysql_install_db

# 建立 mysql 系統用戶 (若不存在)
useradd -M -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql

# 關鍵:修正資料目錄權限 (解決啟動失敗主因)
chown -R mysql:mysql /var/lib/mysql
chown -R root:mysql /usr/local/mysql
chmod 755 /usr/local/mysql/bin/*

# 啟動
/usr/local/mysql/bin/safe_mysqld &

常見啟動失敗:Socket 連線錯誤

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

根因: /var/lib/mysql 權限不屬於 mysql 用戶,導致 safe_mysqld 無法建立 socket 檔案。

徹底修正權限腳本:

chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chmod 777 /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a

2. Apache 1.3.29 安裝 (啟用 DSO)

tar zxvf apache_1.3.29.tar.gz
cd apache_1.3.29
./configure --prefix=/usr/local/apache --enable-module=so
make
make install

3. PHP 4.3.4 安裝 (Apache 模組模式)

tar zxvf php-4.3.4.tar.gz
cd php-4.3.4
./configure --prefix=/usr/local/php \
    --with-apxs=/usr/local/apache/bin/apxs \
    --with-mysql=/usr/local/mysql \
    --with-config-file-path=/usr/local/lib \
    --enable-track-vars \
    --with-zlib \
    --with-gd \
    --enable-mbstring
make
make install
cp php.ini-dist /usr/local/lib/php.ini

4. 整合配置

Apache httpd.conf

# 載入 PHP 模組 (make install 通常自動加入)
LoadModule php4_module libexec/libphp4.so
AddModule mod_php4.c

# PHP 副檔名解析
AddType application/x-httpd-php .php .phtml .php3 .inc
AddType application/x-httpd-php-source .phps

# 預設首頁
DirectoryIndex index.php index.html index.htm

# 安全性
Options FollowSymLinks MultiViews

PHP php.ini

register_globals = Off
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
extension_dir = "/usr/local/php/lib/php/extensions"
; extension=mysql.so (通常靜態編譯已內建)

5. 啟動驗證

/usr/local/apache/bin/apachectl start
# 瀏覽器訪問 https://server_ip/ 測試

重要補充:Apache 進程數限制

Apache 1.3.x 預設 HARD_SERVER_LIMIT 256,修改 src/include/httpd.h 重新編譯可提高 (如 2048)。

軟體下載彙總

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved