星期五, 12月 31, 2010

php process是否持續運作

當php在執行大量運算時,由於http的特性
所以要等到完成了,才會一次將結果印出

在process中,利用tick方式呼叫另一個fucntion
對於browser來說,過程中的輸出值在完成一次出現
不過如果透過程式(client)去連php的話,程式是可持續的接受到php flush的值
<php
 $nextWeek = time();
 $CheckInterval=5;
 
 declare(ticks=1);
 // A function called on each tick event
function tick_handler()
{
  if ( (time()-$nextWeek) >   $CheckInterval)
  {
       echo "R";
       $nextWeek = time();
  }
}

register_tick_function('tick_handler');

for($a=0;$a<10000000;$a++)
{
    ;
}
unregister_tick_function('tick_handler');

echo " done ";

星期二, 12月 28, 2010

Firefox 回報"伺服器要將此網址重新導向的要求無法完成"

最近發現這個錯誤

網路上有人提到將cookie清掉即可
我清了結果還是一樣

後來才發現 原來是程式邏輯上的問題
因為檢查未登入,則轉到另一個網址
不過那個網址也是由相同的程式檢查是否登入
所以又轉向同一個網址,造成deadlock

星期一, 12月 20, 2010

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

幾個會引起的問題

  • host位置空白
    連mysql時,如果host位置為空
    也會出現這個錯誤
  • 硬碟滿了
    今天開了aptana在寫程式,網頁似乎沒反應剛寫的東西
    說沒有,但偶爾又有東西反應,想說是不是有什麼東西卡住了
    重開機後,還是一樣,甚至寫的東西居然都存不起來
    存了,但再開會不見,想說從沒遇過這問題

    還在查問題時,發現db掛了
    問題是Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
    上網查了一下... 試了一下
    不然依然沒解決, 試了好久,都還是失敗

    一問同事,同事也曾發生過,說是不是硬碟滿了
    df一下.. 嗯 還真的是咧.. 硬碟用量100%
    因為是用vm... 只切了8gb...
    才回想到上午傳了1g多的東西進vm
    難怪傳到一半 就一直說寫入失敗
    檔案刪一刪後 就ok了... 呼 幸好解決了


Reference
發生找不到 mysql.sock 的處理方法!

星期三, 12月 08, 2010

移除Zend網址中不專業的public路徑

由於zend建立的專案,會預設在www.test.com/public下
雖然因檔案歸類問題,需放在這個public資料夾
不過一直覺得很礙眼,但也沒想到辦法去改掉

這2天那該死的美工johnny又跑來說:「ㄟ~ 那個網址有public有點討厭ㄝ」
可惡~ 觸碰到我的痛處
今天盛怒之下 總算解決~~ 真開心

原本先查到Rob Allen的做法
要改路徑,還要在所有$this->baseUrl() 加上public/
改了一堆也還沒成功,就先看有沒有其他做法
很幸運地,看到比較簡單的方法 ~~ ya
只要做以下三件事就完成了
  1. Create /etc/httpd/conf.d/zfapp.conf
    Alias /zfapp /usr/share/zfapp/public
    <directory /usr/share/zfapp/public>
      AllowOverride All
      Order Deny,Allow
      Allow from all
    </directory>
  2. In /usr/share/zfapp create the structure
    -application
      bootstrap.php
      controllers
      views
      models
    -library
      Zend
    -public
      .htaccess //在public裡,新增.htacess
      index.php
  3. htaccess contains:
    RewriteEngine On
    RewriteBase /zfapp/
    RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
注意事項
透過url讀取資料的方法,都會自動轉成正確的位置
也就是假設要讀取xx.jpg,位於真實路徑/zfapp/public/下
url為/zfapp/xx.jpg,即為自動轉成/zfapp/public/xx.jpg
但如果是php裡,要file相關函數讀檔的(ex.file_exists())的話
就得要加上public改成/zfapp/public/xx.jpg

Reference