[.NET][C#] Web 開發環境與語言架構指南

Intro .NET Framework 安裝 Visual Studio Community Download Visual Studio for Mac – IDE for macOS Quick Start 建議新專案.Template選擇Console Application預設C#,並選擇.NET Framework版本已建立專案。 進入專案IDE應將在Program.cs自動提供Hello World程式碼: using System; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine(“Hello World!”); } } […]

[Golang] Go Web 開發環境與語言架構指南

Intro Golang官方網站 WikePedia – Go語言 安裝 至官方下載頁面依據OS環境下載並安裝Golang: https://golang.org/doc/install 檢查Golang版本: $ go version Quickstart Tutorial: Get started with Go 在任一專案目錄下建立./hello.go: package main import “fmt” func main() { fmt.Println(“Hello, World!”) } 使用run指令快速直譯執行程式碼: $ go run . Go Modules – Package套件管理 Tutorial: Create […]

[Node.js] Node.js Web 開發環境與語言架構指南

Intro Node.js Wiki 安裝 Node.js Downloads – Node.js 檢查版本 $ node –version v14.17.5 NPM套件管理器 NPM JS 專案內安裝套件 npm install {require package name} 常用指令 # 列出專案內`清楚`的已安裝套件 npm list –depth=0 # 列出全域已安裝套件 npm list –global # 查看某package是否已安裝 npm list <packagename> Quick Start […]

[WordPress] 基本架構與環境建置指南

Intro 目前PHP Blog套件首選 WordPress繁體中文下載: https://tw.wordpress.org/download/ 官方安裝實用指南: https://wordpress.org/support/article/how-to-install-wordpress/ PHP 相容 PHP 5.6以上 官方建議: https://wordpress.org/about/requirements/ 資料夾權限配置 官方文件: https://wordpress.org/support/article/changing-file-permissions/ 社群建議需要改為可寫入的資料夾: /wp-content /wp-includes 其中wp-includes是為了讓外掛(Plugin)自動更新而不用透過FTP設定,可能需要搭配以下設定。 /wp-config.php 增加下列常數並設定: define(‘FS_METHOD’, ‘direct’); StackOverFlow – Can I install/update WordPress plugins without providing FTP access?

[Apache] PHP + Apache 環境指南 (libapache-mod-php) on Ubuntu

Intro 雖然Nginx已經…如要架設Apache,可以使用Apache mod PHP去介接PHP(目前Apache不使用PHP-FPM)。 安裝 快速LAMP安裝檔 安裝Apache: $ sudo apt-get install apache2 安裝Apache mod PHP $ sudo apt-get install libapache2-mod-php PHP版本切換 Ubuntu Manpage: a2enmod, a2dismod Ubuntu系列使用Aapche指令工具a2dismod與a2enmod切換,省去修改零散設定檔。基本上版本支援已裝的libapache2-mod-php各版本: $ sudo a2dismod php7.0 $ sudo a2enmod php5.6 Apache MOD PHP 設定要至/etc/php/apache2/ Server執行使用者 Apache的執行使用者的設定檔為/etc/apache2/envvars: […]

[Discuz!] 基本架構與環境建置指南 – Discuz!X系列

Intro 官方目前似乎只介紹到X3.2版本,可以參考Discuz! G雲碼專案或官方論壇,同期已經到x3.4。 各版本Github下載: yidas/discuzx-release PHP 相容 x3.2含以前支援PHP 5.6,不支援PHP 7.2 x3.3支援PHP 7.2 MeriaDB 相容性問題 Discuz!在判斷相容MySQL版本目前是使用單純的字串比較,如install\include\install_function.php內: ($dbver > ‘4.1’ ? ” ENGINE=$type DEFAULT CHARSET=”.DBCHARSET : ” TYPE=$type”); 而$dbver一般皆由各version()函式個別從原生mysql_get_server_info()函式取得,所以MeriaDB可能會回傳如10.1.38-MariaDB-cll-lve,而造成比對後是小於4.1版本。 Install修正 Install部分主要使用install\include\install_mysql.php作為$db全域變數,所以修改: function version() { return ‘5.6’; // 直接指定回傳版本 // return mysql_get_server_info($this->link); } […]

[NodeJS] NodeJS Guide – 基礎環境指南

Intro NodeJS官網 各平台依照指示下載安裝即可。 Get Started 安裝NodeJS:Debian/Ubuntu Installation instructions 撰寫一個app.js檔for web: How do I start with Node.js after I installed it? 按照上述,$ node app.js運行web server。 訪問http://127.0.0.1:3000/,也可以改hostname為內外網IP對外測試。 反向代理 Reverse Proxy 可以使用nginx做反向代理NodeJS App,如上述3000port本地web app,nginx反向代理設定範例如下: server { listen 80; server_name _; location / { […]

[HTTP] Content-Disposition 中文解碼支援所有瀏覽器

Intro 非英文語系檔名下載要支援多瀏覽器需要特別處理一下。 目標是達到Google Chrome, FireFox, Edge, IE以及更多的瀏覽器皆能支援。 Content-Disposition – HTTP | MDN 解決方法 使用filename*並遵循RFC 5987編碼標準即可,格式範例: Content-Disposition: attachment; filename=%E4%B8%AD%E6%96%87.txt; filename*=UTF-8”%E4%B8%AD%E6%96%87.txt; PHP sample code: $filename = rawurlencode(‘中文檔名File測試’); header(“Content-Disposition: attachment; filename={$filename}{$extension}; filename*=UTF-8”{$filename}{$extension};”);