顯示具有 FreeBSD 標籤的文章。 顯示所有文章
顯示具有 FreeBSD 標籤的文章。 顯示所有文章

SELinux 影響 ssh with key login

如果沒有關閉 SELinux 
ssh 使用 rsa 登入時會遇到錯誤, 
上傳 key 後時要記得更新資料夾權限

restorecon -Rv /folder

就可以正常使用了

FreeBSD mount NAS


# vim /etc/fstab 
# add line
127.0.0.1:/folder /mnt/folder nfs rw 0 0

# mount -a

done~

FreeBSD Setup Timezone



cp /usr/share/zoneinfo/Asia/Calcutta /etc/localtime



REF
http://www.cyberciti.biz/faq/howto-set-date-and-time-timezone-in-freebsd/

FreeBSD vi Replace

http://netlab.cse.yzu.edu.tw/~statue/freebsd/docs/aasir/ch062.pdf

http://note.tc.edu.tw/210.html

Freebsd kill PID


ps auwx | grep 'mysql'

kill -9 PID

FreeBSD Update / Upgrade Ports

更新整個Ports
# portsnap fetch update

更新Ports
# portsnap update


參考一

參考二


MySQL my.cnf UTF8

進入MySQL使用指令查詢charset

show variables like "%character%";
show variables like "%collation%"; 

