[教學]如何在VirtualBox安裝CentOS 7

前言

大多數在本機開發的狀況下,很少會用虛擬機器安裝一整台伺服器,但最近遇到有客戶需要我們直教交付整台VM (virtual machine 虛擬機器),索性就來紀錄一下要如何在自己的電腦上建立整台虛擬機器的LAMP (Linux + Apache + MariaDB + PHP7) 環境的教學吧!

第一步下載VirtualBox與CentOS

市面上有許多虛擬機器的軟體,像是VMware、VirtualBox 都是,本次我們採用 VirtualBox作為我們虛擬機器的主體,原因沒有別得,只因為他是免費的,支援的平台也很多(Windows與Mac OS都支援),而且取得也很容易,只要上VirtualBox官網下載適合你的作業系統版本就可以了。

下載VirtulBox軟體並完成安裝

由於安裝過程都還算容易所以在這裡就不詳細說明了,原則上就是一直按下一步就差不多了。

接著我們要來下載CentOS作業系統,以Linux Server來說,比較常見的會是像CentOS、Ubuntu,我們這裡採用CentOS主要原因是以安裝後的檔案大小來說CentOS會是比較小的,可以說是麻雀雖小但五臟俱全的的一個選擇,所以我通常都會選擇採用CentOS來做Server的作業系統。

跟 VirtualBox 的步驟差不多,只要前往CentOS下載作業系統的iso檔,等一下我們在建立虛擬機器的時候才會用到,本次我要安裝的是CentOS 7 的x86_64版本,只要點擊一下檔案名稱就會直接下載iso檔了,iso檔是光碟映像檔的意思,簡單來說他就說iso就是虛擬光碟,取得iso檔之後,我個人會建議把iso檔放在桌面,等等安裝時會比較好找一點。如果你想要安裝新一點的CentOS 8 也是可以的,但在作業系統安裝上可能介面上會稍微有點不同,不過大致上安裝完作業系統後的步驟也是差不多的。

下載CentOS iso檔

第二步建立虛擬機器

安裝完VirtualBox之後,打開後你會看到一個虛擬機器管理員,如果你不喜歡英文介面,VirtualBox是可以切換成中文介面的,因為我本人是用Mac OS系統,在Mac上只要到左上角,選擇喜好設定,就可以在介面裡找到語言的選項,接著在選擇正體中文,你就會發現介面親民多了。

VirtualBox 如何切換中文語系

回到虛擬機器管理員,我們按下新增按鈕,開始建立新虛擬機器。

VirtualBox 管理員介面

你可以替你的虛擬機器取一個你覺得不錯的名字,在這邊我設定為Demo,接著機器資料夾位置我通常都會選擇預設值,也就是不做任何修改,下一欄是作業系統的類型,因為我們要安裝CentOS所以選擇Linux,接著你會發現版本的欄位裡面沒有CentOS,在這裡我們直接選用Red Hat (64-bit) 即可。Red Hat 也是一款Liunx系統,是目前所有Linux作業系統中組織最大的一個團體,改天有空再來說說Red Hat的故事。選擇完成後就可以按下「繼續」這顆按鈕囉!

安裝CentOS的設定方式

接著就是設定這台虛擬機器的硬體設備部分,原則上就是記憶體與硬碟的大小,通常記憶體我都會選擇預設值不做調整,所以我會持續按下「繼續」這顆按鈕,而硬碟部分我也會選擇預設值「立即建立虛擬硬碟」,接下來如果你是個人使用,建議你選擇預設值VDI格式,會比較符合VirtualBox的使用,但如果你有要換到其他虛擬機器的軟體,例如VMware,我會建議你改選VMDK格式,在這裡我選擇VMDK格式。

預設建議採用VDI格式,若有要更換虛擬機器環境則建議採用VMDK格式

接下來我會選擇預設值「動態分配」讓系統自動分配硬碟大小,以免暫用太多我自己電腦的硬碟資源,但如果你想要運作快速一點,直接選擇固定大小會有助於提升虛擬機器的硬碟效率喔!最後硬碟大小原則上如果沒有特別需求,一樣採用預設建議大小即可,最後你就可以按下「建立」按鈕,結束新建立虛擬機器這一回合了。

安裝CentOS作業系統

連續點擊兩次剛剛建立好的新虛擬機器(我的叫Demo),雙擊後虛擬機器就開機了,因為沒有OS可以運行,所以VirtualBox會問你要不要掛載iso,這時選擇先前放在桌面的CentOS 7 的iso,選擇「啟動」,就可以開始進入CentOS的安裝環節了。

選擇CentOS的iso檔

接著選擇「Install CentOS 7」,在這樣的文字介面裡你只能用上下左右來操控選項,當前的選項會是白色的,確定選在「Install CentOS 7」之後按下enter,你就會看到畫面上正在執行安裝程序了。

安裝CentOS

接下來你會進入CentOS的圖形安裝介面,一開始可以選擇語系,一個一個找太麻煩了,所以你只要在搜尋框裡面輸入ch你就會找到中文的選項,選擇後就會出現「繁體中文(台灣)」的選項。在安裝摘要的部分,軟體選擇預設是最小安裝,在這邊我就不做修改,這樣一來就只會安裝CentOS的核心系統,缺點就是你需要什麼功能或軟體都要另外安裝。再來是安裝目的地,點選安裝目的地之後,基本上也只有一顆硬碟可以選,所以確定選取硬碟後就可以按下「完成」,接著就可以「開始安裝」。

CentOS 安裝介面
選擇硬碟之後,點選左上角的完成

