發表文章

目前顯示的是 8月, 2018的文章

[筆記] Facebook Open Graph 的 og:locale 該如何設定?

圖片
Facebook 的開放社交關係圖(Open Graph)針對 og:locale 的規範不曉得是不是有更新,以至於檢查網頁抓取資訊的時候噴了一個我沒看過的錯: 「 website 」類型的 URL「 https://www.example.com 」無效,因為「 og:locale:locale 」特性的指定值「 XX 」無法作為「 enum 」類型進行剖析。 Object at URL ‘ https://www.example.com ’ of type ‘website’ is invalid because the given value ‘XX’ for property ‘og:locale:locale’ could not be parsed as type ‘enum’. 查了一下發現是語言格式錯了,Facebook 的格式不是完全依照 ISO 標準,依據 本地化文件 的說明: Facebook 上的語言使用 ll_CC 格式,ll 是兩個字母的語言代碼,CC 是兩個字母的國家/地區代碼。例如,en_US 代表美式英文。 我們支援許多 ISO 語言和國碼/區碼 從 SDK 文件 裡面可以看到目前 Facebook 支援的 og:locate 列舉如下: Allowed values: en_us, ca_es, cs_cz, cx_ph, cy_gb, da_dk, de_de, eu_es, en_pi, en_ud, ck_us, es_la, es_es, es_mx, gn_py, fi_fi, fr_fr, gl_es, ht_ht, hu_hu, it_it, ja_jp, ko_kr, nb_no, nn_no, nl_nl, fy_nl, pl_pl, pt_br, pt_pt, ro_ro, ru_ru, sk_sk, sl_si, sv_se, th_th, tr_tr, ku_tr, zh_cn, zh_hk, zh_tw, fb_lt, af_za, sq_al, hy_am, az_az, be_by, bn_in, bs_ba, bg_bg, hr_hr, nl_be, en_gb, eo_eo, et_ee, fo_fo, fr_ca, ka_ge, el_gr, gu_in, hi

[筆記] 延長 PHP-FPM 和 NGINX 執行時間上限

Laravel 或是一般 PHP 專案上常會遇到執行時間超時的問題, 例如遇到了 PHP 超過執行時間上限的錯誤: 'production.ERROR: Maximum execution time of 30 seconds exceeded' 或是遇到 NGINX 的超時錯誤: '504 Gateway Time-out' 是因為 PHP 和 NGINX 預設最長執行時間都是 30 秒,我們可以修改設定來延長它們。這裡我們延長到 Apache、IIS 慣例的 5 分鐘。 這個主題其實很多人寫了,但是資訊有點零散,乾脆自己再寫一篇方便以後找。 (感覺就是很常會改啊) PHP: 延長 max_execution_time PHP 的 runtime 設定中的 max_execution_time 參數可以指定腳本被 parser 中止之前允許的最大執行時間,預設值是 30 秒。我們可以透過修改 php.ini 指定為 300 秒。 修改 php.ini 以 PHP 7.2 為例,php.ini 的位置預設是在 /etc/php/7.2/cli/php.ini 。php.ini 的位置可以經由 php -i 指令查詢的到。順帶一提,PHPBrew 使用者可以透過 phpbrew config 指令直接開啟當前版本對應的 php.ini。 ; /etc/php/7.2/cli/php.ini ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; ; Maximum execution time of each script, in seconds ; http://php.net/max-execution-time ; Note: This directive is hardcoded to 0 for the CLI SAPI max_execution_time = 300 重新啟動 PHP-FPM 修改完成後,需要重新啟動 PHP-FPM。 PHPBrew 使用者 phpbrew fpm restart Ubuntu/Debian 系 sudo service php7.2-fpm res