2010年9月29日 星期三

Windows + AppServ PHP 之 php_mcrypt.dll 問題!!

OS : Windows XP
PHP 環境 -- AppServ 2.5.10:

  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
  • PHP的安裝目錄設為:D:\AppServ\php5
於 php.ini 裡, 將 ;extension=php_mcrypt.dll uncomment,並重新啟動 apache 後,發現 load mcrypt 出現問題,且該模組也沒有成功的 load。

後來發現原因為 PHP Server 找不到 php_mcrypt.dll 相依的 libmcrypt.dll檔案,即使 path 內有設定相關路徑,也是有錯誤。

解決方法:
將 D:\AppServ\php5 裡的 libmcrypt.dll copy 到 C:\WINDOWS\ 下,然後重新啟動 apache,即可成功載入模組。

2010年9月27日 星期一

PHP:Install eAccelerator in windows

eAccelerator 簡介:
eAccelerator 是一個免費且開放原始碼的 PHP 加速器和優化器。它透過暫存(caching) PHP script 編譯後程式的方式來增加 PHP 的效能,如此可使編譯消耗的資源降到最低。它也優化 PHP script 來加快 script 執行速度。
eAccelerator 通常可以降低伺服器的負載,提高 PHP code 的執行速度 1 ~ 10 倍。

注意事項:eAccelerator 只能在 mod_php 或是 php in fastcgi mode 下工作及執行,不能用於 CGI和CLI。

安裝:
PHP 環境 -- AppServ 2.5.10:
  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
  • PHP的安裝目錄設為:D:\AppServ\php5
步驟:

1. 至 eAccelerator binaries for PHP 5.x (windows builds) 下載與 PHP 同版本的 eAccelerator binaries,這裡是下載 eAccelerator 0953 for PHP 5.2.6。下載的檔案檔名為:eAccelerator0953_5.2.6.dll,將它改名為 php_eAccelerator0953_5.2.6.dll (當然也可以不改名),然後放到 PHP 的 extensions 資料匣內, 本例是放到 D:\AppServ\php5\ext\ 內。

2. 確定 php.ini 的 extension_dir 之設定是正確指到
PHP 的 extensions 資料匣,例如:extension_dir = "D:\AppServ\php5\ext"。

3. 建立一個存放 temporary cached files 的資料匣,例如:D:\AppServ\php5\tmp\eAccelerator。

4. eAccelerator 可以安裝到 Zend extension 或是 PHP extension 中,詳細資料可以到 Configuring eAccelerator查詢。這裡我們將安裝到 Zend extension 中,另外 AppServ 預設是將 php 的 thread safe 功能開啟,所以我們在 php.ini 裡是加入以下的 eAccelerator config :

zend_extension_ts="D:\AppServ\php5\ext\php_eAccelerator0953_5.2.6.dll"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="D:\AppServ\php5\tmp\eAccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Config項目的相關資訊可以到 eAccelerator settings 或是 www.sitebuddy.com 的 eAccelerator 查詢

5. 重新啟動 apache。

6. 查看 phpinfo() 的資訊,如果有出現 eAccelerator 的項目,就表示安裝成功了。

2010年9月23日 星期四

PHP 核心簡介

PHP的核心由兩個個別的部分組成,最底層(低階)的是Zend Engine (ZE),另一部分是 PHP Core。

1. Zend Engine (ZE):
  • 負責解析 (parsing) 人們易讀的腳本 (script) 成機器可讀的符號,然後在行程空間 (process space) 內執行這些符號。
  • 也處理記憶體管理、變數範圍(variable scope)(變數可視或可作用的範圍) 以及調度函數的呼叫 (dispatching function calls) 等。
2. PHP Core:
  • 和 SAPI層*綁定,並處理與它的通信 (communication)。
  • 提供一致的控制層給 safe_mode 和 open_basedir 檢測,以及串流層 (stream layer) 讓檔案(file)及網路(network) I/O 透過用戶空間 (userspace) 的函數,如fopen()、fread()和fwrite()等,聯繫起來。
* SAPI : Server Application Programming Interface,通常涉及(refer to)主機環境,如 Apache, IIS, CLI, CGI 等等。


原文出處:http://devzone.zend.com/article/1021

2010年9月15日 星期三

