發表文章

目前顯示的是 2015的文章

將 canvas 轉換成 64encode 的文字狀態

JavaScript 可以利用 Canvas 進行圖片編輯的動作,但是圖片編輯完後要怎麼存檔呢?有一種作法是把圖片轉換成 64位元 的文字狀態。

這樣也可以直接在瀏覽器上呈現喔!

假設 canvas 的 id 是 myCanvas 好了

var canvas = document.getElementById("myCanvas"); var dataURL = canvas.toDataURL(); console.log(dataURL);


需要注意的是,如果有載入外部圖片的話,必須要保證圖片在同一個網域裡面否則會有出現錯誤不給轉換

Tainted canvases may not be exported.


google cloud centos7 ssh 無法登入問題

圖片
在 Google Cloud 上的 Centos 7 預設 ssh 登入是用 key 登入的而不是輸入 root 的帳密登入。 不過我還是一直都只會用帳號密碼的方式登入。所以這個影片就是用來告訴大家怎樣設定可以讓 ssh 回到可以用帳號密碼登入的狀態。
主要要修正的要點
/etc/sshd/sshd_conf
PermitRootLogin yes PasswordAuthentication yes

在未登入的情況下取得 instagram 的 hashtag api

圖片
Instagram 有提供 Hashtag 的 api 可以用來收集所有使用的 hashtag 資料。
https://instagram.com/developer/endpoints/tags/
不過呢
依照官方文件的說法,需要多做一個使用者登入的動作取得 access-token 才能取得 hashtag 的內容。

終於還是有不用登入就可以的作法了。
我們只要改變一下這個
https://instagram.com/developer/endpoints/tags/#get_tags_media_recent



把這個後面的 access_token 這個參數換成 client_id 一樣可以取得 tag 的內容喔

javascript 將json文字轉換成 json 物件

當我們在 javascript 裡面編輯

var json_val = '{["name":"James"],["name":"Wolf"]}';
雖然長得是 JSON 的樣子,不過他畢竟只是個文字字串,這樣是沒有辦法使用的。我們要將他轉換成真正的 JSON 格式才可以被拿來使用
var json_val = '{["name":"James"],["name":"Wolf"]}'; console.log(JSON.parse(json_val));
其實只需要加上 JSON.parse 這個動作就可以了。

apache 直接對指定的資料夾進行帳號密碼登入驗證

圖片
有些時候我們會遇到需要整個專案都只能給特定人士使用的,偏偏其實裡面並不需要用到資料庫,特別幫他們寫一個會員登入系統有點傻氣。這時候其實 Apache 有內建對整個資料夾進行登入驗證的方式

這個畫面是不是很熟悉,要達成這個功能需要先確定你的資料夾有開放使用 .htaccess 檔案設定。

接著我們要去打開 .htaccess 檔案,輸入以下設定內容

AuthName "Restricted files" Authtype Basic AuthUserFile "/var/www/html/pass" Require valid-user
上面的內容表示用 Basic 的方式進行驗證,帳密檔案放在 "/var/www/html/pass" 這個檔案裡,最後一行是說只要帳密檔案有登記的都可以登入

然後就是要去設定可以使用的帳號密碼檔案了,需要用 htpasswd 這個指令來建立。
如果是第一次使用請輸入

htpasswd -c 存放路徑 帳號 htpasswd -c /var/www/html/pass james
如果不是第一個帳號的話就不要輸入 -c 這個參數,會把之前的資料都清掉喔

解決 Message: mysqli::real_connect(): Headers and client library minor version mismatch

最近在升級 MariaDB 後會發生一個問題
Message: mysqli::real_connect(): Headers and client library minor version mismatch

雖然說把錯誤訊息關掉就可以當做沒發生(實際上在使用也沒發現問題)。
不過還是去找到問題的解決方式

其實在早期我們 php  和 mysql 連線是用 php-mysql 這個功能下去驅動連線,不過在 php5.3  後已經推薦使用  php-mysqlnd 驅動 一方面是因為版權授權的關係,一方面據說效能也會高出許多。

我沒有特別去測試這件事情不過我們就先把它換掉吧!至少可以處理掉上面的錯誤訊息
以 php 5.6 為例子。


yum remove php56w-mysql yum install php56w-mysqlnb

CentOS 6.5 安裝 MariaDB

在 MariaDB 的官網上面就有教學。
https://mariadb.com/kb/en/mariadb/yum/

大部分的情況來說,在  CentOS 7 已經內建用 MariaDB 不過我們如果是要用 CentOS 6.5 的話可以自己建立軟體庫一樣可以用 yum 安裝

步驟
移除 mysql -> 設定 yum 資源檔 -> yum 安裝

移除 mysql
yum -y remove mysql mysql-server

設定 yum 資源檔
vim /etc/yum.repos.d/MariaDB.repo
如果是 32位元系統
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.0/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
如果是 64位元系統
[mariadb] name = MariaDB-5.5.39 baseurl=https://downloads.mariadb.com/files/MariaDB/mariadb-5.5.39/yum/rhel6-amd64/ # alternative: baseurl=http://archive.mariadb.org/mariadb-5.5.39/yum/rhel6-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1


yum 安裝
sudo yum install MariaDB-server MariaDB-client

CentOS 6.5 安裝 php 5.6

資料來源:
https://webtatic.com/packages/php56/

升級的步驟:
移除本來的 php -> 安裝測試版本的 yum資料庫 -> 安裝php56

移除本來的 php

yum -y remove php php*
安裝測試版本的 yum資料庫
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
安裝php56
yum install php56w php56w-opcache

附帶一提,我們裝完 php 後通常還會加掛很多東西,我通常會把想到的東西一次掛上去 yum -y install php56w-xml php56w-xmlrpc php-56w-pdo php56w-mysql php56w-mcrypt php56w-mbstring

Centos 7 上用 yum 安裝 MariaDB

在Centos7 上面其實已經都全面改用 MariaDB 取代 MySQL 了,所以如果按照之前 yum 快速安裝 php mysql 服務。的方式的話,會找不到 mysql 服務可以安裝。

其實換到 MariaDB 完全不難,語法一樣,連接的元件一樣,連同 phpMyAdmin 也可以無縫接軌。舊的程式也都可以持續沿用。(是的,他是一樣的東西)

那麼我們要怎麼安裝 MariaDB 呢?其實在用 ISO 檔安裝的時候就可以挑選,但是如果安裝作業系統結束後要怎麼用 yum 安裝呢?因為內建的 yum資源並沒有 MariaDB,所以我們要先幫他建立一個資源檔。

vim /etc/yum.repos.d/MariaDB.repo
在裡面輸入:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos5-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1 然後更新一下 yum 的資源
yum -y update
可以開始安裝了:
sudo yum install MariaDB-server MariaDB-client 啟動服務
/etc/init.d/mysql start 我沒有打錯字,真的用 mysql start 就可以啟動了


和 mysql 一樣第一次打開要先設定 root 密碼
mysqladmin -uroot password '密碼' 是的,我這邊一樣也沒有打錯,設定方式和 mysql 完全相同。接下來就可以順利的正常使用 MariaDB 摟!