php

A collection of 14 posts

subdomain

Cross-SubDomain Cookie for Laravel

許多時候一個團隊會 hosting 許多平台,且往往各平台間都是有所關聯,像是 flyingv 還有 VShop, VEvent。其會員資料庫都是共用,且同樣的登入方式。若在平台間瀏覽操作需要一直重新登入,是否也太令人不悅了~ 因此可以設定這些平台的 cookie (通常登入判斷的資訊都會存於此)為同樣的 Domain,不同的 Sub Domain。例如 domain name 為 example.com,其他平台是 shop.example.com, event.example.com, ... 此處在 Laravel 的設定主要相關三個檔案 app/config/app.php, app/config/cache.

  • hothero
    hothero
php

PHP5-FPM with Nginx 效能調教 (1)

在開始前建議先去安裝 htop 這個 linux 即時監控軟體。主要因應不同的 # of process core 與 memory size,可以調整 php5-fpm 與 nginx 中兩個部分的設定。 Nginx 在 /etc/nginx/nginx.conf 下約莫第二行有個 worker_processes 參數。 worker_processes 4; 根據運行機器的 cpu 核心數填入即可,可用 htop 或輸入以下 shell command 取得 cat /proc/cpuinfo| grep processor

  • hothero
    hothero
php

[Snippet] AES 加密 with CBC & PKCS7 on PHP

