2011年6月7日 星期二

apache 播放 flv 格式影片

第1步驟
切換至 /usr/local/src,並下載 flv 的 apache 模組原始檔來做編譯的動作

#cd /usr/local/src

#wget http://people.apache.org/~pquerna/modules/mod_flvx.c

#apxs -i -a -x mod_flvx.c

備註:如果系統無 apxs 這個指令,需要執行下列指令安裝

#apt-get install apache2-prefork-dev

安裝完成後再執行

#apxs2 -i -a -x mod_flvx.c

執行完成後 Debian 會自動將模組載入,直接重啟 apache 即可

#/etc/init.d/apache2 restart

第2步驟
請準備好要播放的 flv 檔案跟 flv 的 player

如無 player 可從這下載

在 html 中加入以下程式碼

<embed src="player.swf" type="application/x-shockwave-flash"
allowscriptaccess="always" allowfullscreen="true" flashvars="file=test.flv"
width="480" height="390">

即可完成

apache 使用 mysql 認証

一般大家所使用的 apache 認証方式都是在 SERVER 上用 htpasswd 的指令建立使用者帳號及密碼的檔案,但是如果要建立大量使用者時其實是很不方便的,如果使用 mysql 方式,就可以使用更簡單的方式建立大量的使用者。

系統環境:Debian 6.0.1a 64bit

第1步驟
安裝 apache、mysql、libapache2_mod_auth_mysql

#apt-get install apache2 mysql-server libapache2_mod_auth_mysql

第2步驟
將 mod_auth_mysql 模組開啟

#a2enmod auth_mysql

第3步驟
登入 mysql 並建立 database 及 table

#mysql -u root -p

mysql> create database web_auth;

mysql> use web_auth;

mysql> CREATE TABLE `clients` ( `username` varchar(25) NOT NULL default '', `passwd` varchar(25) NOT NULL default '', `groups` varchar(25) NOT NULL default '', PRIMARY KEY (`username`), KEY `groups` (`groups`) ) ENGINE=MyISAM;

mysql> INSERT INTO `clients` VALUES ('username', 'password', 'group'); <== 建立使用者帳號密碼及群組

第4步驟
編輯您想認証的設定檔,本人使用 apache 原本的 defaults 設定檔,並加入以下內容

#vi /etc/apache2/site-acailable/default
<virtualhost 80="">
.
.
Auth_MySQL_Info localhost root 1234 <== mysql 帳號密碼
.
.
<directory var="" www="">
.
.
AllowOverride AuthConfig Options FileInfo Limit <== 開啟認証功能
.
.
</directory>
.
.
</virtualhost>


第5步驟
在 /var/www/ 的目錄中建立 .htaccess 並加入以下內容

#vi /var/www/.htaccess

AuthMYSQL on
AuthMySQL_Authoritative on
AuthMySQL_DB web_auth <== database 名稱
AuthMySQL_Password_Table clients <== 所要連接的使用者密碼 Table 名稱
AuthMySQL_Username_Field username <== 所要連接的使用者帳號欄位名稱
AuthMySQL_Password_Field passwd <== 所要連接的使用者密碼欄位名稱
AuthMySQL_Group_Table clients <== 所要連接的使用者群組 Table 名稱
AuthMySQL_Empty_Passwords off
AuthMySQL_Encryption_Types Plaintext Crypt_DES <== mysql 加密方式
AuthBasicAuthoritative Off

AuthName "test"
AuthType Basic


<limit get="" post="">
require group zipe admin <== 限制訪問的群組,如需增加群組用空格分開,例如:zipe admin group1 group2
</limit>

第6步驟
重啟 apache 即可完成

#/etc/init.d/apache2 restart