PHP:AppServ 安裝及設定 in Windows

1. 安裝 AppServ:

至 AppServ Network 下載 AppServ 2.5.10 :
  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
安裝方式請參閱:How to install AppServ
安裝目錄設為:D:\AppServ

2. 初步設定 PHP.ini:

修改 C:\WINDOWS\php.ini。
  • memory_limit = 64M --> 設定 PHP 程式最多允許多少記憶體,改設定為 64 MB。
  • max_execution_time = 30 --> 設定 PHP 程式允許執行的時間,單位為秒,改設定為30秒。
  • 將 extension=php_mbstring.dll 移到 extension=php_exif.dll 之前,避免安裝 PEAR 時,出現 dll 的錯誤。
  • 將 extension_dir = "D:/AppServ\php5\ext" 改為 extension_dir = "D:\AppServ\php5\ext",修改AppServ 2.5.10的小問題。
  • include_path 暫時先不設定,等安裝完 PEAR 後,會自動被設定。
重啟 apache。

3. 測試 Apache 和 PHP 是否安裝成功:

a. Apache Server測試 :
  • 在 browser 輸入 http://localhost/ ,出現標題為 The AppServ Open Project - 2.5.10 for Windows 的網頁,就表示 Apache 成功啟動了。
b. PHP 測試 :
  • 在 browser 輸入 http://localhost/phpinfo.php,出現標題為 PHP Version 5.2.6 的網頁畫面,就表示 php 安裝成功可以使用了。

p.s. phpinfo.php 是 AppServ 安裝後會在 Apache 網站預設根目錄 D:\AppServ\www\ 內放置 的php information 網頁,程式內容為呼叫 phpinfo() function,功能主要是顯示 php 的相關資訊,及安裝的模組。

4. 安裝 PEAR (PHP Extension and Application Repository)
  • 執行 D:\AppServ\php5\go-pear.bat 來安裝 PEAR。
  • 安裝過程中的詢問選項,都按 Enter 鍵接受預設值。
  • 安裝完成後,go-pear.bat 會在 php.ini 最下方加入 include_path=".;D:\AppServ\php5\pear" 的 include path 設定。
  • 雙按 D:\AppServ\php5\PEAR_ENV.reg 登錄檔來加入環境變數。
  • 測試 pear : 開啟 windows 的 cmd 視窗,然後輸入命令 pear version,如果出現 pear 版本訊息,就表示 pear 安裝成功了。
  • 重啟 apache server。

2010年7月15日 星期四

Eclipse Helios PHP 環境設定

一. 至 Eclipse Downloads 下載 Eclipse for PHP Developers並安裝。

二. 解壓縮後,啟動 eclipse。

三. 安裝 ZEND Debugger:
  • Help --> Install New Software.. --> Add..
  • 加入 Name: Zend Debugger ,Location: http://downloads.zend.com/pdt
  • 全選 Zend CE Features 下的項目
  • 安裝
大致上這樣就可以使用了,之後有發現在補充。

2009年12月18日 星期五

Eclipse 的怪問題:Cannot nest MyApp/src/main/java inside library MyApp/src

eclipse 在修改專案 properties --> Java Build Path 的 Source 內容,從 MyApp/src 改為 MyApp/src/main/java 及 MyApp/src/main/resources 後,可能會出現 Cannot nest MyApp/src/main/java inside library MyApp/src 的怪問題。

解決方法:
1. 編輯 [your_project_dir]\.settings\org.eclipse.wst.common.component,將這個 〈wb-resource deploy-path="/build/classes" source-path="/src"/〉 tag 刪掉。
2. 重開 eclipse。

這樣問題應該就能修正了。

至於原因嘛 ..... 這小弟就不清楚了。

2009年11月18日 星期三

Oracle TNS 設定問題

網站上出現了 ORA-12519: TNS:no appropriate service handler found 的錯誤訊息。

問題原因:
1. Oracle DB 和 AP 在同一 Server 上,已經有一個預設的 tnsnames.ora ,而我自己又設定了一個,且兩個設定不同,導致 AP 找不到設定。

解決方法:
1. 不自己設 tns_admin 的環境設定,用預設的就可以了。
2. tnsnames.ora 裡,將 CONNECT_DATA = ... 設定多設的 (SERVER=SHARED),去掉。