文章來源
http://walile.info/blog/?p=107
模組請安裝pam_mysql.so
設定前說明:
其實這要綁定vsftpd是利用unix帳號做登入帳號管理,所以想利用mysql做管理的話(一般叫做建立vsftpd虛擬使用者),必需要透過linux中做認證管理的PAM(Pluggable Authentication Modules)做處理,這樣才能將vsftp+mysql+unix帳號綁定管理。
—————————————————————-開始了……
STEP1. 先下載vsftpd以及mysql先安裝好….(unbuntu 不用說吧?apt-get install 套件名稱)
STEP2. 設定/etc/vsftpd.conf 檔,將設定檔加上以下二個個設定:
guest_enable=YES
guest_name=使用者名稱,本例使用名稱為virtual (這個使用都必需是在unix account中建立的,之後要提供給使用者使用的)
STEP3. 設定mysql:
mysql中,先在mysql資料庫的user這個table中,建立一個專門讓pam認證使用登入的使用者,在本例中使用的名稱叫virtual,並且只能做select的動作,並且用localhost登入。
接下來,建立一個db叫做vsftpd,裡面建立了一個table叫做users,這個是要用來管理虛擬使用者的table。其中的table我建立了username和passwd二個欄位(注意!如果有使用加密,像mysql的password加密欄位,其password欄位請開超過60,否則會認證失敗)。記得要先在這個table中先建立一個使用者,等一下用來測試用。(ex. user,密碼暫設為pass)
STEP4. 開始來設定pam了….
/etc/pam.d/common-auth
這個檔案要加入以下這個
auth sufficient pam_mysql.so user=virtual passwd=pass host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=passwd crypt=2
/etc/pam.d/common-account
這個檔案要加入的
account sufficient pam_mysql.so user=virtual passwd=pass host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=passwd crypt=2
其中,在pam_mysql.so後面出現的user=virtual和passwd=pass是指在mysql中mysql資料庫user這個table中,剛剛有設定可以登入mysql的使用者帳號及密碼。另外,crypt=2代表密碼是用mysql password hash做為加密。(1為unix DES加密、2為mysql password hash加密、3為MD5加密、4為SHA)若要使用SHA加密,其pam_mysql.so的版本需要0.7以上版本才有支援(但是目前都為RC版本)
接下來,重啟服務:
/etc/init.d/vsftpd restart
這樣就完成了!
接下來,進一步想要讓虛擬帳號移到自己的資料夾中,只需要做接下來的動作:
在/etc/中建立一個資料夾為vsftpd_user_config,然後在/etc/vsftpd.conf中,加入二行:
user_config_dir=/etc/vsftpd_user_config
user_sub_token=$USER
然後,在vsftpd_user_config這個資料夾中,建立以虛擬使用者為名稱的檔案。ex. user。然後檔案內只需要加一行來指定登入後要移至的位置:
local_root=/home/user
再重啟服務就完成了!
2011年1月24日 星期一
使用者啟動php
vi php5.conf
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#註解掉
# <IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
# </IfModule>
</IfModule>
/etc/init.d/apache2 restart
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#註解掉
# <IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
# </IfModule>
</IfModule>
/etc/init.d/apache2 restart
加速php網頁
加速php網頁
資料來源 紀老師
http://163.23.89.100/~chi/blog/index.php?load=read&id=145
1.確定您的系統有 tmpfs 的功能
以前使用MDK架站時須加 devfs 這個套件,現在用 Ubunu 它自己就內建了
2.建好一個要連結的目錄,準備放虛擬磁碟
mkdir /tmp/ramdisk
3.vi /etc/fstab 加入下行
tmpfs /tmp/ramdisk tmpfs size=32m,mode=1777 0 0
4.馬上掛上來用
mount /tmp/ramdisk
5.vi /etc/php5/apache2/php.ini
session.save_path = /tmp/ramdisk
6.重新啟動 Web
/etc/init.d/apache2 restart
php 的 session 預設是檔案的形式存在
每次取用都須讀/寫硬碟,但它的用途大都用於驗證使用者
這種密集的 取用,實在不利硬碟的 使用 壽命
有些強調線上人數的更應注意這點
資料來源 紀老師
http://163.23.89.100/~chi/blog/index.php?load=read&id=145
1.確定您的系統有 tmpfs 的功能
以前使用MDK架站時須加 devfs 這個套件,現在用 Ubunu 它自己就內建了
2.建好一個要連結的目錄,準備放虛擬磁碟
mkdir /tmp/ramdisk
3.vi /etc/fstab 加入下行
tmpfs /tmp/ramdisk tmpfs size=32m,mode=1777 0 0
4.馬上掛上來用
mount /tmp/ramdisk
5.vi /etc/php5/apache2/php.ini
session.save_path = /tmp/ramdisk
6.重新啟動 Web
/etc/init.d/apache2 restart
php 的 session 預設是檔案的形式存在
每次取用都須讀/寫硬碟,但它的用途大都用於驗證使用者
這種密集的 取用,實在不利硬碟的 使用 壽命
有些強調線上人數的更應注意這點
vsftp
vi /etc/vsftpd.conf
#write_enable=YES
write_enable=YES
修改vsftpd.conf 只允許某些人登錄ftp
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者可登錄,無法離開家目錄
vi /etc/vsftpd.chroot_list //列入允許帳號
stu1
stu2
/etc/init.d/vsftpd restart
#write_enable=YES
write_enable=YES
不讓某帳號離開家目錄
vi /etc/vsftpd.conf修改vsftpd.conf 只允許某些人登錄ftp
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者可登錄,無法離開家目錄
vi /etc/vsftpd.chroot_list //列入允許帳號
stu1
stu2
/etc/init.d/vsftpd restart
2011年1月22日 星期六
ubuntu10安裝mono2.8
install2.8 mono
vi install_mono-2.8.sh----------------------#!/bin/bashTOPDIR=$(pwd)BUILDDIR=$TOPDIR/buildDLDDIR=$TOPDIR/downloadsexport PATH=/opt/mono-2.8.1/bin:$PATHecho "updating existing system"sudo apt-get updatesudo apt-get upgrade -yecho "installing prerequisites"sudo apt-get install -y build-essential libc6-dev g++ gcc libglib2.0-dev pkg-config subversion apache2 apache2-threaded-dev bison gettext autoconf automake libtool libpango1.0-dev libatk1.0-dev libgtk2.0-dev libtiff4-dev libgif-dev libglade2-dev# temp hack. removed later.sudo ln -s /opt/mono-2.8.1/lib/pkgconfig/mono-nunit.pc /usr/lib/pkgconfig/mono-nunit.pcmkdir -p $BUILDDIRechoecho "downloading mono packages"echocd $BUILDDIRwget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.8.1.tar.bz2wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.8.tar.bz2wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.8.1.tar.bz2wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.8.1.tar.bz2wget http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.10.tar.bz2cd $BUILDDIRbunzip2 -df xsp-2.8.1.tar.bz2tar -xvf xsp-2.8.1.tarbunzip2 -df mod_mono-2.8.tar.bz2tar -xvf mod_mono-2.8.tarbunzip2 -df mono-2.8.1.tar.bz2tar -xvf mono-2.8.1.tarbunzip2 -df libgdiplus-2.8.1.tar.bz2tar -xvf libgdiplus-2.8.1.tarbunzip2 -df gtk-sharp-2.12.10.tar.bz2tar -xvf gtk-sharp-2.12.10.tarechoecho "building and installing mono packages"echocd $BUILDDIRcd libgdiplus-2.8.1./configure --prefix=/opt/mono-2.8.1makesudo make installcd $BUILDDIRcd mono-2.8.1./configure --prefix=/opt/mono-2.8.1makesudo make installcd $BUILDDIRcd gtk-sharp-2.12.10./configure --prefix=/opt/mono-2.8.1makesudo make installcd $BUILDDIRcd xsp-2.8.1./configure --prefix=/opt/mono-2.8.1makesudo make installcd $BUILDDIRcd mod_mono-2.8./configure --prefix=/opt/mono-2.8.1makesudo make installcd $BUILDDIR#clean upsudo rm /usr/lib/pkgconfig/mono-nunit.pcechoecho "done"echo "If you want to use this version as the default on your platform (may not work for everything with this bare install), set your PATH to include /opt/mono-2.8.1/bin. Otherwise for Asp.NET, you can just update your virtual host config to use mod-mono-server2 from the install path directly."-----------------------chmod755 install_mono-2.8.sh./install_mono-2.8.sh
ubuntu環境apache設定
apt-get install apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi
--------------------------------------------
/etc/apache2/apache2.conf 這是apache 的全域設定
/etc/apache2/httpd.conf 內容為空,傳統的設定檔,為相容於其它版本的設定
/etc/apache2/ports.conf 監聽 port 的設定
/etc/apache2/mods-available/ 所有可用的模組( module)
/etc/apache2/mods-enabled/ 已啟用的模組 (可用指令 a2enmod、a2dismod 來啟用、停用模組)
/etc/apache2/sites-available/ 所有可用虛擬站台
/etc/apache2/sites-enabled/ 己啟用的虛擬站台 (指令 a2ensite、a2dissite 可啟用、停用虛擬站台)
/etc/apache2/httpd.conf 內容為空,傳統的設定檔,為相容於其它版本的設定
/etc/apache2/ports.conf 監聽 port 的設定
/etc/apache2/mods-available/ 所有可用的模組( module)
/etc/apache2/mods-enabled/ 已啟用的模組 (可用指令 a2enmod、a2dismod 來啟用、停用模組)
/etc/apache2/sites-available/ 所有可用虛擬站台
/etc/apache2/sites-enabled/ 己啟用的虛擬站台 (指令 a2ensite、a2dissite 可啟用、停用虛擬站台)
-----------
啟動、停止、重啟 apache 等指令
/etc/init.d/apache2 start | stop | restart
apache 設定檔測試指令 (apache 設定檔的語法若寫錯,會使apache無法啟動,可用此指令測試)
apache2ctl configtest
/etc/init.d/apache2 start | stop | restart
apache 設定檔測試指令 (apache 設定檔的語法若寫錯,會使apache無法啟動,可用此指令測試)
apache2ctl configtest
/etc/rc.d/init.d/httpd start | stop | restart
---------------
開機就啟動的設定在
/etc/default/apache2
預設是開機啟動 (NO_START=0),不想開機啟動請改成 1
/etc/default/apache2
預設是開機啟動 (NO_START=0),不想開機啟動請改成 1
--------------------
位置 /etc/apache2/apache2.conf
Listen 80 port的設定
在apache2.conf 有一行 Include /etc/apache2/ports.conf
vim /etc/apache2/ports.conf 加入你要監聽的port
預設的使用者與群組
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
debian環境apache 啟動的身份與群組皆為 www-data
-----------------------------
目錄加密碼
有兩種方法,一設定在 apache 檔內。二目錄底下設定一個 .htaccess 檔。
a.編輯 apache 設定檔
vim /etc/apache2/apache2.conf
vim /etc/apache2/apache2.conf
例如,我們有兩個目錄要加密碼保護,分別為 /mydata1和 /mytada2
apache 設定檔內加入
#受密碼保護的目錄
<Directory "/mydata1">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
<Directory "/mydata2">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
<Directory "/mydata1">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
<Directory "/mydata2">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
-----------------------------------
檢查 apache2.conf 設定檔內是否還有同一目錄的設定,
若有請把它加#號,否則密碼保護無法成功。
例如: /mydata1 是對應到 /var/www/84/mydata1/wwwroot 這目錄,
但這目錄也有針對它的設定必須將其取消
否則密碼保護不會設定成功。
#<Directory "/var/www/84/mydata1/wwwroot">
# Options None
# AllowOverride None
# Order allow,deny
# Allow from all
#</Directory>
設完之後重啟 apache
/etc/init.d/apache2 restart
------------------
建密碼檔
建一密碼檔名為apache.passwd 存放在 /home/backup
htpasswd -c /home/backup/apache.passwd user1
接著輸入密碼 xxxxxxxx
密碼檔內建第二個使用者 (不加 -c 參數了)
htpasswd /home/backup/apache.passwd user2
註:user1和user2為你自訂的使用者帳號,xxxxx為你自訂的密碼
改變檔案屬性
chown www /home/backup/apache.passwd
chgrp users /home/backup/apache.passwd
在要被保護的目錄下建.htaccess檔
先進到你要密碼保護的目錄底下
cd /var/www/84/mydata1/wwwroot/
vim .htaccess
=====加入以下內容==================
AuthName "This is Private directory"
Authtype Basic
AuthUserFile /home/backup/apache.passwd
require user user1 user2
#require:後面接可以使用的帳號。
#如果要讓該密碼檔內的使用者都能夠登入,就改成『require valid-user』即可
===================================
改變檔案屬性
chown www .htaccess
chgrp users .htaccess
然後再把此檔copy到你要密碼保護的 另一個目錄底下去
cp .htaccess /usr/share/mydata2/site
否則密碼保護不會設定成功。
#<Directory "/var/www/84/mydata1/wwwroot">
# Options None
# AllowOverride None
# Order allow,deny
# Allow from all
#</Directory>
設完之後重啟 apache
/etc/init.d/apache2 restart
------------------
建密碼檔
建一密碼檔名為apache.passwd 存放在 /home/backup
htpasswd -c /home/backup/apache.passwd user1
接著輸入密碼 xxxxxxxx
密碼檔內建第二個使用者 (不加 -c 參數了)
htpasswd /home/backup/apache.passwd user2
註:user1和user2為你自訂的使用者帳號,xxxxx為你自訂的密碼
改變檔案屬性
chown www /home/backup/apache.passwd
chgrp users /home/backup/apache.passwd
在要被保護的目錄下建.htaccess檔
先進到你要密碼保護的目錄底下
cd /var/www/84/mydata1/wwwroot/
vim .htaccess
=====加入以下內容==================
AuthName "This is Private directory"
Authtype Basic
AuthUserFile /home/backup/apache.passwd
require user user1 user2
#require:後面接可以使用的帳號。
#如果要讓該密碼檔內的使用者都能夠登入,就改成『require valid-user』即可
===================================
改變檔案屬性
chown www .htaccess
chgrp users .htaccess
然後再把此檔copy到你要密碼保護的 另一個目錄底下去
cp .htaccess /usr/share/mydata2/site
訂閱:
文章 (Atom)