2007年10月28日 星期日

《 LAMP》TKWU 's Tarball Guide

MySQL 5.1.22-rc + PHP 5.2.4 + Apache 2.2.6 完整安裝手冊(Tarball 安裝法)
// PHP5 + Apache + MySQL 安裝方法 For Linux / FreeBSD
// Written by Tung-Kuang Wu & Webber (long time ago)
// Updated on 2007/10/26

/***
假設 : Apache 裝在 /www
PHP 裝在 /www/php
MySQL 則裝在 /www/mysql
***/

1. 首先將檔案拷貝至 /usr/local 下 ( MySQL 5.1.22-rc + PHP 5.2.4 + Apache 2.2.6 )

2. 安裝 mysql-5.1.22-rc

// 安裝之前,檢查 /etc/my.cnf,更改 datadir 與 socket 如下:
// 假設安裝 mysql 於 /www/mysql
datadir=/www/mysql/var
socket=/tmp/mysql.sock


tar zxvf mysql-5.1.22-rc.tar.gz
cd /usr/local/mysql-5.1.22-rc
./configure --prefix=/www/mysql --localstatedir=/www/mysql/var
make ; make install


--prefix : 設定 Mysql 安裝路徑
--localstatedir : MySQL 的資料庫檔存放的目錄

當 MySQL 灌好之後,需先執行一個 Script 讓 MySQL 系統產生 mysql 這個資料庫及一些
必要的 Tables (user, db, … 等)。


/www/mysql/bin/mysql_install_db


建立好系統必要的 Grant Tables 之後我們就可以啟動 MySQL 資料庫。


// 將 mysql.server 改成可執行檔
chmod 700 /www/mysql/share/mysql/mysql.server

// 新增一個 mysql 帳號
adduser mysql

// 此為 MySQL 資料庫的資料檔所在,設其 Owner為 mysql
chown -R mysql /www/mysql/var

/www/mysql/share/mysql/mysql.server start

// 設定 root 存取 MySQL 之帳號密碼。
/www/mysql/bin/mysqladmin -u root password 'Your Password'


3. 安裝 Apache (httpd-2.2.6)


tar jxvf httpd-2.2.6.tar.bz2
cd /usr/local/httpd-2.2.6
./configure --prefix=/www --enable-so [--enable-ssl]
make ; make install


--prefix : 設定 Apache httpd 安裝路徑
--enable-so : 告訴 Apache 啟動 so 模組, 讓 Apache 能夠載入 shared modules(例如 PHP)

4. 安裝 gd (在灌 FreeBSD / Linux 時要安裝 C Development 和 Development Libaries)
(gd 為一組繪圖的 Library, 可經由 PHP 呼叫, 於網頁上即時繪圖)

a. 安裝 zlib (壓縮)


tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make && make install


b. 安裝 libpng (png graphics format)


tar zxvf libpng-1.2.16.tar.gz
cd libpng-1.2.16
./configure
make && make install


c. 安裝 jpeg-6b (jpeg graphics format)


tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure
make && make install


// 在 make install 時會出現錯誤, 內容是找不到 /usr/local/man/man1 這個目錄,
// 而 jpeg 此安裝需 copy 一些說明手冊 (manual) 至此目錄, 解決之道就是建這麼
// 個目錄 … (see below)


mkdir /usr/local/man
mkdir /usr/local/man/man1


d. 安裝 GD


tar zxvf gd-2.0.34.tar.gz
cd gd-2.0.34
./configure
make && make install


##CONTINUE##
5. 安裝 php-5.2.4


tar jxvf php-5.2.4.tar.bz2
cd /usr/local/php-5.2.4
./configure ./configure --prefix=/www/php --with-config-file-path=/www/php
--with-apxs2=/www/bin/apxs --with-mysql=/www/mysql --with-gd
--with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local
--enable-mbstring


// Again, PHP configure seems to have some trouble including “iconv” library …
// So there we go again …

