這篇很長很長很長........... 三年沒有使用 FreeBSD 了,再次使用有種有點熟又不會太熟的感覺 :-| 真是慘 :oops:
所以我決定一步一腳印重新紀錄,並且把以前模糊不清的觀念搞懂。如果剛好你也有這些問題希望可以有些幫助。
本篇狀態:未完。
硬體:
- CPU : AMD FX-8150
- BOARD : ASUS SABERTOOTH 990FX
- RAM : DDR3 1600 8GB * 4
- RAID : HighPoint RocketRAID 2310
- HD : WD 企業硬碟 2TB * 3
- Network : Intel PRO/1000 PT
- 必須使用 x64 作業系統才能利用 32GB 記憶體
- 系統必須執行運作在 RAID 環境上,支援的 OS 是 FreeBSD
- 瞭解磁碟陣列災難復原流程
- FreeBSD 運作在 Server 基本上只要硬碟、網路卡這兩個支援,顯示只要正常,其他就隨便了
軟體:
- FreeBSD 9.0 x64
- RocketRAID RAID Management/ Inband Service Web GUI
- 很多很多的 /usr/ports/
HighPoint RocketRAID 的設置
- 在主機板上使用 SATA 連接一顆獨立硬碟
- BIOS 設定光碟開機
- 使用光碟安裝 Windows 在獨立硬碟上
- Windows 安裝完成,開機完成放入 HighPoint RocketRAID 2310 光碟
- 安裝 HighPoint RocketRAID 2310 驅動
- 安裝 RAID Management Software
- 執行桌面 RAID 管理程式捷徑,或是開啟瀏覽器輸入 https://127.0.0.1:7402 進入管理介面
- 輸入帳號 RAID 密碼 hpt
- 建立 RAID 5 磁碟陣列
- 退出 Windows ,BIOS 開機順序修改為 RocketRAID 優先,正式安裝 FreeBSD
FreeBSD 9.0 x64
- 光碟開機
- 該設定就設定,關鍵在硬碟分割
- 硬碟分割大可先使用 auto 初步設定
- 然後把 / 刪除,因為 FreeBSD 的 root boot 無法在 4TB 的分割啟動
- 割一塊 500GB 給 /
- 其他空間割給 /home
- 安裝到完成
以上此結論花了我整整將近一個星期, root 分割直接使用 4T 大小可以分割也可以安裝,不過應該是安裝到外太空去了,所以重新開機後會啟動失敗,有燒香的有機會比較幸運可以啟動到 mountroot> 這裡失敗,然後自行輸入這類字串 ufs:/dev/da0p2 接下去完成;沒燒香的直接就是啟動不能。
基本設定
增加 hostname 到 /etc/hosts
ee /etc/hosts
1 |
127.0.0.1 hostname |
更新 ports
設定檔: /etc/portsnap.conf
SERVERNAME=portsnap.freebsd.org
1 2 |
portsnap fetch extract update source ~/.cshrc |
加強 ls - gnuls
下載、安裝
1 2 |
cd /usr/ports/misc/gnuls make install |
1 2 |
ee ~/.cshrc alias ls gnuls -a --color |
資料庫 MariaDB
1 2 |
cd /usr/ports/databases/mariadb55-server make install |
1 2 |
ee /etc/rc.conf mysql_enable="YES" |
編輯、修改 my.cnf
1 2 3 |
cp /usr/local/share/mysql/my-huge.cnf /usr/local/etc/my.cnf cd /var/db/mysql/ ln -s /usr/local/etc/my.cnf my.cnf |
修改 root 密碼
1 2 3 |
# mysql > UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; > FLUSH PRIVILEGES; |
修改語系為 UTF8
編輯 my.cnf 加入以下設定
1 2 3 |
[mysqld] character-set-server = utf8 collation-server = utf8_unicode_ci |
- character-set-server = utf8 → collation_server : utf8_general_ci
- collation-server = utf8_unicode_ci → collation_server : utf8_unicode_ci
db.php
在 php 程式連結資料庫選擇資料庫後,使用 SET collation_connection 影響的是 collation_connection 和 collation_database
1 2 |
mysql_select_db( "hoyoDB" , $link ); mysql_query( 'SET collation_connection = utf8_unicode_ci' ); |
忘記 root 密碼,如何重新設定
停止 MySQL Server ,使用不需認證模式啟動 MySQL Server
1 2 3 |
/usr/local/etc/rc.d/mysql-server stop mysqld_safe -u root --skip-grant-tables & mysql |
使用 SQL 指令重新設定 root 密碼
1 2 3 4 |
use mysql; UPDATE mysql.user SET Password=PASSWORD('新密碼') WHERE User='root'; FLUSH PRIVILEGES; quit |
正常啟動 MySQL Server
1 |
/usr/local/etc/rc.d/mysql-server start |
網站伺服器 Apache
1 2 |
cd /usr/ports/www/apache22 make install |
ee /etc/rc.conf
1 |
apache22_enable="YES" |
ee /usr/local/etc/apache22/httpd.conf
1 |
DirectoryIndex index.php index.html |
--
網頁程式 PHP5.5
1 2 |
cd /usr/ports/lang/php55 make install |
編輯 Apache httpd.conf 設定 .php 副檔名關聯給 PHP 處理
1 |
ee /usr/local/etc/apache22/httpd.conf |
1 2 |
AddType application/x-httpd-php .php AddType application/x-httpd-php-sources .phps |
安裝 PHP Extensions ,視需求選擇
1 2 |
cd /usr/ports/lang/php55-extensions make install |
資料庫管理 phpmyadmin
下載、安裝
1 2 |
cd /usr/ports/databases/phpmyadmin make install |
將 APC 勾選取消,PHP 5.5 使用 OPcache 取代 APC
設定 Apache httpd.conf ,只允許內部網路使用
1 2 3 4 5 6 7 8 9 |
Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/" <Directory "/usr/local/www/phpMyAdmin/"> Options none AllowOverride Limit Order Deny,Allow Deny from all Allow from 192.168.0.0/24 </Directory> |
/usr/local/www/phpMyAdmin
修改登入逾時
1 2 |
ee /usr/local/www/phpMyAdmin/config.inc.php $cfg['LoginCookieValidity'] = 144000; |
--
sshd
/etc/ssh/sshd_config
1 2 |
PermitRootLogin yes ListenAddress 192.168.1.240 |
NFS
ee /etc/rc.conf
1 |
nfs_server_enable="YES" |
ee /etc/exports
SAMBA
下載、安裝
1 2 |
cd /usr/ports/net/samba36 make install |
開機啟動
1 |
ee /etc/rc.conf |
1 |
samba_enable="YES" |
使用者認證
1 2 |
adduser smbpasswd -a user |
網站開發
1 2 3 4 5 6 |
wget --no-check-certificate https://mod-auth-token.googlecode.com/files/mod_auth_token-1.0.6-beta.tar.gz rm -f configure autoreconf -fi automake -f ./configure make |
2. H264 Streaming Module Introduction 安裝參考:Install Apache and PHP to do Secure h264 Pseudo Streaming
1 2 3 4 5 6 |
wget http://h264.code-shop.com/download/apache_mod_h264_streaming-2.2.7.tar.gz tar zxf apache_mod_h264_streaming-2.2.7.tar.gz cd mod_h264_streaming-2.2.7/ ./configure --with-apxs='which apxs2' make sudo make install |
增加 .mp4 副檔名在 Apache2 的串流設定
1 2 |
LoadModule h264_streaming_module /usr/local/libexec/apache22/mod_h264_streaming.so AddHandler h264-streaming.extensions .mp4 |
3. TexLive
1 2 3 |
mount -t cd9660 /dev/cd0 /media cd /media ./install |
/usr/local/texlive/2010/index.html
mktexlsr /usr/local/texlive/2010/texmf-dist /usr/local/texlive/2010/texmf
pre-generating all format files (fmtutil-sys --all)
1 2 3 |
Add /usr/local/texlive/2010/texmf/doc/man to MANPATH, if not dynamically determined. Add /usr/local/texlive/2010/texmf/doc/info to INFOPATH. Most importantly, add /usr/local/texlive/2010/bin/amd64-freebsd to your PATH for current and future sessions. |
開機加入 TexLive bin 路徑
1 2 3 |
cp ~/.cshrc /etc/csh.cshrc ee /etc/csh.cshrc set path=($path /usr/local/texlive/2010/bin/amd64-freebsd) |
/usr/ports 其他安裝後不須設定軟體
graphics/ImageMagick
題庫、圖庫上傳後縮圖處理用
multimedia/ffmpeg1
將上傳影片轉換成 MP4 格式,提供網頁串流播放
安裝設定用得到
1 |
# /etc/netstart restart |
雙網卡安全設定
主機上主機板本身有提供一個網路卡,另外又安裝了一塊 Intel PRO/1000 PT 網路卡
對內網卡設定 192.168.1 區段,對外設定 192.168.0 區段,各自有對外的寬頻線路,互不相通,示意圖如下:
基本原則就是不需要對外的就不提供,對外基本上只需要 DNS 和 WEB ,也就是 UDP 53 和 TCP 80 ,離機及遠端管理就從內部連線進行,不直接從對外頻寬管理。
Samba
/usr/local/etc/smb.conf
1 2 3 |
hosts allow = 192.168.1. interfaces = 192.168.1.240 bind interfaces only = yes |
xorg - X Window
掛載 DVD 光碟
1 2 3 4 5 6 |
cd /media/package/x11 pkg_add * cd /media/package/gnome pkg_add * echo gnome_enable="YES" >> /etc/rc.conf init 6 |
(我也忘記當初安裝 X window 要幹嗎?...)
定時執行
備份 校時
PHP 程式開發
一、MySQL 連線校對 utf8_unicode_ci
在此預期目的是將 collation_connection, collation_database, collation_server 三個狀態都設定為 utf8_unicode_ci
先前在 OpenSUSE 上開發,此三個狀態在「恍神的情況下」就已經是 utf8_unicode_ci 。一般來說,使用 phpMyAdmin 來查看也會是 utf8_unicode_ci ,因為在首頁 phpMyAdmin 就要你設定 MySQL 的連線校對
不過不論是 Linux 或是 phpMyAdmin 顯示什麼都和 FreeBSD 無關 ..... 所以我們還是需要自己設定。
1. 根據記憶體以及需求複製模組設定 my.cnf
1 2 |
cp /usr/local/share/mysql/my-*.cnf /usr/local/etc/my.cnf ee /usr/local/etc/my.cnf |
2. 編輯 my.cnf 加入以下設定
1 2 3 |
[mysqld] character-set-server = utf8 collation-server = utf8_unicode_ci |
- character-set-server = utf8 → collation_server : utf8_general_ci
- collation-server = utf8_unicode_ci → collation_server : utf8_unicode_ci
db.php
在 php 程式連結資料庫選擇資料庫後,使用 SET collation_connection 影響的是 collation_connection 和 collation_database
1 2 |
mysql_select_db( "hoyoDB" , $link ); mysql_query( 'SET collation_connection = utf8_unicode_ci' ); |
觀看 MySQL 設定狀態指令
1 |
show variables like 'collation%'; |
collation_connection : utf8_unicode_ci
collation_database : utf8_unicode_ci
二、php 時區設定
修改 /usr/local/etc/php.ini 內 date.timezone
1 2 3 4 |
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Taipei |
時區設定到 PHP: List of Supported Timezones - Manual 這裡查,修改存檔完成,重新啟動 apache
/usr/local/etc/rc.d/apache22 restart
補充資料
--
1,218 total views, 2 views today