點選開始安裝之後你會進入下一個畫面,在這個畫面裡最重要的是你需要設定Root的密碼,Root是Linux系統的超級管理員,所以你必須設定好Root的密碼,這樣到時候你進入系統才不會不知道密碼是什麼,至於用戶你可以先不建立,之後再用Root去建立新用戶。安裝好之後記得按下重新開機,這樣我們才能進入CentOS系統裡。

選擇ROOT密碼
設定ROOT密碼

重開機之後你就會進入終端機的世界,是的,一個完全沒有圖形介面的世界,如何登入呢?因為我們剛剛沒有建立用戶,所以帳號就直接是root了,密碼則是剛剛安裝的時候設定的那組密碼,再輸入密碼的時候畫面不會有反應,請不要擔心,就正常的輸入按下enter就好。那要怎麼關機? 其實你只要在虛擬機左上角按下X,VirtualBox就會問你是不是要關機,反正他不是真實的電腦,不用怕突然關機會整台壞掉啦!所以我們先將機器關機先,我們要先處理另外一個硬體問題。

設定網路卡

因為我們是最小安裝,所以我們的系統其實很笨,連預設的網路卡都不會啟動,所以如果你的虛擬機器是關著的,請你點兩下打開它,然後選擇第一個選項或繼續發呆10秒,你就會進入作業系統裡,接著輸入root以及你剛剛設定的密碼,到這裡我們就登入系統裡了。

你可以嘗試輸入

ping 8.8.8.8

你會發現畫面上顯示「Network is unreachable」,意思就是連不到網路,所以接下來我們要設定預設網路卡讓我們的網路可以正常連線。你只要自畫面上輸入

nmtui

並按下enter,你就會進入一個很精簡的藍色介面,所謂的nmtui是指NetManager - TextUI,也就是說這是管理網路的文字介面,接下來我們要選擇第一個選項「Edit a connection」,來設定我們的網路卡。

NMTUI介面,選擇第一個Edit a connection

接下來你會到左右分割畫面,紅色底的意思代表被你選取了,左邊這欄是你目前全部的網路卡,你有幾張你就要設定幾次,所以右邊請選edit進入設定。

在NMTUI裡面設定網路卡

確定你的IPV4與IPV6都是Automatic,之後透過上下鍵移到Automatically connect 並按下空白鍵來啟動自動連線網路,接著移到OK按下enter,然後選擇右側的Back,接著移到最下面的Quit再按右鍵會到ok,按下enter之後,你再從重新輸入ping 8.8.8.8就會發現可以連到外部網路了,如果你想停下測試只要按下control+c就會停止了。

一般來說來說這邊我們只要輸入ipconfig指令就可以查到我們虛擬機器的本機ip,但由於我們是最小安裝,所以裡面連ipconfig都沒有呢!這下子怎麼辦才好呢?別擔心,本篇教學真的佛心超仔細,所以接下來我們要進入軟體安裝環節了,接下來我們會採用yum來安裝軟體,所以我們先更新yum,由於我們是用root,所以指令前面的sudo其實可以省略,但如果你是用其他帳號,建議還是要加上sudo會比較好一點。在終端機內輸入以下指令:

sudo yum update

中間會詢問你需要OOOM空間可不可以等等的訊息,請都直接輸入Y,更新完成後,接著我們來安裝網路工具

sudo yum install net-tools

安裝的過程中還是會詢問你需要這些硬碟空間可以嗎?一樣還是輸入Y,安裝完全程後,輸入以下指令你就可以取得你的虛擬機器ip配置了。

ifconfig
輸入ifconfig查看本機ip

當你看到你的ip是10.0.2.X的時候,就代表你的虛擬機器使用的網卡是虛擬的(廢話),我們的目標是讓虛擬機器取得192.168.x.x的這種ip,這樣我們才可以連進去Server裡,所以讓我們關閉虛擬機器,回到虛擬機器管理員,在虛擬機器上按右鍵,將網路卡改為橋接介面卡,因為我的電腦(真的Mac電腦)是採用wifi網卡,所以在這裡我也選擇wifi的選項。

改用橋接介面卡,讓虛擬機器取得實際內網ip

再次啟動機器輸入root與密碼,接著再輸入ifconfig,你會發現你的虛擬機器已經可以取得192.168.x.x的內網ip了!接下來我們就要進入Apache 、MariaDB 、 PHP7的安裝環節了!

安裝Apache

請確定你的虛擬機器現在是開啟的,你也有輸入過帳號root與密碼,現在也正在東端機的畫面上,確定無誤之後請輸入以下指令:

sudo yum install httpd

過程中一樣會問你安裝將會使用到多少檔案空間大小等等的問題,請一律按Y一直到出現Complete!字樣為止。

接下來我們先啟動Apache:

sudo systemctl start httpd

接著我們設定當CentOS作業系統啟動時,Apache也會跟著自動啟動:

sudo systemctl enable httpd

到這裡我們就設定完Apache了,撇開指令不談是不是其實還蠻簡單的(笑),所謂的systemctl 就是系統控制system control的縮寫,而httpd則是http daemon的縮寫,簡單來說就是執行http傳輸的軟體,看到這裡有沒有覺得這些指令其實還蠻白話文的,沒這麼嚇人了?

如果你想知道你現在Apache運行的狀態只要輸入以下指令:

systemctl status httpd

當你看到畫面上有一個綠色的active(running) 就代表Apach運作正常囉!

Apach Active (running)示意圖

啊如果不是綠色的active怎麼辦?聽說重開機治百病,所以重啟的指令如下:

systemctl restart httpd

安裝MariaDB

安裝MariaDB資料庫也很簡單,只是中間步驟有點繁瑣,沒關係我們初學者,我們一步一步慢慢來,首先先輸入安裝MariaDB指令:

sudo yum install mariadb-server mariadb