vi Makefile
// … in around line 84 …
EXTRA_LIBS = -liconv -lcrypt ….. (加上紅色部分)

make;make install
cp php.ini-dist /www/php/php.ini


--prefix : 設定 PHP 安裝路徑
--with-apxs2 : 代表希望安裝 PHP 成為 Apache 的 shared modules, 並將該 modules置於 /www/bin/apxs
--with-config-file-path : 設定 PHP 組態檔 (php.ini) 所在目錄
--with-mysql : 讓 PHP 支援 MySQL
--with-gd / zlib / jpeg / png : 讓 PHP 支援 GD, Zlib, Jpeg, PNG 等
--enable-mbstring : 讓 PHP 支援 multi-byte string

6. 在 httpd.conf 中加入以下一行,以及修改部分細節


AddType application/x-httpd-php .php .php3 .phtml
DocumentRoot "/www/htdocs"
DirectoryIndex index.html index.php


7. 啟動 Apache

/www/bin/apachectl start


8. 安裝 phpMyAdmin-2.9.2


tar zxvf phpMyAdmin-2.9.2.tar.gz


將解開的目錄 phpMyAdmin-2.9.2 (or phpMyAdmin) 整個搬移到 /www/htdocs 下。


cd /usr/local
mv phpMyAdmin /www/htdocs/phpMyAdmin


接下來就可以用網頁模式來管理 MySQL 了,可以試試下列網址。
http://localhost/phpMyAdmin/

----------------------------------------------------------------------

依照 TKWU 的安裝編譯過程,我在第五點安裝PHP的時候發生了 cannot find liconv
用了以上的修改方式,還是不行所以逕行下載了 iconv 函式庫 來自行安裝


wget -o /usr/local/ http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz
./configure --prefix=/usr/local
make && make install


然後繼續編譯 php 就沒問題了,雖然不確定問題是出在哪裡,不過可以試試看。
另外,稍微修改了本文將 "make; make install" 改成 "make && make install"。

( 軟體均可於 ftp://ftp.im.ncue.edu.tw/teachers/tkwu/apache/ 下載)

2007年10月23日 星期二

《 Win 》Apache 網頁開啟一片空白

會發生瀏覽器一片空白,不管是啥都一樣的話
那一定是 Apache 尚未啟動,這還不簡單就啟動它吧 :)
緊接著會出現一串訊息 "cannot bind address 0.0.0.0:80" ...

想了一陣子,有一個軟體( Skype )已經使用了 Port 80 以致 Apache 後來啟動會失敗
解決方式,先把 Skype 關閉,再啟動伺服器囉。

