發表文章

目前顯示的是 2020的文章

用Python下載影片時發生錯誤(KeyError: cipher)

圖片
使用Python下載影片需再安裝套件pytube3,相關說明可以參考 官網文件 。 一切準備就續,輸入範例程式執行後發生錯誤,錯誤訊息最後為KeyError: cipher,查找到一篇文章提到解決方式,主要是因為套件的extract.py有地方需要修正。 確認套件安裝位置,在命令提示字元輸入 pip show pytube3,從Location:找到extract.py位置。 在打開extract.py,大約300行左右,會找到parse_qs(formats[i]["cipher"]),把cipher改成signatureCipher,(請注意大小寫),儲存後重新執行程式即可。 參考資料: https://stackoverflow.com/questions/62098925/why-my-youtube-video-downloader-only-downloads-some-videos-and-for-other-videos

AJAX請求json發生 404.3 - Not Found錯誤

圖片
 第一次寫由前端讀取json檔案,以AJAX呼叫本機端檔案,在本機開發時,一切正常。發佈至伺服器後,發生404錯誤,花了點時間確認路徑正確無誤,最後到伺服器端執行網頁後出現「 HTTP 錯誤 404.3 - Not Found 因為網頁伺服器上設定的多用途網際網路郵件延伸標準 (MIME) 對應原則,而無法提供您要求的網頁。如果此網頁為指令碼,請新增處理常式,而且如果它是應該要下載的檔案,請新增 MIME 對應。 」 看了微軟的網站說明: 如何解決執行 ASP.NET 應用程式發生 HTTP 錯誤 404.3(一點通系列 - MVP 撰寫) , 於是又確認了一下伺服器的設定,發現IIS早已具有相關的設定。 後來又找了其他資訊,才知道還需要設定MIME類型,或者在web.config檔設定 mimeMap。 方法1:至IIS設定MIME→新增.json類型。 方法2: web.config檔設定mimeMap

PHP Debug使用 Notepad++ 和 Xdebug

圖片
最近工作上需要瞭解一套使用PHP Framework開發的系統,但程式碼多到看不過來,不知如何切入,想以debug的方式找系統執行上的蛛絲馬跡,也對後續開發有所幫助。 實際找了一下發現還滿多方案,因為懶的再安裝其他東西,最後選擇比較適合目前開發環境(windows)的方式:Notepad++ 搭配 Xdebug,雖然Notepad++的DBGP Plugin最後更新的版本感覺有點舊(2012),但目前看起來還堪用。 找出適合開發環境的版本並 下載Xdebug 提醒:除了需要挑選與PHP版本一致外,也需確認PHP是TS(Thread-Safety)還是NTS(None-Thread Safe),可從phpinfo的PHP Extension Build這一項得知。 下載之後將dll放至PHP的ext目錄下,並在php.ini加入Xdebug相關設定(參考設定如下),設定完成後重新啟動Apache服務。 [XDebug] ;指定dll所在位置 zend_extension="E:\AppServ\php7\ext\php_xdebug-2.9.2-7.3-vc15-x86_64.dll" xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.collect_vars = On xdebug.collect_return = On xdebug.collect_params = On xdebug.profiler_enable=1 ;視情況自行調整路徑 xdebug.profiler_output_dir="E:\AppServ\www\xdebug" xdebug.remote_log="E:\AppServ\www\xdebug\xdebug.log" xdebug.profiler_output_dir ="E:\AppServ\www\xdebug" 安裝Notepad++的外掛工具 DBGP Plugin 下載後將dbgpPlugin.dll複製到Notepad++的 plugins資料內

phpMyAdmin Error 有關session.save_path的設定

圖片
今天打開phpMyAdmin竟然出現錯誤訊息! 看了一下錯誤訊息內容,回想是昨天手癢做了C槽的磁碟清理的動作造成Session目錄的遺失。 於是重新設定php.ini裡面的session.save_path,重啟Apache,即可順利登入phpMyAdmin。 參考連結: https://natsumi93.pixnet.net/blog/post/23257067-phpmyadmin-%E8%A8%AD%E5%AE%9Aphp-session-%E4%BD%BF%E7%94%A8

PHP 7 無法載入LDAP的解決方式

本機環境:Apache 2.4.41 + PHP 7.3.10 今天測試LDAP認證程式時,發生HTTP ERROR 500的錯誤,從Apache的error.log中發現 Unable to load dynamic library 'ldap'(tried: C:\\AppServ\\php7\\ext\\ldap... 查了不少文章,大部份是舊版本的問題處理,試了很多方法,像是檢查LDAP模組是否啟用,路徑…等等,最後終於找到解決方法,便將過程記錄下: 首先修改PHP目錄下的php.ini 檢查extension_dir是否與實際目錄位置一致(extension_dir="C:\AppServ\php7\ext") 把LDAP的註解拿掉(extension=ldap) 重新啟動Apache 重新啟用之後,發現error.log仍然出現錯誤訊息,最後找到一個與我有類似環境及狀況的文章,原因似乎是Apache的bin目錄缺少了 libsasl.dll ,其解決方式就是把PHP目錄下的libsasl.dll複製一份到該目錄(C:\AppServ\Apache24\bin),然後再重新啟動Apache。 再次打開error.log,錯誤訊息不再出現,認證程式也順利執行。 參考連結: https://www.cnblogs.com/breeze-zZ/p/11170982.html

LimeSurvey安裝筆記

圖片
LimeSurvey 問卷管理系統廣泛應用於教育、研究等領域,此次因工作需要安裝測試,所以將過程筆記起來。 前置作業: LimeSurvey 採用 PHP 語言開發並搭配資料庫,故需先安裝伺服器軟體 ( Apache ) 及資料庫 (MySQL) ,本身開發環境為 Windows 作業系統,為了快速建置 Apache 、 PHP 、 MySQL 等,所以採 AppServ 伺服器環境整合包 來建置環境。 ( 官網下載 https://www.appserv.org/en/ ) 安裝的過程中要注意, IIS 和 Apache 預設都使用 80 port ,若本機已先裝 IIS ,再裝 Apache ,會導致 Apache 服務無法啟用,解決方式便是將 IIS 的 port 改成非 80( 暫時改成 81) ,才能啟用 Apache 服務。 安裝 LimeSurvey : 下載 LimeSurvey ( https://www.limesurvey.org/downloads ) ,解壓縮放到 Apache 網站目錄下。 在瀏覽器輸入本機網址,例如: http://localhost/limesurvey/index.php?r=installer/license 同意授權 安裝前環境檢查  資料庫設定,輸入相關欄位值,資料庫名稱假設命名為LimeSurvey,按下一步 因為MySQL尚未建立LimeSurvey,所以會出現資料庫不存在,點選建立資料庫 輸入管理員(網站管理員),完成安裝。 參考連結: 在 windows 7 上安裝 AppServ 2.5.10 https://chiangchingchi.pixnet.net/blog/post/80669591

PowerDesigner Palette關掉後從哪再打開

圖片
每次手指點太快會去關掉Palette,但事後又找不到,於是記錄下來,方便日後查找。 步驟:Tool→Customize Toolbars→勾選Palette。