my.cnf
[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
skip-character-set-client-handshake
character-set-server=utf8
collation-server=utf8_general_ci
init-connect=SET NAMES utf8
port=3306
socket=/tmp/mysql.sock


Latin1 to UTF8
mysqldump -u root -p --default-character-set=latin1 [db] > db.sql

open & edit db.sql change
/*!40101 SET NAMES latin1 */;  

to 
/*!40101 SET NAMES utf8 */;  

and import db.sql to MySQL
mysql -u root -p --default-character-set=utf8 < db.sql

done! 

FreeBSD crontab backup remote file to local

1. 在遠端排程備份檔案, 新版 MySQL 使用 command line password 會出現錯誤, 所以要改使用--defaults-file存入密碼, 方能執行不會出現錯誤.

echo 'export database'
mysqldump --defaults-file=/home/user/.my.cnf --user=user --databases user_db > user_db.sql

echo 'tar databases'
today=`date +%Y%m%d`
file="user_"$today".tar.gz"
echo 'tar '$file
tar -zcvf $file user_*.sql
echo 'remove databases'
rm user_*.sql

2. 在本地端排程檔案下載, 使用ssh 連線省去打密碼的步驟. 當程式遇到 <<EOC 時, 會把之後的命令自動輸入, 直到遇到EOC時才會結束. 相關文章可以Google shell EOC 的說明.

today=`date -v-1d +%Y%m%d`

echo 'get user backup'
file="user_"$today".tar.gz"

sftp -i ../.ssh/user user@123.456.789.100 <<EOC
cd export
get $file
bye
EOC

FreeBSD Apache install Streaming Module H264 and FLV

安裝 mod_flvx
下載 mod_flvx
https://github.com/osantana/mod_flvx
解壓縮進入資料夾下指令apxs -c -i ./mod_flvx.c
mod_flvs.so 會安裝到 /usr/local/libexec/apache22/ 底下


安裝mod_h264_streaming
下載mod_h264_streaming
http://h264.code-shop.com/download/apache_mod_h264_streaming-2.2.7.tar.gz
解壓縮進入資料夾
修改以下兩個檔權限為700
configure
install-sh

下指令產出文件
./configure --with-apxs=`which apxs`
make
下指令安裝
make install


到 /usr/local/etc/apache22/httpd.conf 加入以下指令
或到 /usr/local/etc/apache22/Includes 自訂一個.conf資料檔,
如: mod_streaming.conf
加入以下指令

# FLV
LoadModule flvx_module modules/mod_flvx.so 
AddHandler flv-stream .flv

# MP4
LoadModule h264_streaming_module libexec/apache22/mod_h264_streaming.so
AddHandler h264-streaming.extensions .mp4



Linux 指令 tar

tar 是壓縮/解壓縮指令

壓縮
tar -zcvf <要儲存的DIR> <要壓縮的DIR>

解壓縮
tar -zxvf <解壓縮的檔案名稱>

FreeBSD ports install and package delete

今天在FreeBSD的ports上要安裝一個新程式, 
卻一直無法執行, 要求我要刪除某一個pkg
沒刪過怕怕的, 但不刪又沒得裝... 只好硬著頭皮上了~

先看好它要求刪的pak然後下指令
pkg_delete -f pkg-config.0.25_1

FreeBSD Git Step

設定Repo初始專案

  1. 先在git/repo底下建立專案
    git/repo/tms.git
  2. 初始並指定為工作程式庫
    git init --bare
  3. 初始程式將程式上傳至tms.git, 假設程試放在 usr/loca/www/tms 進入該目錄下以下指令.
    git init
    git add .
    git commit -m 'Init TMS'
    git remote add tms git@james.tw:cms/tms.git(第一次使用)
    git push tms master



GITWEB
http://james.tw/git/

git 網址
git://james.tw/cms/tms.git

開始版本控制
1. 先裝git, 啟用git.
2. 假設放在www底下, 先切到/usr/local/www底下然後拷貝一份回來
git clone git://james.tw/cms/tms.git [rename]
3. 拷貝完後會產生tms資料夾, 進去先到.git/config新增user資料, 這樣當你在pushmaster時就會出現是誰改的.
[user]
   name  = James Li
   email = jamesycli@james.tw
4. 現在新增一個remote假設叫james那我就鍵入以下指令, 你也可以保持原本的origin, 也可以用專案名來設定, tms
git remote add james git@james.tw:cms/tms.git
如果你想查看remote有誰只要打git remote就會看到有幾個remote
5. 每次要上傳資料前先把資料從伺服器拉回來更新”pull”, 假設要同步master就鍵入以下指令
git pull tms master
它會把資料從tms.gitmaster回來和你的資料更新.
6. 然後你要現在要新增資料, 要更新資料回伺服器. 首頁先用”add”,
git add .
這個指令是指全部資料夾都更新, 注意有一個在最後面
git add index.php
這個指令則指定某檔案, 指定完要新增commit 這樣才不會忘了做了什麼.
git commit –m ‘Update Index.php’
最後要push它們上git server, 鍵入以下指令.
git push tms master
這樣你add的檔案就會同步到git server
7. 如果你不想同步某個檔案/資料夾, tms底下新增一個.gitignore然後輸入你不想同步的檔案或資料夾
tms/index.php
!tms/index.php
如果有加驚嘆號, 應該是排除要不同步的意思吧~

FreeBSD phpDocumentor 安裝


phpDocumentor
讓你要交接程式時可以快速了解你的程式碼.
  1. 更新 ports
    cvsup -g -L 2 ports-supfile
  2. 安裝  PEAR
    /usr/port/devel/pear
    make install clean
  3. 利用 PEAR 安裝 PhpDocumentor 使用以下指令
    pear install PhpDocumentor
  4. 完成安裝, 使用使用 phpdoc 下指令.

參考網址:
http://www.phpdoc.org/

FreeBSD Rsync 軟體結內的檔案



如果 Rsync 裡有軟連結, 要將當作硬連結上傳,
就加上 k 他會將軟體結作硬連結看待, 例:


rsync -avk [local] [remote]


如此它就會將軟體連及內容都上傳.

FreeBSD 掛載硬碟錯誤

如果卸除硬碟未至 /etc/fstab 將該硬碟設定移除, 
就重新開機, 會造成系統錯誤, 無法使用指令等功能.


步驟

  1. 重開機按 [4] 進入單人模式
  2. 檢查 cat /etc/fstab 
  3. 掛載 /usr , 鍵入 mount /ad14s1d /usr
  4. 掛載 / 設定可讀寫, 鍵入 mount -o rw /
  5. 編輯 /etc/fstab, 鍵入 vi /etc/fstab 移除已卸除硬碟之資料.
  6. 重開機即可正常登入.

FreeBSD 掛載硬碟

公司的內部的伺服器滿了!我也慌 :)
本來幫我的主管請假~ 哭哭了~
只好一邊用LINE打擾主管一邊掛載硬碟~

  1. 首先我們先打指令關機 shutdown -p now
  2. 接上硬碟開機~
  3. 檢查硬碟名稱, 打入指令 dmesg 查出硬碟編號, 假如是 ad16
  4. 進你 sysinstall 的 FDISK 
    1. 選擇你要FDISK的硬碟
    2. 中間會問你[Would you like that to keep using the current geometry?] 選擇 [ No ]
    3. 假如硬碟沒分割過選擇 [A], 如果已分割過選擇 [D], 選完按[Q]
    4. 在來問你要不要 Install Boot 選擇 [None] 因為我們只是要增加容量.
    5. 按 [Q] 結束 FDISK
  5. 進入 LABEL
    1. 選擇 ad16 
    2. 然後按 [C] 新增, 這裡我全部割成一個, 
    3. 選擇 [FS]
    4. 按 [W] 寫入設定
    5. 按 [Q] 進開 LABEL
  6. 至 /etc/fstab 設定剛設定的硬碟
    /dev/ad16s1d /download_files ufs rw 2 2
  7. 重開機, 打入指入 [df] 看是否順利掛載.