一瞬間我以為我的電腦壞光光了,重灌 Webserv 好多次,後來才發現 :(

《 USB 》殺掉 kavo.exe 病毒

病毒造成的影響 :
1.Kavo.exe 會造成即時通無法正常登入的情況。當使用者輸入帳號密碼之後,即時通有自動關閉的情形發生
2.針對硬碟 X:\\ 按滑鼠左鍵 2下,如無直接開啟。
3.嚴重吃掉不少記憶體,導致整個電腦速度變慢。
4.增加CPU 負擔。

以上的狀況是擷取於瓦片西西哩的文章,我本身發生的情形
只有開機之後,出現緊告視窗 kavo.exe 不正常運作。
我最後的解決方式也適用 Google 找到 Kill_kavo 別人寫好的批次檔
原出處我忘記連結了,下次發現在補上,Sorry.....

第一個批次檔執行完之後,重新開機,再執行第二個就解決了。

2007年10月20日 星期六

《 JavaScript 》強制關閉網頁

close() Method 基於考量從 Netscape Navigator 3.0 起會出現對話視窗
只要將屬性值更換,就可以欺騙瀏覽器而達到關閉的效果囉。

在 window.close() 前面輸入程式碼


window.opener=null; window.close();



這樣就會強制關閉了 :D

2007年10月19日 星期五

《 思維 》PHP+MYSQL 扎實個人基本功

本文轉錄無名P_HP.world個人版文章
10句話:


1.不要依賴register_global=ON的環境,從你剛懂得配置php運行環境甚至尚不明白register_global的ON/OFF會對自己有什麼影響的那天起,就應該勇敢地把它設為OFF。
2.寫程序前看看怎麼用error_reporting.
3.不懂就問本身沒錯,但你需要在那之前查查手冊。
4.當然,你需要懂得使用手冊。手冊上找不到答案的時候,應該考慮下網絡上的搜索引擎
5.剛學會php+mysql之後,不要叫嚷著要寫論壇,要寫XXX。要明白,剛學會寫漢字並不表示你有能力寫詩。
6.在學web編程的時候,你應該先去認識html這個朋友。
7.有點能力後,試著回答新手的問題,不要看到自己懂的而別人不懂就沾沾自喜,扔下一名「簡單,那是基本的東西」就走更要不得。
8.思考是一個好習慣,不動手去寫就等於空想,什麼也沒有。
9.寫好一段程序,如果覺得很滿意,一周後再看一遍,也許你會認為它應該有所改變
10.有空多看看別人的程序,找出他人的不足或優點,自己掂量。


必定各取所需:


1.善於使用「引用」,它能直接影響到程序的效率。
2.善於用三元運算子,可以讓程式較精簡有效率(ex: _ : _ ? _)。
3.善於組織if...else...回圈。
4.盡量讓你的代碼清淅些(排版問題)。
5.編寫規範的mysql語句。



我正在經歷這一切,真的非常貼切和真實啊。
現在用 PHP5 根本不順,只能用到 PHP3或4的編成去完成任務和目的這樣不好。
要寫論壇模組,完整的系統?那是當然的啊 :D
不過是以後吧,先讓我慢慢融入基本功的文化裡面囉。

2007年10月15日 星期一

《 FreeBSD 》文字模式取檔

在 Fedora/Ubuntu 裡面用 wget 去抓取檔案,而不用將檔案抓下來再 copy 去別台主機,完全使用文字模式處理。但是 FreeBSD 並沒有預設安裝 wget 套件,在 Real-Blog 找到這篇安裝的文章。

FreeBSD 安裝 wget :


cd /usr/ports/ftp/wget
make install clean


使用 wget 的方式 :


wget http://abc.def.com.tw/file.rar
wget -o /path/folder http://abc.def.com.tw/file.rar


FreeBSD 內建的 fetch 套件 :


fetch http://abc.def.com.tw/file.rar
fetch -o /path/folder http://abc.def.com.tw/file.rar


基本上,兩個處理的方式是一模一樣的。

2007年10月1日 星期一

《 Xoops 》URL 無法配合 Virtualhost

通常我的建制網站順序為:
  1. 下載並安裝套裝軟體(Xoops ,Joomla.....etc)
  2. 設定 phpmyadmin 等資料庫部份
  3. 對於該網站給予設定 Virtualhosting
不過這樣一來會發現,虛擬主機的設置會出現錯誤。
假設安裝的絕對路徑為:/home/account/www/xoops
以及安裝的網址部份為:http://www.def.tw/~account/xoops
然後虛擬主機的設定是:http://xoops.def.tw

會發現呢,開啟瀏覽器輸入 http://xoops.def.tw,網址還是會出線http://www.def.tw/~account/xoops
這就是問題所在囉。那是因為安裝的網址設定為 http://www.def.tw/~account/xoops

解決方式:
  1. 開啟 mainfile.php 檔案
  2. 在大約37行的地方,改變 XOOPS_URL 參數

修改程式碼部份:


// XOOPS 網址 (URL)
// 安裝XOOPS的網址最後勿加斜線。
// define('XOOPS_URL', 'http://www.def.tw/~account/xoops');
define('XOOPS_URL', 'http://xoops.def.tw');