一、安裝Ubuntu5 Desktop版
===============================================
來源部落格:http://blog.csdn.net/xuchenguang/
編寫整理:徐晨光 MSN:[email protected]
參考資料:http://wiki.ubuntu.org.cn論壇中的貼子,
以及從網際網路“擺渡”出來的資料。
===============================================
安裝過程不難,依照http://wiki.ubuntu.org.cn快速設定即可,注意下面兩點:
1、網通使用者請選擇上海交大的源,比較快。
我在煙台,用的網通的網,選cn99的源也隻有3K,快時也不過13K。
2、ms分區下的中文目錄名顯示為???
這時,你要編輯/etc/fstab。比如我的Dell筆記本中的fstab檔案改後是:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda3 / ext3 defaults,errors=remount-ro 0 1
/dev/hda1 /media/hda1 ntfs auto,user,nls=utf8,umask=0 0 0
/dev/hda5 /media/hda5 vfat auto,user,utf8,umask=0 0 0
/dev/hda4 none swap sw 0 0
/dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
======================================
3.Breezy(5.10)設定本地local環境
sudo dpkg-reconfigure locales #把所有zh-開頭的都選上。
二、ubuntu Linux下手工安裝mysql5
===============================================
來源部落格:http://blog.csdn.net/xuchenguang/
編寫整理:徐晨光 MSN:[email protected]
參考資料:http://wiki.ubuntu.org.cn論壇中的貼子,
以及從網際網路“擺渡”出來的資料。
===============================================
1、下載下傳mysql5的linux版本。
位址:http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.20.tar.gz/from/http://mirror.vmmatrix.net/mysql/
2、安裝GCCt等必備的軟體:
在終端下執行(網通使用者請用交大的源):
sudo apt-get install gcc cpp g++ libncurses5-dev
sudo apt-get install make autoconf automake libtool
3、解壓:
對于*.tar.gz的檔案使用指令tar zxvf *.tar.gz來解壓;
對于*.tar.bz2的檔案使用指令tar jxvf *.tar.bz2來解壓.
将mysql,php,apache以及gd安裝到/opt/目錄下,便于管理.
具體過程可參考:
把桌面上剛下的MySQL複制到/tmp下:cp Desktop/mysql-5.0.20.tar.gz /tmp
進入/tmp目錄:cd /tmp
解壓并展開:tar zxvf mysql-5.0.20.tar.gz
4、編譯安裝MySQL:
進入到解壓後的mysql目錄:
cd mysql-5.0.20
假設我常用使用者是xcg1688,則在終端輸入下面的指令:
./configure --prefix=/opt/mysql --with-mysqld-user=xcg1688 --with-extra-charsets=all --with-unix-socket-path=/tmp/mysql.sock
--prefix=/opt/mysql 把mysql-5.0.20指定安裝到/opt/mysql目錄中;
--with-extra-charsets=all 對多語言的支援;
--with-unix-socket-path=/tmp/mysql.sock 這個是指定mysql伺服器啟動後,聯機套接字檔案所處的位置和檔案名,也就是說,如果mysql伺服器成功啟動後,就能在/tmp 目錄中看到mysql.sock檔案。如果看不到,肯定是mysql啟動不了。
--with-mysqld-user=xcg1688 這個是讓mysql伺服器也能讓系統中普通使用者xcg1688也能啟動mysql伺服器。用普通使用者來啟動mysql的好處是:mysql的程序會自己死 掉自動退出。當然root使用者也可以,不過有時mysql有些程序死了,但不會自動退出,root自己也殺不掉。是以用普通使用者就有這樣的好處,大多不會 出現mysql程序已死,但不會退出的情況;
當您看到“Thank you for choosing MySQL!”時,說明成功。
5.安裝:
sudo make
sudo make install
在我的C2.66計算機上make時花了1小時15分鐘。第二次花了40分鐘左右。
6.配置:
sudo cp /opt/mysql/share/mysql/my-medium.cnf /etc/my.cnf
這是将配置檔案拷貝到/etc目錄下成為my.cnf,大家可以根據自己的需要選擇配置檔案(配置檔案在 /opt/mysql/share/mysql/目錄下,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf這些).
運作
sudo /opt/mysql/bin/mysql_install_db
這個指令是建立MySQL的授權表.
sudo chmod 755 /opt/mysql/var //設定/opt/mysql/var的目錄權限為755
sudo chown -R xcg1688:xcg1688 /opt/mysql/var //如果希望使用xcg1688這個使用者來啟動mysql的話
sudo /opt/mysql/share/mysql/mysql.server start //啟動mysql服務
sudo chown -R xcg1688:xcg1688 /opt/mysql/ //把/opt/mysql目錄歸屬到xcg1688這個使用者下
sudo /opt/mysql/bin/mysqladmin -u root password 123456 //設定root使用者的密碼為123456
/opt/mysql/bin/mysql -u root -p //試試看mysql能不能登入。/q退出。
7.設定MySQL的環境變量:
cd //回到你的使用者目錄。
cp .bashrc .bashrc_bak //備份.bashrc
gedit ~/.bashrc
在最後加入:export PATH=/opt/mysql/bin:$PATH:.
然後在終端輸入:source ~/.bashrc #使剛修改的起作用
env //檢視環境變量
mysql
上面的修改隻針對某一使用者,你還可以用另外一種辦法:在/etc/profile添加PATH路徑後,登出一次再echo應該就可以了。
8.設定MYSQL自動啟動:
sudo cp /opt/mysql/share/mysql/mysql.server /etc/rc2.d/S20mysql
另外辦法:sudo gedit /etc/init.d/mysql //建立服務的shell腳本,在服務中你可看到它。
加入
#!/bin/sh
/opt/mysql/share/mysql/mysql.server start
然後
$sudo chmod 755 /etc/init.d/mysql
$sudo chmod +x /etc/init.d/mysql
最後,到服務中選中它。
9.安全:
重新啟動計算機,在終端$下輸入mysql能直接進入mysql>下,說明有空使用者存在。解決辦法:先/q退出,再:
mysql -u root -p
mysql>delete from mysql.user where user=''; #删除空使用者,強烈建議。
mysql>flush privileges; #重新整理權限表,以便可以使更改立即生效
mysql>/q回車退出
結果:再輸入mysql,就不能進入了。必須用mysql -u xxxx -p的形式了。
三、Linux_Apache2 + PHP5安裝:
======================================================
來源部落格:http://blog.csdn.net/xuchenguang/
編寫整理:徐晨光 MSN:[email protected]
參考資料:http://wiki.ubuntu.org.cn論壇中的貼子,
以及從網際網路“擺渡”出來的資料。
======================================================
1.請先裝好MySQL5,具體請看我的部落格。
換成交大的源,然後sudo apt-get update
具體可參考:http://wiki.ubuntu.org.cn網站的快速配置。
2.安裝:
sudo apt-get install apache2 //安裝apache2
sudo apt-get install php5 //安裝php5
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysql
sudo apt-get install php5-gd
3.配置php.ini:
1)因對GD的支援是以要改一下,順便把mysql.so也挂上:
sudo gedit /etc/php5/apache2/php.ini
在檔案最後找到代碼: #extension=mysql.so
#extension=gd.so
檢查一下,前面如果有注釋#,去掉它儲存就好了。如果你要改什麼上傳檔案大小、使用記憶體的大小,可以一并改了。
2)找到代碼:mysql.default_socket =
改成: mysql.default_socket = '/tmp/mysql.sock'
4.安裝phpmyadmin
sudo apt-get install phpmyadmin
測試:http://localhost/phpmyadmin/ //出來界面就行了,暫時不要登入。
說明:啟動:sudo /etc/init.d/apache2 start
重新開機指令:sudo /etc/init.d/apache2 restart
删除指令(來自網上,沒有驗證):sudo apt-get remove --purge apache-common
5.修改/etc/phpmyadmin/config.inc.php:
終端輸入:sudo gedit /etc/phpmyadmin/config.inc.php
找到:#$cfg['Servers'][$i]['socket'] = '';
把前面的#去掉,改為:$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
6.改密碼:
終端輸入:mysql -u root -p
UPDATE mysql.user SET Password = OLD_PASSWORD('123456') WHERE Host = 'localhost' AND User = 'root';
原因:我們修改過MYSQL的root的密碼,因為MYSQL的password的散列加密方法和以前有了變化,是以出了這個問題 這個改變在MYSQL4.1版以上才有原先的方式變成了OLD_PASSWORD,我們重新更新一下密碼就好了。
7.重新啟動計算機(一定要做)。
打開浏覽器測試:http://localhost/phpmyadmin/
使用者名輸入root,再輸入剛改的密碼,OK。
8.問題參考:
配置不當可能進不去,請檢查第5步中的#号去了沒有。另外,請檢查my.cnf和php.ini檔案,具體可查找(sudo find / -name 檔案),查找時注意權限,一般要加sudo。my.cnf檔案一般在/etc/my.cnf,php.ini一般在/etc/php.ini,確定兩個文 件裡的 socket = /tmp/mysql.sock 都相同。
四、Ubuntu Linux下Pure-FTPD安裝:
======================================================
來源部落格:http://blog.csdn.net/xuchenguang/
編寫整理:徐晨光 MSN:[email protected]
參考資料:http://wiki.ubuntu.org.cn論壇中的貼子,
以及從網際網路“擺渡”出來的資料。
======================================================
1.準備工作:請先裝好Ubuntu、MySQL5、Apache2、PHP5,具體請看我的部落格。
下載下傳:ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz
假設下載下傳到桌面上。建議你在使用者檔案夾下建一個down,下載下傳的軟體放到那裡去。不過這次為了說明友善,就先放到桌面上吧。
2、打開終端
$cd Desktop
$tar zxvf pure-ftpd-1.0.21.tar.gz
$cd pure-ftpd-1.0.21
$sudo cp /opt/mysql/lib/mysql/*.* /usr/lib
$./configure /
--with-mysql=/opt/mysql /
--with-rfc2640
$sudo make //編譯
$sudo make install //安裝
3.拷貝兩個基本的配置檔案:
對于 pure-ftpd來說,如果用MySQL認證,那麼最重要的2個檔案分别是 pure-ftpd.conf 和 pureftpd-mysql.conf,用源碼安裝,這2個檔案是在安裝的目标上找不到的。他在我們的源碼裡,隻是個樣本。
我們把他們2個複制到 /etc 目錄下,你也可複制到别處,但是在配置時又有所變動哦
$sudo cp pureftpd-mysql.conf /etc
$sudo cp configuration-file/pure-ftpd.conf /etc
4.修改 /etc/pure-ftpd.conf
$sudo gedit /etc/pure-ftpd.conf
這裡列出一部分重要的,注意前面有#号的,如果想起用請去掉。
ChrootEveryone yes # 鎖定使用者在主目錄中,你不會希望,a1使用者能進到a2目錄裡吧
CreateHomeDir yes # 自動建立使用者主目錄,根據資料裡的記錄,自動建立使用者目錄
AnonymousCanCreateDirs yes # 允許匿名使用者建立新目錄?
MaxClientsNumber 200 # 最大可連接配接的使用者數,自己決定吧
MaxLoad 100 #系統連接配接數超此值,禁止匿名下載下傳
MaxClientsPerIP 8 # 來自一個IP的最大連接配接數,知道有的站點,為什麼隻能一個線程了吧
MaxIdleTime # 用戶端連接配接後的最大閑置時間
AntiWarez yes #不接受所有者為 "ftp" 的檔案的下載下傳。例如:那些匿名使用者上傳後未被本地管理者驗證的檔案。
MySQLConfigFile /etc/pureftpd-mysql.conf # 關鍵部分,去#号,你整合mysql就靠它了
ProhibitDotFilesWrite yes # 禁止修改隐藏檔案
ProhibitDotFilesRead yes # 禁止讀取隐藏檔案,這2項建議用yes,不然你不小心把某個.開頭的(隐藏檔案)弄沒了,或改了,可能你的使用者會有問題哦。
FileSystemCharset UTF-8 #伺服器端UTF-8
ClientCharset GB2312 #用戶端見到的是GB2312
根據自己的要求來設定,但注意一定要把注掉的MySQLConfigFile打開,還有注掉的CreateHomeDir打開。
5、修改/etc/pureftpd-mysql.conf
$sudo gedit /etc/pureftpd-mysql.conf
這裡列出一部分重要的,注意前面有#号的,如果想起用請去掉。
# Optional : MySQL server name or IP. Don't define this for unix sockets.
MYSQLServer localhost #SQL運作在本機,當然是 localhost了
# Optional : MySQL port. Don't define this if a local unix socket is used.
MYSQLPort 3306 #原來是登出掉的我們打開它,其實不打開也行,系統預設就OK
# Mandatory : user to bind the server as.
MYSQLUser root #這裡的 MYSQLUser和MYSQLPassword是 pureftpd查詢帳号資料庫用的,我就用root得了,你也可指定,但是必須在 mysql.user表裡有指定
MYSQLPassword 123456
MYSQLDatabase ftpusers #這個是我們要在MySQL裡建立的一個認證資料庫
配置完成。
6、建立ftp使用者目錄
$sudo groupadd ftpgroup -g 10000 #建立一個ftpgroup組,gid為10000,這裡的10000要記住哦,等下要用到。
$sudo useradd ftpuser -g ftpgroup -u 10000 #建立一個ftpuser使用者,屬于ftpgroup組,uid為10000。
$sudo mkdir /var/ftpdir
$sudo chown -R ftpuser.ftpgroup /var/ftpdir #把 /var/ftpdir目錄及同以下的目錄,設定所屬使用者和群組。
7.pureftp管理:
Pureftp的管理軟體很多,我們在這裡選擇這個:
下載下傳位址http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz
假設下到桌面,
$cd
$cd Desktop
$sudo tar zxvf ftp_v2.1.tar.gz #解壓展開,桌面上多了一個檔案夾,名為ftp
$sudo mv ftp /var/www/ftp #把ftp檔案夾移動到Apache伺服器主目錄,本文中是/var/www。
下面配置安裝,如果有什麼問題,請http://localhost/phpmyadmin/,把資料庫ftpusers删除,再重新下面的操作。
打開浏覽器,輸入http://localhost/ftp/install.php
step1)按step2 #這一步如果出現config.php權限不夠的提示,用chmod開權限。
step2)按“New installation,”連結;
step3)"Hostname"中填寫127.0.0.1,“Username”填寫root,Password填寫123456,按connect, 全部OK了按"continue”。又出來一個對話框,除了上面的三項要一模一樣外,“Database”要填寫"ftpusers",按 refresh,全部OK了按“step4”。有問題修正後按"refresh"驗證。
step4)語言選中文,FTP Address改成你的IP:21,“Default user ID”和"Default group ID"都是10000,要想流量控制和上傳下載下傳比率,把最後兩項選中。按"Save"按鈕,儲存到config.php中。按step5。
step5)管理者密碼,改一下,按"step6".出來一個選擇,要你選擇一個有足夠權限的使用者,用來使本次的管理者密碼更改生效,我選root。
step6)沒什麼好說的,按step7。完成了。
$sudo gedit /var/www/ftp/index.php
找到下面這行,把前面的//去了。
// echo ("<input type=/"text/" name=/"dir_box/" size=/"40/" maxlength=/"128/" value=/"$dir/">/n");
找到下面這行,把前面加上//
echo ("<input type=/"hidden/" name=/"dir_box/" value=/"$dir/">/n");
找到兩處.md5($_POST['password_box'])."'
全都改成.$_POST['password_box']."'
打開浏覽器,輸入http://localhost/ftp/
建立個帳号,名a密碼a,主目錄/var/ftpdir/a(它怎麼會叫家目錄,都是home惹得禍!)。有興趣你可以看一下,a目錄是不存在的,用ftp登入一下,a就自動建好了。
8.運作測試:
我們得要把 pureftp運作起來再說,我們可以利用 pureftp源碼解壓目錄/configuration-file/pure-config.pl這個腳本來控制,注意,這是用perl語言寫的。如果沒有安裝perl就安裝一個吧。輸入:
$cd
$cd Desktop
$cd pure-ftpd-1.0.21 #先進入你解壓的檔案夾
$sudo chmod u+x configuration-file/pure-config.pl
$sudo cp configuration-file/pure-config.pl /etc #放這裡好找
$sudo /etc/pure-config.pl /etc/pure-ftpd.conf #運作pureftpd伺服器
看到如果下資訊,就說明成功了
Running: /usr/local/sbin/pure-ftpd -A -c200 -B -C8 -D -fftp -H -I15 -lmysql:/etc/pureftpd-mysql.conf -L2000:8 -M -m100 -s -U133:022 -u100 -x -X -j -k99 -Z -8UTF-8 -9UTF-8
接着:
$ftp localhost
Connected to localhost.localdomain.
220---------- Welcome to Pure-FTPd ----------
220-You are user number 1 of 200 allowed.
220-Local time is now 15:03. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:xcg1688): a #使用者名
331 User a OK. Password required
Password: #密碼
230-User a has group access to: ftpgroup
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
9.設定pure-ftpd為系統服務:
$sudo gedit /etc/init.d/pure-ftpd
内容:
#!/bin/sh
/etc/pure-config.pl /etc/pure-ftpd.conf
然後:
$sudo chmod 755 /etc/init.d/pure-ftpd
$sudo chmod +x /etc/init.d/pure-ftpd
最後,到服務中選中它。重新開機系統(要設定匿名,先不重新開機,進入第10步)。
10.匿名上傳下載下傳:
$sudo mkdir /var/ftpdir/anonymous #建立一個目錄,名字随意,下面要用,記住統一即可。
$sudo useradd ftp -g ftpgroup #添加一個使用者“ftp”必須是這個名,它與其它ftp使用者都從屬于上面的ftpgroup。
$sudo usermod -d /var/ftpdir/anonymous ftp #更改“ftp”這個使用者的主目錄。
$sudo chmod +777 /var/ftpdir/anonymous #使具有匿名上層目錄的使用者可以删除匿名目錄anonymous内的檔案。
$sudo chown ftp:ftpgroup /var/ftpdir/anonymous
修改 /etc/pure-ftpd.conf終端:$sudo gedit /etc/pure-ftpd.conf
找到: AnonymousCantUpload no,不接受匿名使用者上傳新檔案( no = 允許上傳)
還是要重新開機才好用。
其它:
ftp用戶端可選gftp,在終端輸入:sudo apt-get install gftp
五、Pure-FTPD使用者權限配置設定政策:
======================================================
來源部落格:http://blog.csdn.net/xuchenguang/
編寫整理:徐晨光 MSN:[email protected]
參考資料:http://wiki.ubuntu.org.cn論壇中的貼子,
以及從網際網路“擺渡”出來的資料。
======================================================
按照前面的設定好後,權限情況是:注冊使用者各自對自已的檔案夾有全權,互相不能看。匿名使用者對anonymous檔案夾有上傳權限、建檔案夾權限,沒有删除權限。在實際工作中,這種配置設定方案不能滿足需求,下面來改進一下:
1,需求分析:
ftpmanager:對ftp内所有的檔案有全權。
注冊使用者:權限不變,仍然對各自的檔案有全權,互相隔離。
匿名使用者:對anonymous内檔案有下載下傳權限,對anonymous/upload下有上傳、建目錄權限,沒有删除權限。
2、實作辦法:
http://localhost/ftp/index.php
建立使用者ftpmanager,輸入密碼,更改主目錄為/var/ftpdir。其它的上傳下載下傳速率也改一下吧。
$sudo chmod +755 /var/ftpdir/anonymous #匿名目錄寫入權限限制在屬主(也叫所有者)。
$sudo chown ftpuser:ftpgroup /var/ftpdir/anonymous #匿名目錄屬主改為ftpuser。
$sudo usermod -d /var/ftpdir/anonymous ftp #匿名使用者主目錄在anonymous,如果你是一步一步按前面來的,這一步不必做。
$sudo mkdir /var/ftpdir/anonymous/upload
$sudo chmod +755 /var/ftpdir/anonymous/upload #upload目錄寫入權限限制在屬主和群組。
$sudo chown ftp:ftpgroup /var/ftpdir/anonymous/upload #upload目錄屬主改為ftp(即匿名帳号)。