精華區beta FreeBSD 關於我們 聯絡資訊
從來都沒用過 oracle...以前上班的地方沒錢,只能玩玩 MySQL 最近換了新工作,剛把這邊的 NT web server 換成 FreeBSD + Apache 才跟我說要搞個環境存取現有的 oracle database server 寫程式的小妹妹又只會用 php...本來,想叫他改用別的方式寫... oracle 沒出 FreeBSD 版的,所以...php+oracle 也就沒辦法直接裝在 FreeBSD 上囉 不過...FreeBSD 還有個 linux emulator 可以用... 該死的 oracle 什麼時候才會放出 FreeBSD 底下的 library 啊??? 參考 google 上找到的資料,弄了一個下午,可以跑了 不過...中文字竟然變 ??? 可能少了一些東西,只好再花一個下午重玩一次 在 google 找到的東西好像沒提到這點 希望這篇可以讓遇到跟我一樣問題的人少點麻煩... 可惡的 linuxFab 害我在 google 找到一堆垃圾... 下面這些過程是從 history 裡面剪貼下來的...如果有打錯 請多包函 使用軟體版本: FreeBSD 4.7 Red Hat Linux 7.3 apache 1.3.27 (apache_1.3.27.tar.gz) php 4.2.3 (php-4.2.3.tar.bz2) oracle 8.1.7 先架個 linux 裝好 oracle,我是裝在 /oracle (到 google 打 "安裝 oracle linux" 就可以找到一堆參考資料) 我在安裝時出現一堆錯誤,最後 database 並沒有 create 成功 不過...只要能裝上就好 我打算把 apache+php 安裝到 /usr/local 先把 /usr/local 底下的東西移走,可以少複製用不到的東西 (如果以後不想在用這台 linux,直接 rm -rf /usr/local/* 就可以囉, 不然就先備份以免誤砍 cd /usr/local; tar czf backup.tgz * ; rm -rf *) 安裝 apache 1.3.27 (configure 的參數是參考自 FreeBSD 的 ports) tar xzf apache_1.3.27.tar.gz cd apache_1.3.27 /configure --server-uid=www --server-gid=www --enable-module=most \ --enable-module=auth_db --enable-module=mmap_static \ --disable-module=auth_dbm --enable-shared=max --prefix=/usr/local make install (在安裝 apache 時有出點錯誤,因為我的 linux 是用最簡單的安裝, 只好再抓 rpm 回來補,如果有人遇到一樣情形,自己看著辦囉) 安裝 php 4.2.3 (configure 的參數是參考自 FreeBSD 的 ports) (記得改 --with-oci8= 的 $ORACLE_HOME) bunzip2 -c php-4.2.3.tar.bz2 | tar zf - cd php-4.2.3 /configure --with-apxs=/usr/local/bin/apxs --with-oci8=/oracle \ --enable-static --enable-mbstring=tw --enable-mbregex make install 到這裡 apache 跟 php 都完成了 可以打包要的東西囉 cd /usr/local tar czf /tmp/apache-php-oracle.tgz * 接下來,把 apache-php-oracle.tgz 傳到 FreeBSD 去 FreeBSD 上要裝好 linux emulator... 看看有沒有 /compat/linux/usr/local/,沒有就自己建個目錄吧 cd /compat/linux/usr/local tar xzfp apache-php-oracle.tgz 把剛剛做的東西解開來 在 /compat/linux/usr/local/bin 底下有一些執行檔可能會因為找不到 lib 不能跑 so...一個一個檢查看看 ldd httpd 把缺的 so 檔從 linux 抓過來放到 /compat/linux/usr/local/lib 在 /compat/linux/etc/ld.so.conf 加上 /usr/local/lib 跑一下 /compat/linux/sbin/ldconfig 記得檢查看看有沒有漏網之魚 把 linux 上的 $ORACLE_HOME/oracle/ocommon/nls/admin/data/* 複製過來 我的在 linux 上是 /oracle/ocommon/nls/admin/data/* 所以擺到 /compat/linux/oracle/ocommon/nls/admin/data/ 改一下 /compat/linux/usr/local/conf/httpd.conf 加上這一段 <IfModule mod_php4.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> 其他的就看自己的需要去改囉 我還把 port 換成 8080 (因為原本就跑了 FreeBSD 的 apache) 我也把 /compat/linux/usr/local/bin/httpd 換成 /compat/linux/usr/local/bin/httpd-linux 以免跟 FreeBSD 的 httpd 搞混 修改 /compat/linux/usr/local/bin/apachectl 把 /usr/local 換成 /compat/linux/usr/local 在 start) 後面加上下列幾行 (oracle 路徑記得改一下) export LD_LIBRARY_PATH=/oracle/lib export NLS_LANG='traditional chinese_taiwan.zht16big5' export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle export ORA_NLS33=/oracle/ocommon/nls/admin/data 參考 /usr/local/etc/rc.d/apache.sh 寫個 /usr/local/etc/rc.d/apache-linux.sh 把 /usr/local/sbin/apachectl 換成 /compat/linux/usr/local/bin/apachectl 把 /var/run/httpd.pid 換成 /compat/linux/usr/local/logs/httpd.pid 跑一下 /usr/local/etc/rc.d/apache-linux.sh start ps ax 看有沒有 httpd-linux 在跑 再用 browser 看一下 php 給的 info.php 檢查 oracle 有關的設定對不對 (ORACLE_BASE, ORACLE_HOME, ORA_NLS33...) 接下來 自己弄個 php 程式跑看看吧 Good Lucky! 玩了兩個下午 終於讓我們公司的小妹妹鬆了一口氣... FreeBSD 真好玩!!! 在 sun 上面跑 oracle 的朋友給的評語: 真是 FreeBSD 的愛用者... -- 啊那個lwj簽名檔還在測試中啦!! -- ※ 來源:‧四百年來第一站 firebird.cs.ccu.edu.tw‧[FROM: 61-218-191-40.H] > -------------------------------------------------------------------------- < 發信人: [email protected] (Perfect Cream), 看板: FreeBSD 標 題: Re: [安裝筆記] using Apache + PHP + Oracle under … 發信站: 風與塵埃的對話 BBS (Mon Nov 18 21:00:53 2002) 轉信站: Ptt!news.ntu!news.ntut!wd-news!WD ※ 引述《[email protected] (上班==上網??)》之銘言: : 不過...FreeBSD 還有個 linux emulator 可以用... : 該死的 oracle 什麼時候才會放出 FreeBSD 底下的 library 啊??? : 參考 google 上找到的資料,弄了一個下午,可以跑了 : 不過...中文字竟然變 ??? : 可能少了一些東西,只好再花一個下午重玩一次 : 在 google 找到的東西好像沒提到這點 : 希望這篇可以讓遇到跟我一樣問題的人少點麻煩... 嗯... 這幾篇也可以參考參考: http://www.scc.nl/~marcel/howto-oracle.html http://www.setuid.de/oracle.html http://www2b.biglobe.ne.jp/~rue/how2oracle.html http://ash.jp/db/ora_nls.htm -- , ~ \ Bigfish -- ※Post by bigfish from 61-223-132-183.HINET-IP. ◢ ◣ ███◣ ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ █◢◣█ █ █ 風塵埃的對話 BBS ˙ wdbbs.net ◥◤◥◤ ███◤ ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