中間一樣會問你需要多少硬碟容易可不可以,一樣輸入Y按下enter,完成後一樣會看到Complete!字樣。接下來啟動MariaDB:

sudo systemctl start mariadb

然後開始我們有點繁瑣的資料庫初始化流程,請輸入初始化指令:

sudo mysql_secure_installation

第一個問題是問你有沒有設定root密碼,這裡的root是資料庫的root密碼,因為我們還沒設定所以直接按下enter即可。

第二個問題是在告入你設定root密碼比較好所以請輸入Y,然後設定你的資料庫root密碼,輸入密碼時畫面不會有任何改變,請正常輸入再按下enter,然後再次輸入一次密碼再按下enter,並請妥善記得這個密碼。

後續問題如果你不想詳細了解,那你就一路輸入Y輸入到安裝完成,然後直接跳到下一個指令,如果你想了解就繼續看下去。

第三個問題是問你是否要刪除匿名使用者,一般來說資料庫都不會開放給外部人員,所以請輸入Y。

第四個問題是詢問你是否在本地才能登入root管理員,通常為了安全性我們不太會開放遠端,所以也請輸入Y。

第五個問題是詢問你要不要刪除測試資料庫,基本上測試資料庫對我來說一點用處都沒有,還很佔空間,所以我也會繼續輸入Y。

第六題他是詢問要不要現在重新讀取權限表,因為剛剛有設定root密碼,所以我還是會繼續輸入Y。

以上你就完成了繁瑣的MariaDB初始化,接著我們來設定當CentOS啟動時,MariaDB也會跟著啟動:

sudo systemctl enable mariadb

到這邊你就完成了MariaDB的安裝了。

如果你檢查MariaDB目前的狀態:

systemctl status mariadb

一樣你會看到綠色的active (runing),萬一不是這個狀態怎麼辦?通常重新啟動也可以治百病:

systemctl restart mariadb

安裝PHP7

在安裝PHP7之前我們需要做一些準備工作,原因是CentOS內建的yum套件軟體只有到php5.4啊!所以我們需要先安裝一下軟體補充包,我們才可以安裝php7,請在終端機輸入:

yum install epel-release

EPEL (Extra Packages for Enterprise Linux) ,基本上就是一個額外的Linux軟體包,接著我們要安裝Remi的軟體包,這樣才可以把PHP7抓回來安裝:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

接著因為CentOS預設是安裝php5.4,所以我得先把預設的部分關掉,為了關掉我們還需要安裝一個管理包:

yum install yum-utils

然後關閉php5.4:

yum-config-manager --disable remi-php54

然後開啟你需要php7 版本:

yum-config-manager --enable remi-php74

在上述指令中的php74是指php 7.4,所以如果你要7.3版本就改成73就可以了,其他7的版本也是同樣道理。接著終於可以安裝php了:

yum install php

中間一樣會問你安裝需要這些檔案大小等等的問題,請一率輸入Y,一直到看到Complete!字樣為止。如果你想知道你的php安裝有沒有成功,你可以透過查詢php版本指令來檢查:

php -v
上圖為安裝php7.2之後輸入php -v 出現的版本號

接著php本身我們就有一些常用的套件要安裝一下,例如像是GD函式庫等等,以下就是常用套件的安裝指令:

sudo yum install php74-php-fpm php74-php-gd php74-php-json php74-php-mbstring php74-php-mysql
sudo yum install php74-php-mysqli php74-php-mysqlnd php74-php-xml php74-php-xmlrpc php74-php-opcache
sudo yum install php74-php-cli php74-php-common php74-php-pecl-zip

上述指令一樣php74改成你要的版本,因為我安裝的是php7.2所以我都是「php72」-開頭,如何知道你現在安裝的套件有哪些?只要輸入以下指令查詢即可:

php74 --modules

如果上述指令沒有接上版本就會列出全部版本的php套件。

接著我們要啟動php服務

sudo systemctl start php74-php-fpm

與上面相同,我們一樣設定開機時php會自動啟動:

sudo systemctl enable php74-php-fpm

到這邊基本上能裝的我們都裝好了,但很可惜的是你用本機(就是我的mac你拿來上網google的那個)瀏覽器,輸入192.168.x.x,你會發現你還是看不到網站,一般來說Apach裝好都會有一頁testing123的預設畫面,那為什麼你還是看不到呢?那是因為你被防火牆擋住了!

解開防火牆

要連到網站我們需要開通http服務,如果你有要用ssl就還要開通https服務,所以請輸入以下兩個指令:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

輸入完後如何確定你的指令有成功?我們可以透過查詢來成功:

firewall-cmd --list-all --permanent

沒有意外你會看到開通的服務有 http 、 https 、 ssh 等,以上指令後面接上「--permanent」是代表永久有效的意思。

防火牆有開啟的服務列表

最後記得要重開防火牆:

 service firewalld restart

然後你就可以用你電腦的瀏覽器開啟192.168.x.x看到tesing123的預設畫面了!

使用FileZilla傳輸檔案

由於防火牆已經有開啟ssh,所以我們可以用sFTP模式來傳輸檔案,主機位置就是你的虛擬機器ip 192.168.x.x,然後帳號基本是root 如果有你開其他帳號的話請改用其他帳號,再來密碼就是你登入CentOS的密碼,連接埠號請記得設定22,如果是用站台管理員,協定且記得選擇sFTP模式。

採用方法一的快速連線或是站台管理員模式都可以

連線的過程會詢問是否信任主機,因為是自己的主機而且還在內網裡,所以就大膽的信任下去吧!接著網站預設的根目錄位置是在:/var/www/html/,只要切換到這裡就可以把檔案放上去囉!

取代PHPMyAdmin的Adminer.php