AES (Advanced Encryption Standard) 進階加密標準,目前已成為流行的對稱式加密法之一,也是美國國家安全局 NSA 批准可用在最高機密資訊上的加密方式(聽起來敲厲害的啊~~),當然隨著密鑰的長度越長(128, 192, 256 bits),安全性就越高。更多詳細介紹可參考 wiki 這裡分享的 Snippets 是固定的 128 bits密鑰,並且針對要加密的資料做 base64 encode。 public function aesDecrypt() { $encryptedData = "6lbH0qa6J1Sl5/I5C2YeGg=="; $cipher = MCRYPT_RIJNDAEL_128; $mode = MCRYPT_MODE_CBC; $key = "

  • hothero
    hothero
php

Keeping your heroku server awake

最近發現heroku server休眠的速度實在快的嚇屎人,記得去年還只要一天有人連上去就OK,沒想到現在大概1分鐘沒人連就會休眠server… 以前似乎可以用個addon,叫做"New Relic",去一直ping,進而記錄伺服器的狀態,讓server一直是醒著的狀態,但經測試後發現沒用! 最後還是用了最笨的方法,仿造crawler的方式,設定cronjobs每分鐘去拜訪一次網頁,抓取內容使伺服器一直保持醒著的狀態。程式碼如下: <?php $urls = array("http://webcontest.mirlab.org", "http://webprogramming.mirlab.org"); for ($i=0; $i<count($urls); $i++) { getContent(

  • hothero
    hothero
php

架設discuz與ucenter應用同步登入筆記

Discuz!是個可免費下載的PHP網絡論壇程式,簡稱DZ,由戴志康(Crossday)所創立,目前最新版本是X2.5。[2] 前身為Crossday Bulletin(CDB),最初改自XMB,爾後改寫成為現今的Discuz!社群論壇程式,由康盛創想所有。現在Discuz!已成為大中華地區最多用戶使用的論壇程序。 Discuz!的原始碼可免費下載,但它并不是開源軟件,因為其許可證不符合開放原始碼的定義。from wiki discuz論壇的架設只要參照官方論壇的說明就沒有問題了,這裡將著重在第三方php網站整合ucenter。ucenter在與其他php應用整合上的流程與架構示意圖大概如下圖: 在所有ucenter的應用中,都是透過uc.php這個檔案來做listening,再根據指示做相對應的動作(如:登入、登出等)。流程大概是,假設ucenter共有A, B這兩個應用,當A透過client.php發出同步登入成功指示給ucenter,接著uc service再去發出登入的指示給下面所有應用(A, B),透過呼叫每個應用的uc.

  • hothero
    hothero
php

Memcached Server & Client Installation on MAMP & Ubuntu

memcached是一套分布式的高速缓存系統,通常只是當作快取系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的資料庫)需要額外的程式碼更新memcached內的資料。(reference from wiki) 預計完成的安裝環境 libevent (memcached requirement) Memcached 1.4.15 Server, download it PHP Memcached extension 2.10, download it Memcached Server In MAMP: brew install libevent tar -zxvf memcached-1.4.15.tar.gz cd memcached-1.4.15/

  • hothero
    hothero
javascript

facebook authorization with popup window (經由彈出視窗進行facebook認證) using PHP and javascript

一般使用facebook PHP SDK做登入都是採用getLoginUrl函式取得連結(如官方此範例),認證完後會轉址回來並帶些facebook認證確認的state、code等get參數,在使用者體驗上非常的不好,甚至有可能在已帶有get參數的頁面上再轉址回來後會導致異常。 在此使用Facebook PHP SDK 3.0搭配javascript的方式,用popup window做認證。今年年初Facebook PHP SDK 3.0的更新中已有搭配javascript的範例,但有認證成功後無窮reload迴圈的問題,網路上普遍是IE發生問題,筆者本身是在Mac的chrome有此問題(問題出在下方的程式碼)。 FB.Event.subscribe('auth.login', function(response) { // do something with response login(); }); 故我們得自己創建popup authorization window,流程如下: 使用者按下Facebook登入/認證按鈕 javascript產生一個window並且將其導向facebook登入/認證的網址

  • hothero
    hothero
apache

Setting MongoDB on MAMP

網路上充斥著安裝php_mongo相關的文章,但大多介紹的安裝方法都是在原生apache與php的環境下,故在此介紹的是如何讓MAMP可以跑起mongodb相關的module與class。 創mongo資料夾給MAMP ``` mkdir /Applications/MAMP/db/mongo mkdir /Applications/MAMP/db/mongo/tmp mkdir /Applications/MAMP/db/mongo/data mkdir /Applications/MAMP/db/mongo/bin <h2><span style="color: #3366ff;">下載相關套件</span><

  • hothero
    hothero
apache

Setting PHP on Windows IIS

大多數人普遍認為IIS只能運行一般網頁與ASP語言,但其實是可以透過CGI(Common Gateway Interface)將PHP運行在IIS上,不必另外裝apache,也不用擔心port衝到的問題。此篇將著重在設定部分,假設讀者們都已安裝好PHP(若無可透過官方PHP下載或WAMP等方式)。 此篇設定之環境為 Windows Server 2008 R2 PHP6 IIS 7.5 修改php.ini 將php.ini-recommended複製或直接更名成php.ini。修改以下資訊 (約在578行)將 ; extension_dir = "ext" 改成 extension_dir = "ext" (約在480行)將 ;cgi.force_redirect = 1 改成 cgi.force_

  • hothero
    hothero
mysql

Install phpMyAdmin, PHP with Nginx on Ubuntu Server 12.04 LTS

PHP & CGI ``` sudo apt-get install php5-fpm sudo apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl   # 可按照自己需求刪減 sudo vi /opt/nginx/conf/nginx.conf   # 或是/etc/nginx/sites-enabled/default <!--more--&

  • hothero
    hothero
rails

migrate DB from sqlite to mysql for RoR on Heroku

之前做PHP project為了方便建立資料庫,利用rails scaffold快速建立表單放在heroku上讓其他人以便輸入資料,而rails預設資料庫為sqlite,本以為sqlite migrate到mysql很簡單,沒想到有些tricky,在此將步驟整理出來。 步驟如下: heroku db:pull --app appname 先從heroku上把資料抓下來 http://devcenter.heroku.com/articles/taps#export_pull_from_heroku 下載sqlitestudio程式(或其他可export sqlite為.sql檔案的程式) http://sqlitestudio.one.pl/index.rvt?act=docs 利用sqlite軟體(sqlitestudio)讀取sqlite資料並export成sql檔案,路徑為:db/development.

  • hothero
    hothero