2016/11/18

[Linux] CentOS 7 主機遇到 file_put_contents(): failed to open stream: Permission denied 的解決方法

今日在客戶的 Linux (CentOS 7) 主機遇到從來未遇過的事, 不管權限加到多高, 擁有者, 該設定的讀寫權限全設定了。卻仍在網站的 log 看到 file_put_contents(): failed to open stream: Permission denied.

弄了一下午,終於找到原兇了,原來是 SELinux 搞的鬼!

查看 SELinux 的設定狀態
sestatus

暫時關閉,不用重開機的方法
setenforce 0

要完全關閉則需修改 /etc/sysconfig/selinux 把 SELINUX 的設定值從 enforcing 改成 disabled,存檔後再重新開啟主機即會套用設定
SELINUX=disabled

另外在這之前,網站曾處在 httpd 403 forbidden 的錯誤,一併記錄以免忘記 這也是因為 SELinux 在搞鬼,只要下以下指令即可
restorecon -r /var/www/html

以上都是用 root 權限去設定的 感謝有一群社群技術支援的朋友們,才解開這個羅生門~ 

References:

Visual Studio for Mac Preview 搶先玩


Mac 也有 Visual Studio 啦! 今天可以下載 Preview 版搶先玩~

2016/10/10

[Cmder] 解決中文顯示問題

一直以來在 Windows 用 Cmder 來打指令沒有特別想過中文的顯示問題

因為大多數指令或目錄都是英文

直到最近在玩 PHPUnit 的 --testdox 功能, 如果是用中文來命名測試的話, 顯示會出現亂碼, 這時就特別想解決中文的顯示問題



2016/09/30

[Selenium] 變更使用 ChomeDriver 來執行 Selenium Web UI 測試

Selenium 預設是用 Firefox 為預設的瀏覽器來執行測試

但是因為 Firefox 更新版本後 (目前版本 49.0.1), 造成執行錯誤, 之前是哪個版本我也沒特別記


我遇到的錯誤訊息為:
WARN - Exception: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.
顯示的畫面長這樣:



在一番掙扎後, 決定換不同的瀏覽器來試試看.

結果換了 Chrome 後, 一切就都正常了, 測試了 Windows 10 及 macOS Sierra 都能正常運作!!

有時堅持是好的, 有時要換個角度, 反而能找到另一片天~

2016/09/25

[TypeScript] TypeScript 2.0 之後定義檔 (*.d.ts) 的安裝方法

TypeScript 2.0 發佈後, 可以不用再用最早的 TSD 及過渡時期的 Typings 來下載定義檔了.

可以用 npm 來統一安裝管理

先確認目前的 TypeScript 版本 (今天查是 2.0.3)

tsc -v

如果還在 1.8.x 那麼可以更新囉!!

npm install -g typescript

現在要安裝定義檔, 可以用 @types/[PACKAGE] 來表示

例如 vue 的定義檔

npm install --save @types/vue


在 tsconfig.json 檔可以加上以下區塊 (types 是 TypeScript 2.0 以後才支援喔, 查看 schema)

    "types": [
        "vue"
    ]


Microsoft 也提供定義檔搜尋工具, 可以好好運用: http://microsoft.github.io/TypeSearch/


終於又可以再少一些怪怪的語法, 太多太雜都快記不住了 (所以筆記還是要不斷更新才行 XD)

2016/09/21

[macOS] 系統更新至 Sierra 後 Homebrew 權限不足問題解決方法

今早 macOS 已經開放下載更新,當然我也不會落後!



更新系統後,在執行例行公事 Homebrew 檢查,出現沒有權限



2016/09/02

[.NET] 解決 EF 錯誤: there is already an open datareader associated with this command which must be closed first

筆記錯誤解法, 供未來翻查

情境:

foreach 中又有巢狀的查詢物件條件, 造成 lazy loading 出現錯誤


錯誤訊息: 
There is already an open datareader associated with this command which must be closed first.