習慣用mysql的工程師肯定都用過phpmyadmin這個資料庫操作介面,但因為他實在太肥大了,運作效能也沒有說非常好,所以從十年前我就不再使用phpmyadmin,而是改用adminer.php,他非常的輕薄短小,卻支援多款資料庫,也有多國語言設計,重點是他只是一隻php檔案,只要丟上server你就有跟phpmyadmin一樣的功能,剛安裝上去的adminer.php介面非常陽春,但如果你想要前衛一點的介面,adminer.php官網也有一些已經設計好的css,只要下載下來與adminer.php放一起就會從很陽春的介面變成很前衛的介面了!最重要的事......你跟終端機介面相處的時間就變短了很多呢!

按此前往Adminer.php官方網站

最後測試

由於先前我們已經設定好只要虛擬機器重新開機,Apach、MariaDB與PHP都會自動執行,所以讓我們來做最後的測試,看看重開機之後系統會不會自動執行,讓我們用瀏覽器就可以直接瀏覽adminer.php,在終端機下CentOS的重開機指令:

reboot

當系統重新開機,一樣會到帳號登入畫面,你不需要登入root帳號,請直接用瀏覽器打開虛擬機器的IP 192.168.x.x,由於我們只有放adminer.php在網站根目錄裡,所以請在後頭加上/adminer.php,即完整網址為http://192.168.x.x/adminer.php,你應該就會看到以下畫面,到這裡你就可以把你的網站放到測試機上了!

adminer.php 介面

如果你打開很不幸的看到的是php程式碼,請不用擔心,主要的原因是你的Apache不知道.php結尾的檔案要用php來執行,所以你需要在httpd.conf文件新增幾行設定就好。請先輸入以下指令來開啟httpd.conf檔:

vi /etc/httpd/conf/httpd.conf

然後找個你順眼的地方,比方說最上方或有個地方是寫file的地方,找到之後按下i啟動編輯模式,輸入以下內容:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

輸入完成後按下esc鍵,然後輸入:接著打「wq!」就可以儲存並離開了。

由於我們改了Apache的設定,所以不要忘了要重啟Apache服務:

systemctl restart httpd

然後你就可以重新整理你的瀏覽器,你會發現原本出現php程式碼的問題已經解決了,現在可以正常執行php程式了。

多站台如何處理?

現在我們一台虛擬機器了,也就說我們可以把虛擬機器變成虛擬主機放很多個網站在裡面,通常只需要放一個網站的話是不太會接觸到接下來的設定,但如果是多站台或有SSL需求的話就會需要多站台設定了這個部分了,那一台虛擬機器怎麼變成多站台呢?這部分我們就要不同的連接埠來處理了,預設http走的是80port,所以如果要放其他站台,我們可以改用81port、82port,你高興的話101port也可以,只要其他軟體沒有佔用你都可以使用。

要做到採用其他port這件事我們需要去改Apache的設定,在終端機裡我們通常都用vi編輯器做來修改文字的工具,所以請在終端機內輸入:

vi /etc/httpd/conf/httpd.conf

然後用上下箭頭切換到Listen 80,這裡是設定連線的連接埠,通常http是走80 port,如果你想要新增其他連接埠,請在Listen的下一行按 i 進行編輯,你可以在Listen 80下方多一行Listen 81,但你也可以選擇全部使用80 port,之後再用server name做為區別。

新增監聽的連接埠 port

接著往下一直到這份文件的最底部,新增以下內容:

<VirtualHost *:80> //這裡是設定連接埠
    ServerName demo2 //這裡是網站的網址,所以也可以是www.a.com
    DocumentRoot /var/www/html/demo2 //是網站根目錄
</VirtualHost>

最後按下esc鍵,輸入:接著打wq!儲存並離開httpd.conf檔。

由於我們修改的Apache的設定,所以請重新啟動Apache讓設定生效:

systemctl restart httpd

當然如果你有用到其他連接埠,例如上面說的81 port,也要記得在防火牆打開81 port,並且重啟防火牆:

sudo firewall-cmd --add-port=81/tcp --permanent 
service firewalld restart

如果你的port不是81,請修改上述第一行指令的「port=81」這裡的數字。

補充:常用系統指令

  1. 開機:點兩下虛擬機或打開開關
  2. 關機:halt 或 poweroff 或 shutdown -h now (最後這要root才能用)
  3. 重開機:reboot
  4. 切換資料夾:cd 路徑,範例:cd /var/www/html
  5. 上一層資料夾:cd ..
  6. 列出當前資料夾檔案:ls 或 ls -all (詳細列出全部資料)
  7. vi編輯器:輸入vi 檔案名稱,在vi 中 a或i為修改該行,esc為跳出編輯模式,輸入:才可以打其他指令,以下為其他指令:wq!為儲存離開,單純儲存是w,單純離開請輸入q,強制離開為q!
  8. 硬碟使用量查詢:df -h
  9. 查詢前幾名使用資源最多的程式:top
  10. 查詢記憶體用量:free
  11. 目前正在執行中的程式:ps 或 ps -aux
  12. 強制停止程式:kill PID名稱,例如:kill 101,PID值可以用ps去查
  13. 啟動服務:sudo systemctl start 服務名稱
  14. 停止服務:sudo systemctl stop 服務名稱
  15. 重新啟動服務: sudo systemctl restart 服務名稱
  16. 查詢服務狀態:sudo systemctl status 服務名稱
  17. 常用服務名稱:httpd.service 或 mariadb 或 php74-php-fpm.service

MAC必裝的Mac App軟體推薦


