apache php-fpm Primary script unknown\n

一直遇到這個問題 AH01071: Got error ‘Primary script unknown\n

搞了很久

基本上大致解決方向有三種

1.document_root路徑設定錯誤

2.php-fpm 的權限問題

-查php-fpm的user 與 group是否與apache相同

3.selinux || firwall等系統權限問題

4.ProxyPassMatch

這個坑真的很坑….

apache 2.4設定php-fpm

可以用的設定應該只有

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://0.0.0.0:9000/webroot/phptest/$1

大部分的網上文件多半說明需要配合此設定檔的DocumentRoot
but…並不完全是這樣的
apache的DocumentRoot是給apache用的
但是給fcgi後面的root,是要看你fcgi機器上的路徑
這件事情通常會是在docker上面發生
舉個例子
我已經在host 上面跑了apache+php 5.4 ,但我今天有一個網站要跑php 7.1
我考慮使用docker 跑php-fpm ,讓apache對連
這時候fcgi://host:port/{path} 裏頭的{path}是docker container內的路徑
如果你在host沒有共享DocumentRoot給docker內的container使用
你就顆顆了
ProxyPassMatch後面的路徑設定如果跟DocumentRoot不一致,那就會以ProxyPassMatch後面的路徑為主
你根本可不用設定DocumentRoot…

php的sprintf-字串配對

如果我們今天要使用以下陣列配出一個簽名檔連結 例如這樣子

1
2
3
4
 
$data['id'] = 123;$data['id'] = 123;$data['pubkey'] ='xcsfdsfsfds';$data['timestap']='20150102';
 
$str="id=".$data['id']."&"."pubkey=".$data['pubkey']."&"."timestap=".$data['timestap'];

;

可以用這個方式去做,維護上比較容易

1
2
 
$str= sprintf( "id=%s&pubkey=%s&timestap=%s, $data['id'], $data['pubkey'], $data['timestap'] );

facebook的簡訊認證問題 收不到簡訊的解決方法

開發facebook app需要手機簡訊認證
親身實驗以下結果
1.第二類電信無法使用
2.台灣大哥大直接過關
3.遠傳電信
遠傳電信很複雜
請按照以下順序
步驟一,在個人檔案下,編輯個人檔案->連絡資料>行動電話
做第一次的輸入
遠傳是可行的
遠傳會回傳兩封簡訊,一封是驗證碼,輸入驗證碼
步驟二.進入應用程式開發
如果請完成安全檢查手續,請再輸入一次你的手機號碼
這個時候,就會收到facebook發回來的簡訊
但是如果步驟1沒有實行,步驟二就會完全失敗
但是為什麼遠傳電信在”完成安全檢查手續”這個頁面內,會有兩種不同的狀況(先在帳號設定內輸入號碼會收的到簡訊,直接安全檢查會收不到簡訊)
而台灣大哥大在驗證的時候一次就通過
這我就不明白了