[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。 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); } 其他修正 Install完後,論壇的使用上還是會有MySQL語系語法判定錯誤問題,各程式各自有function […]

[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};”);