cd /home/tmp
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
tar -zxvf mysql-5.1.33.tar.gz
cd mysql-5.1.33
./configure --prefix=/usr/local/mysql \
--with-charset=utf8 --with-collation=utf8_general_ci \
--with-extra-charsets=all \
--with-plugins=innobase,myisam,partition \
--enable-thread-safe-client
make && make install
# 後續配置
cd /usr/local/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/my-medium.cnf /etc/my.cnf # 選擇適合記憶體的模板
# 編輯 /etc/my.cnf [mysqld] 區段新增: user=mysql, default-character-set=utf8
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
# 啟動腳本與服務註冊
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
# 設定 root 密碼與遠程授權
/usr/local/mysql/bin/mysql -u root
# 在 mysql> 提示符下:
USE mysql;
UPDATE user SET Password=PASSWORD('NewRootPass') WHERE User='root';
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost'; -- 允許遠程
FLUSH PRIVILEGES;
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-ssl --enable-deflate \
--with-mpm=prefork
make && make install
# 設定開機啟動
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
chmod 755 /etc/init.d/httpd
chkconfig --add httpd
chkconfig httpd on
cd /home/tmp
tar -zxvf 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=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-zlib --with-libxml-dir --with-xsl \
--enable-mbstring --enable-zend-multibyte \
--enable-sockets --enable-soap --enable-zip \
--with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir
make && make install
cp php.ini-production /usr/local/php/lib/php.ini
# 編輯 php.ini: date.timezone = Asia/Taipei, extension=pdo_mysql.so, mysqli.so
# 編輯 /usr/local/apache2/conf/httpd.conf
# 確認載入模組:
LoadModule php5_module modules/libphp5.so
# 新增:
AddType application/x-httpd-php .php .php5 .phtml
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
# 重啟 Apache
/usr/local/apache2/bin/apachectl restart
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
-- 建議建立專用應用帳號而非 root 遠程
# /etc/my.cnf 或 /usr/local/mysql/etc/my.cnf
[mysqld]
bind-address = 0.0.0.0 # 監聽所有介面,預設 127.0.0.1 僅本機
# skip-networking # 確保此行被註解或刪除
修改後 `service mysqld restart`。
# iptables (CentOS 6/7)
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
# firewalld (CentOS 7+)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
# ufw (Ubuntu)
ufw allow 3306/tcp
# 遠端機器測試
mysql -h ServerIP -u root -p
telnet ServerIP 3306
sudo apt-get update
sudo apt-get install mysql-server apache2 php5 libapache2-mod-php5 php5-mysql
# 安裝過程會提示設定 root 密碼
# 遠程授權同上: GRANT ... @'%'; 修改 /etc/mysql/my.cnf bind-address=0.0.0.0; service mysql restart