作者 kfrico 的所有文章

Mac 初體驗

必裝軟體

1.HomeBrew

套件管理軟體,類似ubuntu的apt-get

brew install bash-completion 自動補齊

2.CheatSheet

查閱快捷鍵的小幫手

3.Magnet

App視窗分邊的工具

4.iTerm2

好用的 terminal 支援快捷鍵Hide/Show

5.AppCeaner

深度移除APP的工具

6.Sublime text

編輯器

 

 

Git 常用指令整理

###推回上一個點

git revert -m 1 eff349a7a4132fdbb5f45bbb0d1b72248ace29a1(merge的點) 會新增一個commit

##連同檔案一起推回上一個點

git reset --head HEAD^1

##回覆修改紀錄

git reset --soft HEAD^

–soft – 緩存區和工作目錄都不會被改變
–mixed – 默認選項。緩存區和你指定的提交同步,但工作目錄不受影響
–hard – 緩存區和工作目錄都同步到你指定的提交

###取消追蹤檔案

git rm --cached xxxxxxxxxxxx

###git stash pop 衝突解法
git reset 或 git git reset HEAD [files]
[參考]http://stefaanlippens.net/resolve-git-unmerged-paths-after-stash-pop

###建立分支

git branch branch_name SHA

###檢查Log

git log

###輸入指令!帳號密碼只要打一次

git config --global credential.helper store

###git 從那個點到那個點的差異or檔案名稱

git diff 93fd4171999e8682850ff5d1ca300c419fe3610e HEAD
git diff --name-only 93fd4171999e8682850ff5d1ca300c419fe3610e HEAD

###更換git遠端名稱

git remote rename origin upstream

Git Repository

mkdir ${PROJECT}.git

cd ${PROJECT}.git

git --bare init

然後在本機裡加入

git remote add origin file:///${PROJECT}.git

上傳更新本地位址

在${PROJECT}.git底下的hooks資料夾加入post-receive並寫入以下bash (檔案權限須改成755)

 #!/bin/bash

while read oldrev newrev refname
do
 if [ "$refname" == "refs/heads/master" ]; then
 break;
 fi
done

if [ "$refname" != "refs/heads/master" ]; then
 exit;
fi

branch=$(git rev-parse --symbolic --abbrev-ref $refname)

git --work-tree=要覆蓋的位址 checkout -f $branch

Debain 建立防火牆規則

查看有無建立iptables

sudo iptables -L

建立一個新檔案 iptables.firewall.rules

sudo vim /etc/iptables.firewall.rules 

內容如下

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

規則只開放 80(http), 443(https), SSH(22), ICMP 服務

啟用規則

sudo iptables-restore < /etc/iptables.firewall.rules

最後是確保每次重開機都會載入這規則

sudo vi /etc/network/if-pre-up.d/firewall

內容如下

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

更改檔案權限

sudo chmod +x /etc/network/if-pre-up.d/firewall

linode官方教學: https://www.linode.com/docs/security/securing-your-server

linux 開機自動執行

vim /etc/rc.loca

加入想執行的系統指令

這樣在還沒登入時就會執行

自動關機

vim /etc/crontab

# m h dom mon dow user command
0   0 *       *       6       root reboot

星期六零晨0點0分重新開機

php-fpm和nginx 權限設定問題

php-fpm#########################

修改/etc/php5/fpm/pool.d/www.conf

user = www-data 改為 user = ken

group = www-data 改為 group = user

listen.owner = www-data 改為 listen.owner = user

listen.group = www-data 改為 listen.group = user

nginx###########################

修改/etc/nginx/nginx.conf

user www-data; 改為 user;

 

這樣就沒權限問題了

PHP Laravel 安裝設定 筆記

安裝的方式有很多種

我採用的是直接從github下載最新版解壓縮後執行

php composer.phar install

如果是Linux 環境下安裝記的把app/storage目錄設成伺服器可讀寫的權限

建議是直接設777比較省事

環境變數設定

記的修改bootstrap/start.php

$env = $app->detectEnvironment(function()
{
    return $_SERVER['MY_LARAVEL_ENV'];
});

設成動態的去判斷環境變數

不過這樣一來在CLI上指令就需加上

env MY_LARAVEL_ENV=development

這樣才能讀到config的設定檔

在start也是讀LARAVEL_ENV的設定

Nignx設定

server {
    listen 80;
    root /home/kfrico/www/black/public;
    index index.html index.htm index.php;
    server_name black.ipushs.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php {
        fastcgi_param LARAVEL_ENV "development";

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

 

Sublime Text Package 推薦

1.Package Control

套件管理必裝

2.Alignment

用來對齊格式

3.DocBlockr

用來產生註解

4.Emmet

前端必裝神器

5.SideBarEnhancements

增強側邊欄位選項

6.sublimelint

補齊個種語言代碼

7.EasyMotion

快速移動光標