GOOGLE關鍵字
[ FreeBSD 掛載硬碟 ]

MySQL Check

指令
mysqlcheck
-c 檢查
-o 優化
-r 修復
-A 全部



參考網站:
http://scottlinux.com/2012/06/09/use-mysqlcheck-to-optimize-and-repair-mysql-databases/

FreeBSD ISSEU ::: mount & umount windows

MOUNT 在FreeBSD掛載在Windows的網路硬碟

指令如下
1. 不需帳號密碼
#mount_smbfs -I 192.168.1.10 -N '//sharehost/music' /mnt //-I 為指定 Host IP,-N 為指定不需密碼驗證
2. 需帳號密碼
#mount_smbfs -I 192.168.1.10 '//username@sharehost/music' /mnt //執行此指令後會請您輸入密碼 (可登入 Windows XP 的帳號及密碼)
3. 修改掛載後目錄的權限
#mount_smbfs -f 664 -d 755 '//username@sharehost/music' /mnt //-f 為指定檔案權限,-d 為指定目錄權限
掛載完可以用使用mount看到你掛載的資訊

UMOUNT 在FreeBSD載卸Windows的網路硬碟

假如你要卸掉不要的硬碟使用umount指令
umount -f /mnt  //強制 umount /mnt
假如遇到
umount: unmount of /mnt failed: Device busy
請先裝上fuser指令
cd /usr/ports/sysutils/fuser;make install clean    //安裝 fuser
然後在使用fuser刪掉/mnt佔用的程式
fuser -k /mnt //殺掉佔用 /mnt 的 Process
它就幫你刪掉囉 :)

參考:

FreeBSD Ports Install, Update

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean
#cd /usr/ports/net/cvsup-without-gui/
#make install clean
#cd /usr/share/examples/cvsup/  //切換到更新範例檔路徑
#cp ports-supfile /root/ //複製到root目錄底下
#cd /root/ //切換路徑
#vi ports-supfile //編輯設定檔
*default host=CHANGE_THIS.FreeBSD.org //官方站台(預設值)
*default host=cvsup.tw.freebsd.org //改為國內站台交大資工如此下載速度較快(還有cvsup1~13都可使用)
*default release=cvs tag=RELENG_6 //預設值
*default release=cvs tag=RELENG_6_3 //更改後只有安全更新會進入這個 branch的 source code
#cd /root
#rehash
#cvsup -g -L 2 ports-supfile //開始更新

PHP Module: Gettext


Gettext 要在原本的 php5-extensions 中設定
/usr/ports/lang/php5-extensions
make config
勾選 gettext的項目
make install clean
裝完後在重啟 apache2
在檢查 phpinfo 裡面的 gettext 有沒有啟動
有就表示成功了
接下來要下載 Poedit
來編輯 xgettext 所編釋出來的 po
在分存到各國家的資料夾下

Function
xgettext -d [poFile] [Src] --from-code=UTF8
將[Src]裡的檔案轉成PO檔
msgmerge -o [poFile] [poOld] [poNew]
將[poNew]和[poOld]檢查合併
msgfmt -o [moFile] [poFile]
將[poFile]轉成[moFile]
locale -a

檢查FreeBSD的語言檔名

putenv('LANG=zh_TW');
setlocale(LC_ALL, 'zh_TW.UTF-8');
// Specify location of translation tables
bindtextdomain("index", "./locale");
// Choose domain
textdomain("index");