sshlog
msgbartop
msgbarbottom

23 Jun 09 [Apache] 利用 .htaccess 修改 php 環境變數

客戶的需求,協助這個問題。

1.確認 httpd.conf 中 AllowOverride All 要打開
2..htaccess 中內容為

php_flag register_globals off
# E_ALL ~E_NOTICE -> 2039
#php_value error_reporting 2039
# E_ALL -> 2047
php_value error_reporting 2047

參考資料:How to change configuration settings

08 Jun 09 [Centos] 安裝 PHP 5.2 + Mysql 5.1 on Centos 5.3

因應客戶需求,將 Centos 5.3 中的 PHP 5.1 和 Mysql 5.0 升級到 PHP 5.2 和 Mysql 5.1

其實我很不願意這樣做,未來都會有處理安全性的麻煩。

1.安裝 epel / remi 套件資訊

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-7.el5.remi.noarch.rpm
rpm -ihv *-replease-5*.rpm

2.指定 remi 套件組,更新 PHP  / Mysql

yum --enablerepo=remi update php mysql

3.安裝完,重新啟動 php / mysql

/etc/init.d/httpd restart
/etc/init.d/mysqld restart

4.確認版本

php -v 
mysql

或者

echo "< ? phpinfo(); ?>" | php | less

參考資料:

26 May 09 安裝 PHP json extensions on Cenos 5

某客戶應XX小站需求,要主機需要 PHP json extensions 。

1.下載 json-1.2.1.tgz 解開。
2.yum install php-devel
3.執行 phpize
4../configure ; make ; sudo make install
5.json.so 放置在 /usr/lib/php/modules
6.新增 /etc/php.d/json.ini 內容為 extension=json.so
7.重新啟動 apache
8.確認是否有安裝成功,可用 phpinfo() 或者用 php -m 檢視。

09 Apr 09 改寫 PHP 程式

手上有 PHP4 甚至可能是 PHP3 開始寫的網站,環境是 freebsd 。今天試著把網站移轉到 Linux + PHP5 環境,當然有很多程式和設定要改寫。

1.變數都要改寫成用 $_GET , $_POST , $_SERVER 方式取得變數。
2.Cookie 問題,修改 php.ini 中 cookie_path
3.舊的路徑改寫,直接用 ln 方式處理。
4.include 部份都要改寫 include_once
5.單獨為 virtualhost 設定 php.ini ,和系統 php.ini 分開,只是為了 include_path 環境變數。

光改這些就忙了一個下午, 還沒遇到 mysql 3 轉換到 mysql 5 問題,工程麻煩。

19 Jun 08 安裝 Zend Optimizer

環境:Centos 5 / Apache 2 / PHP 5

Zend Optimizer 下載 Linux 32bits 版本。

解開 ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz ,執行 ./install ,按照畫面步驟安裝完成。

測試是否安裝成功,執行 phpinfo(); ,出現

with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

表示安裝成功。

26 Jan 08 郵寄 HTML Mail 問題

今天處理到一個奇怪的 Bug,相同程式碼,但是出來的結果卻不一樣。

這次是處理要用程式發送 HTML Mail ,發現寄到 Gmail 的郵件,都不會自動呈現 HTML 格式,但是寄到其他信箱都正常。最後靠 Google 找到問題點,原來是 header 的換行問題。Gmail 只會接受 “\n”,所以若 Header 每一行結尾是 “\r\n” ,將不會解析。

最後在 Email 判斷地方,多判斷是不是 gmail address,若是要另外處理。

資料來源:http://www.bigroom.co.uk/blog/php-mail-and-gmail

Powered by ScribeFire.

07 Nov 07 [PHP] 圖表設計

兩個免費圖表用的 PHP 工具,一個用 swf 建立的 PHP/SWF Charts,一個用 GD 建立的 JpGraph

目前測試 PHP/SWF Charts 部份,會遇到中文顯示問題,解決方法為

$chart['legend_label'] = array (‘font’ => ‘system’);

指定font 字體,畫面就可以顯示中文。

目前只是小測一下,明天研究把要的數據產生到圖表上。

而另外發現小相簿功能,是利用 XML/SWF Slideshow,方法是產生XML檔案,所以只要能產生XML檔案,就能使用這 swf 產生要的相簿功能。所以改寫一下我首頁的相簿功能,以前是會秀10張相片,現在改用 swf 方式處理。不過點下去不會顯示大圖,是有點小缺點。

Powered by ScribeFire.

02 Nov 07 查詢 IP 所屬國家

為了練習 PHP / Smarty / Google Maps API,寫了查詢 IP 所屬國家的小程式。

只要輸入你想要查詢的IP,程式會顯示地圖位置。很簡單的程式,倒是遇到一些問題,順便紀錄一下。

  • smarty 定義字串
  • 預設 smarty 定義字串是 {} ,若網頁有 javascript 會相衝,解決方法重新定義字串。

    $this->left_delimiter = “{{“;
    $this->right_delimiter = “}}”;

  • ereg 用法
  • 判斷是不是合格IP寫法,可以採用

    ereg(“([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})”,$ip,$ips);

    比對 $ip 字串是否符合前面 regular 定義,以() 為單位,[0-9] 符合數字型態,{1,3} 允許 1 ~ 3 個字元。

這程式目前只能接受 IP,有時間改能接受 domain name 。

Powered by ScribeFire.

02 Aug 07 圖檔按鈕

現在才發現有這樣的技巧,當 Form 中的 Button 改用圖檔,可以取得滑鼠點選座標。

W3C 說明如下

When a pointing device is used to click on the image, the form is submitted and the click coordinates passed to the server. The x value is measured in pixels from the left of the image, and the y value in pixels from the top of the image. The submitted data includes name.x=x-value and name.y=y-value where “name” is the value of the name attribute, and x-value and y-value are the x and y coordinate values, respectively.

PHP 取得方法

$foo_x = $_POST['foo_x'];
$foo_y = $_POST['foo_y'];

ASP取得方法

foo_x = Request("foo.x")
foo_y = Request("foo.y")

真是神奇用法

13 Jul 07 [Ubuntu 6.06] PHP4 + MSSQL

預設 PHP4 沒有支援 MSSQL 相關元件,所以要自行編譯 mssql.so

  • 抓 PHP 原始檔
  • apt-get source php4

  • 修改 php4-4.4.2/debian/modulelist ,增加 mssql 項目
  • mssql MSSQL

  • 修改編譯參數,增加mssql 項目
  • –with-mssql=shared,/usr

  • 編譯 php4
  • cd ..
    dpkg-buildpackage

若編譯過程中,有少一些 xxx-dev ,請自行補上。若編譯過程沒問題,將會多出 PHP4*.deb,直接用

dpkg -i php4*.deb

不過這邊只要mssql.so 檔案,所以

sudo mv php4-4.4.2/debian/php4-mssql/usr/lib/php4/20050606/mssql.so /usr/lib/php4/20050606/

修改 php4.ini

extension=mssql.so

重新啟動 apache 就可以成功。

測試方法:

mssql_connect(“your_sql_server”,”sql_account”,”sql_account_passwd”);

參考資料