自從開始用Mac到現在,因為上一台在使用中常常出現小問題,也使用了四、五年時間,覺得又該升級我的生財工具,所以在去年底立馬訂了一台新的Macbook Pro 15寸 2018款,剛拿到新的Macbook pro 覺得多了一條touch bar 很不習慣以外,其實touch bar對我來說使用率還真的不高,大部分就是解鎖的touch ID、拿來播放音樂調大小聲跟調整螢幕亮度等等,其他的輔助功能我幾乎用不到,於是就覺得這條Touch bar給我濃濃的雞肋感,似乎存在感非常低,但我覺得很有可能是大部分軟體針對touch bar的支援度真的不高,以至於touch bar真的沒有什麼功能好用。算上這一台,這已經是我第四台Macbook pro 15寸了,從第一台還有吸入式光碟機到現在只剩下3個Thunderbolt 3 的USB-C孔,真的進步非常多啊!

首先,Mac除了會附贈作業系統OS,也可以免費升級OS以外,內建的iWork系列也是我覺得非常好用的軟體,iWork系列就包含了Page、Number以及Keynote,所以如果是買Mac來當文書機,你根本不需要安裝什麼東西就可以立即開始使用。如果從Windows剛換過來Mac系統的朋友,其實我個人覺得也沒有什麼障礙,所有的軟體都可以在finder找到,就等於Windows的「開始」了,至於常用快速鍵,你只要把Control鍵全部替換成command鍵(或稱蘋果鍵),基本上就差不多了,其他像是安裝軟體、移除軟體等等,Mac都比Windows簡單非常多。

第二個比較不一樣的是輸入法的切換,最新版的Mac OS輸入法切換是Control+空白鍵,以前是command+空白鍵,雖然改了好一陣子我偶而還是會不太習慣,再來如果你只是想快入中英文輸入法切換,很簡單你只要按一下「中/英」鍵,也就是平常在控制大小寫的那顆按鈕,這時你可能會問『那我如果真的想切換英文大小寫呢?』,別擔心,一樣是同一顆按鈕,只是你稍微按久一點就會切換英文大小寫了,再來我覺得第三個不一樣的就是軟體安裝與移除了。

Mac的軟體安裝有兩種,一種跟Windows很像要按一些確定、下一步等按鈕就可以完成安裝,另外一種你就是把你的App軟體拖曳到應用程式資料夾就完成了,這種方式真的超直覺又超沒有安裝感的,更別說移除應用程式了,在Windows上要移除軟體步驟非常多,但在Mac上你需要打開應用程式資料夾,然後把App軟體丟進垃圾桶,你就完工了,與你的現實生活對待垃圾的行為完全一至!

說了這麼多,現在就來聊聊我剛拿電腦後我會安裝的幾個Mac app軟體,其中大部分都是免費的,可以讓你的Mac更加強大,我順便也會介紹一些內建常用功能,所以你如果是Mac新手,這篇看完保證你經驗值瘋狂往上加,以下要介紹的Mac app軟體大部分都是要自行下載安裝,只有少部分有在App Store裡,自行下載安裝的軟體就需要「系統偏好設定」裡的「安全性與隱私權」裡選擇「一般」分頁,在下方會有一個「允許從以下來源下載的App」中選擇「任何來源」,如果你沒有這個選項,請在右上角點擊放大鏡Spotlight 裡,輸入Terminal(終端機的英文) 按下enter,就會打開「終端機」這個看起來很恐怖的黑底白字框,在終端機裡面輸入以下指令:
sudo spctl --master-disable
你可以直接複製以上指令貼在終端機裡,然後按下enter,畫面會出現password字樣,請不用害怕,在終端機裡輸入你的密碼,當你在輸入密碼時畫面不會有任何的改變或移動,你正常的輸入密碼,輸入完成後按下enter,即可以關閉終端機。接著如果你的「安全性與隱私權」裡的「一般」分頁還是沒有「任何來源」這個選項,請關掉「系統偏好設定」再重新來一次即可。如果你的「安全性與隱私權」裡的「一般」分頁顯示灰色無法讓你修改來源,請看左下角是不是有個鎖頭,點擊鎖頭輸入密碼後,鎖頭就會打開,你就可以修改成「任何來源」,接著養成好習慣,把把鎖頭鎖上即可,接著只要看到你喜歡的Mac app軟體,你就可以下載安裝來使用了。

Google Chrome (免費 Free)

雖然Mac內建Safari瀏覽器,但身為一個專業網站開發人員,我建議你另外安裝目前全世界最多人使用的Google Chrome瀏覽器,原因是Safari在不同OS不同版本下居然每個版本都長得都有點不太一樣,導致很多該支援的網頁語法或語言到Sfari就開始出現一堆問題,簡直就是悲劇的IE接班人,所以為了你的良好上網體驗著想,你還裝一下Google Chrome吧!
立即下載 Google Chrome

Line Mac版 (免費 Free)


Line是目前台灣使用率最高的社群聊天APP,大家打字的速度我相信都是電腦快過於手機或平板較多,有鑒於此,為了讓你訊息不漏接,或在必要時刻快速打字聊天的情況下,就非常建議你安裝一下Line的Mac桌機版本了,唯一比較困擾的是,輸入帳號密碼時你必須注意你的輸入法目前是中文還英文,我時常在登入時帳號密碼輸入完畢後,立刻看到登入失敗的訊息,通常都是因為我的輸入法切換成中文的緣故,所以你如果一直登入不能,請記得檢查你的輸入法目前是什麼語言喔。
立即下載 Line Mac版

截圖

Mac內建的截圖功能對我來說非常夠用,快速鍵是command+shift(向上箭頭)+3或4或5,3是全螢幕,4是擷取部分,5是完整的擷取功能,可以依據你的需求去做選擇,甚至還可以錄製螢幕,如果你按了4之後再加上空白鍵,你會發現你的滑鼠游標變成的照相機的icon,這時就會擷取你所選擇的視窗,其餘範圍都會是透明的,非常方便。如果只是截圖你可能會覺得還好,因為大部分我們可能都需要在圖上面畫點標示,或是打些字上去,這個功能Mac也內建了,有兩種方式可以在圖上面加上你想要標示,第一個方式就是當截圖完畢後,畫面右下角會顯示小縮圖,點擊小縮圖就會立刻進入繪圖模式,這時你就可以加上你想要的任何標示。另外一種方式是你的截圖都會直接存在桌面上,當你點擊打開圖片後,預覽程式也有繪圖功能,在上方工具列最右側的icon,你會看到一隻筆的圖示,點擊進去後就會進入繪圖模式了,所以針對截圖與基本的圖片標示功能這部分,我完全沒有想推薦的軟體,你真的該試試這些內建功能,真的非常方便好用又快速。

IINA (免費 Free)

IINA是一個非常好用的影音播放軟體,它支援了大部分的影音播放格式,雖然Mac有內建QuickTime Player,但它支援的播放格式實在太少,時常會遇到無法播放的情況。IINA也支持字幕導入,以往我會安裝VLC Player,但現在我已經全面改用IINA了。除了你電腦裡面的影音播放,IINA還支援線上串流與Youtube播放清單,但這兩個功能我就比較少用了,如果你時常看線上串流影音或是Yotube播放清單,你可以嘗試看看。
立即下載 IINA

Cheat Sheet (免費 Free)

換到Mac系統有一個阻礙就是常用的快速鍵似乎不靈了,有了Cheat Sheet你這個困擾可以瞬間解決!Cheat Sheet是一個很妙的Mac app軟體,只要安裝Cheat Sheet然後在「系統偏好設定」裡的「安全性與隱私權」,選擇「隱私權」分頁並在左側選擇「輔助使用」,然後將Cheat Sheet打勾,接下來你只要在任何軟體裡長按Command鍵,所有的快速鍵指令就會一次秀出來給你看!保證你多看幾次就能記起來,就算不想記也沒關係,只要長按Command鍵立馬可以查詢快速鍵!
立即下載 Cheat Sheet

Ityscal (免費 Free)

Mac內建右上角或顯示時間,我通常都會設定要顯示日期、星期與24小時制的時間,但我時常希望這個功能可以跟行事曆結合,通常如果要看月曆形態的畫面,在Mac裡你只能選擇行事曆這個軟體,當然你可以在行事曆裡面查看月份、安排行程等等的,但如果右上角的日期與時間就可以帶有這樣的功能不是更好?為了達到這個目的,我會安裝Ityscal,他可以將行事曆整合時間縮在右上角工具列上,這時右上角如果還有開啟內建的時間就會顯得很多餘,所以我就會關閉內建的時間顯示(系統偏好設定->日期與時間->時間分頁->取消第一個打勾),如此一來就會只保留Ityscal的日期時間,在做一些小調整即可完全取代內建的時間顯示。
立即下載 Ityscal
但如果你覺得Ityscal功能太強大,你想要在更精簡一點,只需要顯示月曆的話,那你可以改用Day-O 2 試試,也是個不錯的免費軟體喔!

Typora (免費 Free)

Typora是一套很簡潔得Markdown編輯器,如果有習慣在寫文章的朋友應該會知道Markdown這種輸入法,這種輸入法可以加速文章編寫的速度,也可以讓畫面更簡潔,使人更專心在寫作上,但剛使用Markdown的新手常常會不知道自己書寫的格式是不是正確的,這部分就是Typora的優點,因為Typora除了使用Markdown以外還結合了所見即所得編輯器的優點,讓你每完一行按下enter之後就自動轉換成正確格式顯示給你看,所以你很容易就可以知道你的Markdown格式是否正確,對於Markdown新手是非常友善的一個Mac app軟體,除此以外Typora的Markdown支援之強大,不管是表格、數學公式、甚至流程圖等等都難不倒它,如果你有寫文章的習慣,我非常建議你試試Typora,也許會有異想不到的效果喔!
立即下載 Typora

AppCleaner (免費 Free)

雖然說在Mac系統移除軟體只要拖曳到垃圾桶即可完成,但有不少軟體的設定檔是儲存在其他地方,所以如果要正完整清除一個軟體,我會建議使用AppCleaner,只要打開AppCleaner將你要刪除的軟體拖曳進去,AppCleaner就會自動掃描幫你抓出其他檔案,讓你一鍵清除乾淨,這個軟體不是必備的,這些設定檔存在電腦裡檔案也不會很大,所以其實有沒有刪除沒有非常重要,而且這些設定檔的用意是當你移除軟體後,哪天你又裝回軟體了,這些設定檔就會自動生效,你不需要重新設定軟體,所以要不要使用這個軟體,就看個人了,但你如果有點潔癖,我還是會建議你安裝一下啦!

立即下載 AppCleaner

Dozer (免費 Free)

當你Mac用久了之後你就會發現右上角的狀態icon多到一個爆炸,你會非常想要整理一下順序或是想隱藏一些icon,但Mac內建是沒有這個功能的,所以這個時候你就需要Dozer了,安裝Dozer後,你的右上角就會出現兩個原點,只要按下Command進行拖曳,你就可以改變原點或是右上角任合icon的順序,是不是很方便?如果你個人有點經費可以購買Mac app軟體,我會建議你改用Bartender 3,用起來的舒適度會比Dozer高一些,但如果你不想花錢,Dozer其實就很夠用了!如果安裝後不會使用Dozer,你可以看一下數位時代對Dozer介紹,非常簡單明瞭喔。
立即下載 Dozer



LyricsX (免費 Free)



對於愛哼歌但總是記不住的我,LyricsX簡直是神器,支援itunes與spotify等常用音樂播放軟體,可以直接線上搜尋歌詞顯示在你的畫面上,你不在「恩恩啊一」或「啦啦啦」的哼歌,可以直接看著螢幕開始唱,讓你瞬間可以一邊工作一邊K歌。LyricsX 還附帶歌詞延遲或加速的功能,讓你可以微調歌詞出現的時間,符合你個人的喜好,但如果你是跟胖虎一樣的朋友,建議你在周圍沒有任何人可以傷害耳膜的時候在使用,依然可以感受到大聲唱歌的愉悅喔!
立即下載 LyricsX

KeKa or eZip (免費 Free)


Mac內建的zip壓縮軟體非常的陽春,雖然用起來很簡單,但遇到其他壓縮格式就往往不支援,這時候就會建議使用Keka或eZip,我個人喜歡解壓縮前可以有個預覽功能先讓我看一下,所以我自己是用eZip比較多,但以功能來說我覺得Keka比較強大,另外比較有趣的一點是,Keka如果你透過Mac app Store安裝是需要付費的,這些付費是支持Keka繼續開發的動力,但你如果前往Keka官網下載是完全免費的喔!
立即下載 KeKa or 立即下載 eZip

以上就是我通常會在MAC新機上安裝的Mac App軟體,大部分對我來說都非常實用,有一些我有用但在本篇就沒介紹,對於新入手Mac的朋友我真的十分建議先尋找內建就有的方式,而不是先找有沒有相關軟體,Mac其實在大部分的情況下不安裝其他軟體都能符合你的基本需求,畢竟安裝軟體也會消耗硬碟空間,開啟使用也會消耗電腦性能,並不是所有的朋友都有能力購買最頂級的Mac,所以如果你只是購買入門款,在你使用的過程中,多多了解Mac有沒有內建的軟體可以協助你完成你想要的結果,我相信在尋找答案的過程中,你會越來越愛你的Mac!

[教學] 我們來用CRM吧!EspoCRM、vtigerCRM 與SuiteCRM

公司營運至今也有三、四年,一直以來都用很傳統的方式在整理檔案,並沒有採用任何CRM系統,常用客戶才會有登記在客戶的excel表裡,是的,我們用excel當作我們的CRM,就這樣用了兩年,雖然說沒有遇到執行上的問題,但是我總覺得我們一直在浪費這項資源,畢竟開發每一個客戶都要花很多時間,但是這些客戶開發後沒有再繼續維持的真的比想像中多很多,尤其是早期我們建置的網站,大部分客戶都還用到現在遲遲不肯更新,以至於我們跟客戶的緣分就僅止於一個網站開發的時間,緣分慎短,說來可惜。我們可以幫客戶的部分不光只是建立網站,還可以協助客戶拓展網路事業,透過網路我們可以幫你創造更多的價值,這才是我們團隊真正專業的地方。

如此這般的,我們來用CRM吧!

雖然我們擁有開發能力,但是一套專業的CRM勢必是要花許多時間才可以建立,雖然說近期公司專案上是有空檔,但是這空檔也不夠開發一整套完整的CRM,畢竟一套完整的CRM除了要可以掌握客戶名單以外,報價單、合約、發票等三大區塊也是基本必備的功能,另外還要可以發送email,如果報價單、合約可以透過系統產生並且自建流水編號,當然就會讓一切更有系統,搜尋也可以更加便利,其他功能像是服務或產品管理、日曆、會議或是銷售流程等等也是很重要的功能,這樣隨便列一列都可以開發出很多功能來,與其自己抽空開發,我想最快的方式還是尋找市面上的open source來解決問題,雖然不見得非常符合需求,但是至少是個不錯的開始!

透過Google,我找了好幾套open source的CRM來測試,像是SuiteCRM、VtigerCRM,還有一套叫EspoCRM,這些都是開源免費的CRM系統,我們就台一套一套好好介紹吧!

簡單易用的EspoCRM

EspoCRM內建多國語言,不需要另外安裝語系包,內建簡體中文可用,但是沒有繁體中文,介面操作上非常簡單易用,是採用左右兩欄設計,算是一套簡單小巧又容易上手的CRM系統,功能部分有客戶(公司)管理、聯絡人(窗口)管理、潛在顧客、商機、案例、電子郵件、日曆、會議、通話、任務、文件、行銷活動、知識庫、信息流、用戶管理,大部分命名都很淺顯易懂,操作上也不太需要特地學習,左手邊就是功能選單,新增一律在右上角,內容上方是搜尋,下方則是列表,是一套我覺得如果我們家也要開發CRM應該也會朝這個方向前進,畢竟這套CRM的介面操作邏輯與我們現在幫客戶客製化的後台管理系統操作邏輯是完全相同的,所以對我來說,一但架好我幾乎不用學習就可以立馬開始使用。

那既然EspoCRM這麼簡單易用,我為什麼沒有選擇它呢?原因是因為他少了數據分析、產品與服務、發票管理等部分。現今講求大數據的時代,凡事都必須要有有數據為依據,EspoCRM在這部分就顯得非常聰明,數據分析的功能你必須另外付費購買EspoCRM Advanced Pack,在這個Advanced Pack裡,你可以獲得報表、商業流程管理、工作流程、MailChimo串接、Google行事曆同步、Google聯絡人串接、產品管理、報價與發票管理。那這個Advanced Pack要多少錢呢?要美金495元,約台幣1萬5千元。雖然說EspoCRM非常簡單易用,但是在我還有其他選擇的情況下,這個1萬5千元要不要花就會變得很重要,再者我們只是一間小小工作室,還是要考慮成本問題,與其花1萬5買這個Pack,我可能寧願花在團隊的年度聚會上,因此這個EspoCRM到這裡就被我拋棄了。

你可以在這裡前往EspoCRM官方網站,也可以在這裡試用EspoCRM包含Advanced Pack的版本。

選單清晰有條理的vtigerCRM

vtigerCRM算是老牌open source CRM,是從更老牌的sugerCRM修改而成,而目前sugerCRM最新版本已經要付費購買,vtigerCRM最新版還是完全開源的。在選單的邏輯上顯得非常有調整,你很快就可以找到你所需要的項目,主要分成:行銷、銷售、庫存、支援、專案與工具等項目,對於產品的進銷存也是有不錯的管理,除了可以掌握客源也可以掌握供應商來源,如果不是銷售類也可以透過支援與專案進行服務類商業行為管理,算是不管各種商業模式支援度都是一等一的CRM軟體,也是我心中目前的第一優先選擇。

最後我沒有採用vtigerCRM的原因,在於目前vtigerCRM 7 並沒有繁體中文語系,語系安裝也需要通過擴展商店才能安裝,雖然有找到一些台灣的工程師自行開發的繁體中文資訊,但是礙於這些工程師不喜歡大家直接當伸手牌的緣故而沒有釋放出來,原本我想自個翻譯,但是進行了三天之後我就放棄了,原因是我的翻譯我自己覺得很怪,而且又沒有翻譯軟體的經驗,怕到時候翻譯出來變成四不像,導致好好一個CRM變的很難用,這也變成了我最後沒有選擇vtigerCRM的原因。另外對於vtigerCRM這樣包山包海的功能我其實也有點擔心,畢竟我想要的只是一個客戶管理系統,這樣包山包海真的好嗎?裝了一套超厲害的CRM但是我只會用到50%的功能這樣好嗎?反覆思考下我覺得似乎不太妥,所以即使是第一優先選擇,也漸漸的在我的清單中被劃掉了。

你可以在這裡下載最新版的vtigerCRM

怪複雜又難懂的suiteCRM

suiteCRM與vitgerCRM一樣是來自於老牌的sugerCRM修改而成,所以本質上與vitgerCRM應該是差不多的,但是suiteCRM的選單就不像vtigerCRM那樣的好理解,雖然大部分vtigerCRM有的,suiteCRM也有,不過仔細核對後就會發現,suiteCRM少了供應商與支援區塊,所以讓suiteCRM可使用的範疇變得沒有vtigerCRM這樣的寬廣,雖然說功能變少,但是卻讓suiteCRM可以更專注在客戶維護、專案流程上,對於我們這種小型工作室來說,已經算很夠用了。

最後讓我選擇suiteCRM的原因也很簡單,suiteCRM擁有繁體中文語系翻譯檔,也就是大部分的操作都可以在中文介面下進行,所以也會讓學習門檻稍微降低一些,對於英文不好的我或其他同事來說也會更簡單。另外在系統擴充與設定的部分suiteCRM比vtigerCRM好非常多,suiteCRM不需要經過擴充市集進行擴充安裝,這意味著大家可以隨時開發擴充,擴充的發展就會比vtigerCRM來得自由一些,但是太過自由最後當然管理不易,最後當然還是回歸到vtiger那樣有擴充市集管理會比較好一些,suiteCRM深知這個道理,所以目前suiteCRM已經擁有線上市集,你可以從裡面找到很多不錯的應用跟佈景,數量遠遠多過vtigerCRM,付費方式有一次付清也有月租、年租等付費方式。

而suiteCRM本身在系統設定的部分,自由度也跟擴充一樣超級高,而且內建系統修復功能,像這樣龐大的系統難免會有出相障礙的時候,有內建系統修復功能的情況下,對於不了解程式的使用者或是對這麼龐大的系統感奈無奈的工程師就顯得非常體貼。再來studio工作室功能,這個翻譯在一開始我根本看不懂,後來嘗試了一下才發現原來這是資料庫與介面修改器,當我發現目前的欄位不符合使用時,我可以透過studio工作室自行新增,並且調整介面,這個功能除了可以修改繁體中文語系檔翻譯不確實的問題,而可以讓CRM系統更符合整體公司的流程,有鑑於這個studio的功能還有繁體中文語系的情況下,讓suiteCRM即使不是我心中的第一名,也雀屏中選了!

你可以在這裡下載最新版本的suiteCRM,與繁體中文語系

在試用了suiteCRM一週之後,是發生了一些問題,但是就整體流程來說是非常符合我的需求,所以目前在快樂使用中,如果你也是一個小型的服務類型公司,我也會推薦你使用suiteCRM!

[筆記] opencart 1.5.6.1 後台 Sort Order 排序數字無法正常顯示

最近朋友開了一間店,因為預算有限又想用最快速度完成購物網站,所以就用Opencart來製作,本來打算裝2.0,但是朋友買版型只適用1.5.6,所以只好裝1.5.6版本,在上稿的過程中,編輯分類的時候發現在列表裡面的排序數字一直都不對,所以就回去查了一下程式,原來是原本的程式筆誤,導致 opencart 最終發佈的1.5.6.1版本裡面有bug,修改方式如下:

1. 找到admin/model/catalog/category.php,並用編輯器打開。
2. 尋找208行$sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' > ') AS name, c.parent_id, c.sort_order FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c ON (cp.path_id = c.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (c.category_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'";
3. 將上方紅色文字改成“cp.category_id” 變成+ $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' > ') AS name, c.parent_id, c.sort_order FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c ON (cp.category_id = c.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (cp.path_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'";
4. 修改完成後上傳覆蓋admin/model/catalog/category.php,即可修復Sort Order 排序數字問題