在 Linux 從原始碼編譯安裝 LAMP 棧 (MySQL 5.1、Apache 2.2、PHP 5.3) 並啟用 MySQL 遠端連線,完整指令腳本與關鍵配置說明。
/home/tmp/ # 原始碼暫存
/usr/local/mysql/ # MySQL 安裝根目錄
/usr/local/apache2/ # Apache 安裝根目錄
/usr/local/php/ # PHP 安裝根目錄
cd /home/tmp
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-5.1.33.tar.gz
cd mysql-5.1.33
./configure --prefix=/usr/local/mysql
make && make install
cd /usr/local/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/my-small.cnf /etc/my.cnf
# 編輯 /etc/my.cnf [mysqld] 區段加入 user=mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
cp support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 35 mysql on
# 驗證
/usr/local/mysql/bin/mysql -u root
# 編輯 /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8
cd /home/tmp
tar -zxvf httpd-2.2.13.tar.gz
cd httpd-2.2.13
./configure --prefix=/usr/local/apache2 \
--enable-so --enable-rewrite \
--enable-auth-digest=shared --enable-ssl --enable-deflate
make && make install
cp /usr/local/apache2/bin/apachectl /etc/init.d/
chmod 755 /etc/init.d/apachectl
/etc/init.d/apachectl start
cd /home/tmp
tar -xzf php-5.3.0.tar.gz
cd php-5.3.0
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql \
--with-zlib --with-libxml-dir --with-xsl \
--enable-mbstring --enable-zend-multibyte \
--enable-sockets --enable-soap --enable-zip
make && make install
# 複製 php.ini
cp php.ini-development /usr/local/php/lib/php.ini
# 載入 PDO MySQL (確認 .so 路徑)
# extension=/usr/local/php/lib/php/extensions/.../pdo_mysql.so
/etc/init.d/apachectl restart
# 登入 MySQL
/usr/local/mysql/bin/mysql -u root -p
USE mysql;
# 方法一:修改 root Host 為 % (允許所有 IP)
UPDATE user SET Host = '%' WHERE User = 'root' LIMIT 1;
FLUSH PRIVILEGES;
# 方法二:建立專用遠端帳號 (更安全)
GRANT ALL PRIVILEGES ON db_name.* TO 'app_user'@'192.168.1.%' IDENTIFIED BY 'strong_pwd';
FLUSH PRIVILEGES;
# 編輯 /etc/mysql/my.cnf
# 註解掉 bind-address = 127.0.0.1
# 或改為 bind-address = 0.0.0.0
service mysql restart
# 客戶端機器
mysql -h 192.168.1.x -u app_user -p