2008年3月20日 星期四

LAMP 編譯安裝備忘錄

1. MySQL 編譯 :

首先先增加 mysql 的群組跟使用者

#groupadd mysql
#useradd -g mysql mysql

然後再到 /etc/passwd 的檔案裡
找到 mysql 那一行
把後面的 改成 /sbin/nologin

再到 http://dev.mysql.com/downloads/ 下載新版的 mysql

下載完之後解壓縮在切換至該目錄打入

./configure --prefix=/usr/local/mysql \ <== mysql 檔案安裝位置
--localstatedir=/usr/local/mysql/var \ <== mysql 資料庫存放位置
--with-tcp-port=3306 \ <== 使用的 PORT
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \ <== 這可以在 my.cnf 中指定
--with-charset=utf8 \ <== mysql 5 之後最好只用 utf8
--with-extra-charsets=all \
--with-mysqld-ldflags=-all-static \ <== 靜態編譯可增加 mysql 效能
--with-mysqld-user=mysql

執行完直接 make&&make install

安裝完

執行/usr/local/mysql/bin/mysql_install_db 完成後就會出現 "var"
這個資料夾

再來建立 tmp 的資料夾

mkdir
/usr/local/mysql/tmp

以上完成後更改權限為 mysql

chown -R mysql.mysql /usr/local/mysql

/usr/local/mysql/share/mysql下複製 my-small.cnf 到 /etc/my.cnf

最後執行 /usr/local/mysql/share/mysql/mysql.server start 就完成嚕

2. APACHE 編譯:

apache 編譯很簡單

先建立群組跟使用者

#groupadd www <== suse 原本就有建立
所以可省略 #useradd -g www www
./configure --prefix=/usr/local/apache \ <==
安裝apache的位置
--enable-so \
<== 啟用模組
--enable-ssl \
<== 啟用ssl
--enable-rewrite \
<== 啟用rewrite

執行完直接 make&&make install

安裝完後打入 /usr/local/apache/bin/apachectl start 就完成嚕

3. PHP 編譯:

最後為 PHP 編譯
也是蠻重要的部份

./configure --prefix=/usr/local/php \ <== 安裝php的位置
--with-apxs2=/usr/local/apache/bin/apxs \ <== apache2的目錄位置
--with-mysql=/usr/local/mysql/ \ <== mysql的目錄位置
--with-gd \
--with-jpeg-dir=/usr/lib \
<== 安裝gd模組
--with-zlib-dir=/usr/lib \
--with-libxml-dir=/usr/lib \
--with-openssl \ <== 啟用 ssl
--enable-socket \ <== 啟用socket
--enable-magic-quotes \
--enable-libgcc \
--enable-ftp \ <== 啟用ftp
--enable-mbstring \
--enable-debug \
--enable-fastcgi \
--enable-module=so

如果本身就是一個程式開發者大概會知道需要哪些功能需要或不要
但是如果像我一樣只是網管
往往當成程式人員需要某功能時 而剛好又沒在編譯時開啟
這時就會造成困擾 所以我建議如果只是提供平台給開發者時
最好多開一些功能 要不然到時又要跟你要會很麻煩

在編譯時如遇到問題 大部分都是 XXX-devel.rpm <== 套件沒裝 再來是設定 apache 部分
設定檔 : /usr/local/apache/conf/httpd.conf

編輯 httpd.conf

檢查是否有這段 LoadModule php5_module modules/libphp5.so <== 一般編譯完 PHP 都會自動加入
找到 DirectoryIndex,設定首頁名稱加上 index.php index.phtml index.php3

增加AddType項目,找到並增加以下三行:

AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml

設定檔 : /usr/local/php/lib
複製php.ini-dist 到 /usr/local/php/lib/php.ini
cp php.ini-dist /usr/local/php/lib/php.ini


完成以上動作後重新啟動 /usr/local/apache/bin/apachectl restart

最後用 nestat -tunlp 查詢服務是否都有啟動

沒有留言: