最近想來玩玩 Phalcon, 但是我的OSX是安裝MAMP,所以Phalcon官方針對OSX提供的安裝方法似乎不太管用。
上網查找了一下,發現必需將MAMP裡的PHP重新再編一下,終於是裝起來了,所以,來記錄一下吧!!

1.確定你MAMP所跑的PHP版本:
這部份你可以在MAMP的console或是用phpinfo()看看
像豆子早前安裝的版本就是 PHP 5.5.23

2.確認MAMP PHP bin 的目錄路徑:
一般來說 MAMP PHP bin的安裝路徑會是在
/Applications/MAMP/bin/php/phpx.x.x/bin
以上的x.x.x就是您PHP的版本
以豆子的環境來看,路徑就會是
/Applications/MAMP/bin/php/php5.5.23/binOpen

3.開開Terminal並執行下列指令:
export PATH=/Applications/MAMP/bin/php/php5.5.23/bin:$PATH

4.到PHP官網下載PHP的source檔:
這部份可能要留意一下,像豆子的PHP是5.5.23,但官網現在主要提供的版本己經到5.5.35,這是沒有關係的。
就把它下載下來,放到以下目錄:(預設是沒有include/php目錄的,請自建)
/Applications/MAMP/bin/php/php5.5.23/include/php

5.Configure the PHP source:
cd /Applications/MAMP/bin/php/php5.5.23/include/php
./configure
在這個部驟,豆子出現以下的錯誤:
configure: error: Please specify the install prefix of iconv with --with-iconv=

但明明豆子的 /usr/bin/iconv 明明就有,但怎麼指定就沒效
上網查一下,就用brew 重新安裝 libiconv吧

brew install homebrew/dupes/libiconv

然後再用以下指令重新configure

./configure --with-iconv=brew --prefix libiconv

之後就會看到Thank you for using PHP.的訊息啦

6.Compile Phalcon:
接著下載Phalcon回來Compile
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install

這階段豆子又卡關了。。。
出現:$PHP_AUTOCONF environment variable. Then, rerun this script.
所以,用brew再裝裝autoconfig再重新configure
brew install autoconf

7.在php.ini裡加入phalcon extension file
如果不知道你的php.ini在那裡,用phpinfo()看一下最保險
在php.ini裡加上
extension=phalcon.so

8.重啟MAMP

9.檢查:
在phpinfo()的資訊裡應該就會多一個 phalcon的相關資訊囉

phalcon

最近幫同事解這個問題
話說這台 HP DL320E G8 還真是折磨人
去年在這一台上安裝CentOS 6
但就發現
明明做了Raid 1
但在安裝作業系統裡還是會看到二顆硬碟
當時翻找了很多文章才知道是抓不到磁碟陣列卡的驅動
(裝了不少主機的經驗,這還是頭一遭)
最後到官網下載DD檔,解壓縮後放到隨身碟
在centos 6 安裝的前導畫面
載入USB裡的驅動後
終於是可以認到Raid了
但卻發現系統裝好後作業系統會開不起來

Continue reading

1.先移除系統原本的mysql-libs
yum remove mysql-libs

2.到官網下載最新版本的rpm,並安裝
wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
rpm -Uvh mysql57-community-release-el6-7.noarch.rpm
yum install mysql-community-server

3.接著就可以啟用服務了
service mysqld start

4.用這種方法裝好的mysql,其預設的root密碼是藏在/var/log/mysqld.log裡的
所以more一下就可以看到
2016-02-03T08:11:46.993568Z 1 [Note] A temporary password is generated for root@localhost: ,F1WDenwkXBu
上面的,F1WDenwkXBu就是密碼,每個人安裝後的臨時密碼並不會相同

5.別忘了利用mysql_secure_installation工具設定root密碼,並將一些anonymous的帳號及非localhost的權限拿掉,就大功告成囉

更詳細的安裝方法可以參考官網的手冊

因為資安驗證規範要求密碼需設定有效期
所以,得修改系統的設定值
方法如下:

#vi /etc/login.defs
修改PASS_MAX_DAYS的設定值就可以了
不過以上的設定是針對設定後,新增加的帳號才會套用新的設定值
若要針對先前己建立的帳號
可以用以下的指令:
#passwd -x 天數 帳號
例:#passwd -x 60 root

如果要再改回never,把天數設成-1就可以

還有一個chage的指令可以做進階的設定:
例:
chage -m 0 -M 90 -W 15 root
以上命令表示設置使用者root的密碼最小有效期為0天,最長有效期為90天,在密碼過期前15天對用戶進行提醒

指令參數如下:
-m 密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M 密碼保持有效的最大天數。
-W 使用者密碼到期前,提前收到警告資訊的天數。
-E 帳號到期的日期。過了這天,此帳號將不可用。
-d 上一次更改的日期
-i 停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
-l 例出當前的設置。由非特權使用者來確定他們的密碼或帳號何時過期。

所以,如果要查詢某一個帳號目前的狀態可以用:
chage -l
系統會顯示如下的資訊出來:
Last password change : Feb 02, 2016
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

以上備忘!!

去年就發佈的CentOS 7 很多地方都做了很大的改變
感覺和當年的Fedora一樣
讓你愈改愈覺得不上手
所以後來才會改跳到CentOS
沒想到現在連CentOS也…..

唉!!
今天特地找了個時間小試了一下
目前知道和CentOS 6不同的地方有

1.服務的管理使用改了
改由 systemctl 來控制
例:
start httpd.service
真是又臭又長丫
雖然用舊的service指令仍然可以運作
但你還是會看到系統會Redirecting 到systemctl

2.預設的DB由MySQL改成MariaDB
雖然MariaDB就是的MySQL轉化來的
也發展好幾年了
操作方式也一樣
phpMyAdmin也可以用在MariaDB上
只是直接變成系統的預設DB
第一時間不習慣而己

3.防火牆由iptables變成了Firewalld
這是我最不適應的地方
平時習慣直接編輯 /etc/sysconfig/iptables
確發現CentOS 7找不到這個檔
才發現系統預設的防火牆改成Firewalld
但還好
iptables還是有
自己yum install一下就好了
但記得先把firewalld先關掉
整個程序基本上如下:

systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables

目前是今天遇到的大異動
據我所知好像還不止這些
剩下的就有空慢慢玩囉

docker 自建Registry後,將images檔push出去時會出現下以的錯誤:
root@docker:~# docker push 172.17.42.1:5000/httpd-dowdot
Error response from daemon: invalid registry endpoint https://172.17.42.1:5000/v0/: unable to ping registry endpoint https://172.17.42.1:5000/v0/
v2 ping attempt failed with error: Get https://172.17.42.1:5000/v2/: EOF
v1 ping attempt failed with error: Get https://172.17.42.1:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add --insecure-registry 172.17.42.1:5000 to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/172.17.42.1:5000/ca.crt

解法:
在/etc/default/docker加入以下參數,再把docker服務重啟就可以了
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=172.17.42.1:5000"

如果您曾經用過windows自帶的「命令提示字元」的經驗,想必會覺得很難用又不方便吧!(連用個copy、past都另人不順手)

其實平時用它的機會並不高,通常只拿它來做簡單的網路除錯想說就忍著用,不過最近安裝了Git,其中的Git Shell就是PowserShell。

powershell2

Windows PowerShell微軟公司Windows環境所開發的shell腳本語言技術,採用的是命令列介面。讓Windows 作業系統也能擁有類似 UNIX BASH 的 Shell 環境

結果豆子用習慣後想說就直接取代那個不好用的「命令提示字元」,唯讀那個字型和配色,另人覺得不順眼….
上網查了一些資料,發現為什麼有些網友的PowerShell和豆子長的不太一樣,功能豪華多了…

原來Git Shell安裝的PowserShell是2.0版,而PowerShell還有另一個PowerShell ISE的應用程式,是ISE才有豪華功能唷。

MicroSoft TechNET: PowerShell 整合式指令碼環境 (ISE) 是 Windows PowerShell 的主機應用程式。在 Windows PowerShell ISE 中,您可以在單一 Windows 圖形使用者介面中,利用多行編輯、Tab 鍵完成功能、語法著色、選擇性執行、即時線上說明以及對從右至左語言的支援,執行命令,撰寫、測試並進行指令碼測錯。 使用功能表項目和鍵盤快速鍵可以執行許多與 Windows PowerShell 主控台 所執行的相同的工作。例如,在 Windows PowerShell ISE 中偵錯指令碼時,若要在指令碼中設定行中斷點,請以滑鼠右鍵按一下程式碼行,再按一下 [切換中斷點]。

豆子用的作業系統是Windows 7,預設也只配置PowerShell 2.0,在 Windows Server 2012、 Windows Server 2012 R2、Windows 8 或 Windows 8.1,才會預先配置 PowerShell 3.0。不過Windows 7也還是能裝  PowerShell 3.0唷…直接到官網直接下載 Windows Management Framework 安裝就可以了!!

在 Windows PowerShell 主控台中,輸入下列命令就可以觀看PowerShell的版本:

 powershell

顏色配置

光裝好,顏色還是醜的。所以,接下來就是幫PowerShell客制化主題顏色了,上網找了一下,發現有網友分享Sublime風格的配置腳本檔(參考網站1),因為豆子平時就慣用Sublime,這配置檔實在是令人開心啦!!

下載回來的檔案解開後一共有二個檔,包含一個字型檔和PowerShell的腳本檔(副檔名為ps1),字型檔的部份您可自行斟酌是否要安裝及套用。

powershell3

腳本檔是純文字檔,您可以用PowerShell直接打開並點選上方的「執行指令碼(F5)」功能就可以套用。

powershell5

可是當 PowerShell 執行 script 檔時,卻出現一堆錯誤,並中「檔案無法載入,因為這個系統已停用指令碼執行」的訊息,這是因為作業系統目前的執行原則 ( Excution Policy ) 預設狀態為 Restricted(不允許執行)所造成的,是為了防止有惡意的腳本被執行。

您可以用下面的指令確定目前的執行策略:

所以您必需將執行策略由Restricted改成Unrestricted,不過在更改前您必需先將PowerShell關閉再重新開啟,並指定由「系統管理員執行」,否則是改不成功的唷!!

powershell6

接下來就是用以下的指令更改執行策略:

註:ExecutionPolicy可以設定的策略有:

1. Restricted – 腳本不能運行。
2. RemoteSigned – 本地創建的腳本可以運行,但從網上下載的腳本不能運行(除非它們擁有 由受信任的發佈者簽署的數位簽章)。
3. AllSigned – 僅當腳本由受信任的發佈者簽名才能運行。
4. Unrestricted – 腳本執行不受限制,不管來自哪裡,也不管它們是否有簽名。

更改完成後,您會發現腳本就可以成功執行了,而且執行完佈景就設置完成了,有了美美的顏色,字型也大多了!!

powershell8

 進階用法:

在PowerShell裡除了可以直接用Ctrl+C、Ctrl+V來複制、貼上外,還可以設定Alias讓PowerShell也可以用和Linux相同的指令唷…

 

參考網站:

  1. powershell ise好字库和diy配色文件分享
  2. 在 Lync Online 中下載並安裝 Windows PowerShell 3.0
  3. Windows PowerShell ISE 簡介
  4. PowerShell Tutorial 3: PowerShell Aliases
  5. 有关PowerShell脚本你必须知道的十个基本概念
  6. 淺談Windows PowerShell 管理技術

第一次聽到Vagrant這個詞是去年接觸open edx時,但當時沒空多加了解,最近為了試docker小玩了一下….


Vagrant

Varagnt: “Vagrant is a tool for building and distributing virtualized development environments.”

由官方的slogan看來,Vagrant要是方便用來自動化安裝和設定虛擬機器的管理工具,並且還可以協助儲存、散佈您開發好的虛擬環境。

例如:您可將要建立的虛擬主機相關環境設定檔,由vagrant統一批次幫您建立並開機,日後還可以將您建置好的虛擬環境打包起來分享給專案的相關同仁。

由於Vagrant屬於一個管理工具,並不是虛擬主機平台,所以得事先安裝好虛擬平台環境。

早期Vagrant是以VirtualBox這個虛擬平台上發展的,不過現在連 VMware FusionVMware Workstation 及 Hyper-V 都可以支援了。(要整合VMware得需另行購買Licenses)

豆子花了一天簡單的把玩了一下,發現觀念及初略的使用上還不致於太難…

下一篇我們再來分享怎麼在Windows環境中安裝VirtualBox及Vagrant

相關連結:

  1. A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
  2. Vagrant的介绍

 

要從程式寫一堆code去判斷,倒不如在apache中直接導掉
這麼好的功能,怎麼能不用呢!!

< directory “/www/” >
RewriteEngine on
Options +FollowSymLinks
Order allow,deny
Allow from all
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
< /directory >

sp3

雖然微軟明年就不再維護XP,但最近還是釋出SP3
聽說SP3安裝後可以增進10%的效能
所以豆子今晚己先將家裡的電腦進行update
效能增進的部份
豆子是沒明顯的感覺
倒是更新重開機後發現style xp無法使用
上網查了一下
發現這問題大家都遇到了
還好網友提供patch程式
執行再重開機
問題就解決了

UXtheme patcher[下載]

mstsc

除此之外
遠端桌面好像也有更新
畫面做了改變
其它的部份
目前也還沒發現有不相容的地方
有發現在和大家分享囉