歡迎您光臨本站 註冊首頁

Linux下安裝配置apache + php, tomcat, vsftpd全記錄

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

以前真正對Linux的系統服務配置接觸其實不是很多。前兩天給研究生院網站配新伺服器,完整得配置了一下apache+php及tomcat,外加ftp,折騰了好幾天,總算完整得搞定了。記下來供以後參考。詳細過程如下:

1.伺服器配置IBM System x3650,4G內存,140G*3,RAID5
2.Linux RHEL AS4 u6,找人拷的DVD iso,吱吱嘎嘎得刻了盤
3.裝系統,分區,按下不表。要配置的服務是apache+php,有獨立數據伺服器,所以不用mysql。另外就是tomcat+jdk,還有ftp。
4.Apache2.2.3,裝完改了下埠和DocumentRoot,順利運行
5.PHP5.2.5 第一次make install,運行apache報錯:undefined symbol: SQLITE3SELECT,添加LoadModule之類的,依舊不行。百度之,./configure時加以下參數--with-apxs2=/usr/local/apache2/bin/apxs,再運行apache,報錯:undefined symbol: Zend_ini_string,繼續百度,確定zlib等系列組件都有,仍然報錯。大?濉:罄捶⑾秩綣?諞淮?ake install失敗后要tar個新的源代碼或者make clean一下重新來過。終於搞定。
6.JDK 1.5.0_06,這個比較Naive
7.Tomcat 5.5.26。因為沒接觸過這玩意兒,down了個source包,不會裝,發現要ANT,上網down之,發現奇慢無比。後來發現有直接的包,down下來tar后直接startup.sh就啟動服務了,cp webapps/到網站根目錄,配置conf/server.xml下的埠號和appBASE,也順利啟動。
8.FTP,用AS4自帶的vsftpd,配置奇難,暫時放下。
9.修改/etc/inittab下的id為3,改為命令行啟動
10.配置iptables,只開放相應服務埠,屏蔽其他埠
11.cp /usr/local/apache2/bin/apachectl到/etc/init.d/下,重命名為httpd,添加可執行許可權,在/etc/rc3.d下建立符號連接S66httpd連到那個httpd,重啟后apache可以順利運行。
12.cp tomcat/bin/startup.sh到/etc/init.d下,重命名為tomcat,添加可執行許可權,在/etc/rc3.d下建立符號連接S67tomcat連到那個tomcat,重啟后tomcat不能運行。查看startup.sh,發現啟動某個腳本時用的是相對路徑,修改$PRG=$0,將$0(當前目錄)改為tomcat/bin的絕對路徑,重啟后可以運行。
13.在/etc/rc3.d下添加符號連接S68vsftpd到/etc/init.d/vsftpd,系統自帶的,省事不少。匿名用戶可以順利訪問。接下來開始配置超級?宓男檳?tp。
14.關於使用vsftpd配置虛擬ftp,網上有很多介紹,但都很傻X,翻了很多資料,都是要先給網卡綁定一個別名,配置一個新的ip地址,然後建立新的ftp監聽新的ip,反正很麻煩。後來發現都是扯淡。
先說說虛擬ftp的好處,Linux下配置ftp比較簡單的方法是使用本地帳戶,就是Linux系統里創建的帳戶。通常為了圖配置上的省事,可以創建一個專門用於ftp的帳戶,通過userlist文件控制只有固定的本地帳戶可以訪問ftp,然後給該帳戶一個目錄,再改改它在該目錄的許可權,就起到比較好的許可權控制了。當然,這種方法配置起來方便而直觀,只是靈活性差,安全性也不見得怎麼樣。所謂虛擬ftp呢,就是有自己定義的用戶名和密碼,以及相關許可權設置。這些ftp用戶的許可權通過vsftpd映射到某個本地帳戶的許可權,靈活性強大多了。

vsftpd配置虛擬ftp的步驟:
a)假定/ftp是我們的ftp根目錄。首先,創建一個ftpuser帳戶,使用如下命令:
useradd ?d /ftp ftpuser
設定ftpuser宿主目錄,然後將/ftp目錄chown給ftpuser.ftpuser,再chmod到700。接下來虛擬ftp的訪問都是映射到ftpuser這個帳戶的許可權上。
b)隨便創建一個文件,命名為ftp_id_list好了,再裡面寫上ftp的用戶和密碼,這些就是用來登陸ftp的帳戶。每個用戶佔兩行,一行id一行密碼,如下:
user1
password1
user2
password2
然後執行:
db_load ?T ?t hash ?f ftp_id_list /etc/vsftpd_login.db
c)在/etc/pam.d下創建ftp.vu文件,輸入內容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
(b)(c)兩步的目的是為為虛擬ftp設置帳戶的認證方式。將帳戶和密碼保存在資料庫中,並採用pam方式進行認證。Linux下通常都是採用pam對帳戶就行認證。
d)我的vsftpd.conf在/etc/vsftpd/下。現在開始修改配置。首先在該目錄下創建virtual文件夾,在該文件夾下為剛才寫下的每一個用戶都創建一個配置文件,文件名與用戶名相同。
e)先修改vsftpd.conf,主要需要修改的內容如下:
guest_enable=yes #起用虛擬帳戶
guest_username=ftpuser #虛擬帳戶映射到ftpuser的許可權上
User_config_dir=/etc/vsftpd/virtual #虛擬帳戶的配置信息
Pam_service_name=ftp.vu #帳號的認證方式
其他幾項:
Listen=yes
Anonymous_enable=no
Local_enable=yes
Write_enable=no
Anon_upload_enable=no
Anon_mkdir_write_enable=no
Anon_other_write_enable=no
Chroot_local_user=yes #限制本地用戶在宿主目錄下
vsftpd.conf的許可權是ftp的默認許可權,這裡最好許可權給得低一些。然後到具體用戶許可權里去配具體許可權。
到virtual/下配置每個用戶的許可權:

設置當前用戶的主目錄:
local_root=/ftp/user1
注意,要在/ftp下創立文件夾請使用以下方式:
su ftpuser
mkdir /ftp/user1
要保證ftpuser帳號在該目錄有許可權。

瀏覽許可權:
Anon_world_readable_only=no

上傳下載許可權:
Write_enable=yes
Anon_upload_enable=yes

刪除目錄、重命名許可權:
Anon_other_write_enable=yes

配置完畢后/etc/init.d/vsftpd restart重啟一下看看

問題又出來了。是不是發現訪問不上,或者很慢?

發現下面這段話:

使用這種方式(網上主流)可以開啟ftp伺服器,但是存在問題,該伺服器只能支持ftp的主動連接(即port模式),而很多ftp客戶端都是默認使用被動模式連接(pasv模式),故在連接該伺服器的時候會出現等待socket埠超時的問題,解決方法一種是修改ftp客戶端的設置,如cuteFTP在站點屬性的類型中將數據連接模式改成Use Post。當然這種解決方案比較被動,而且要求用戶了解該配置,顯然不能對於廣大的網民實用。故我使用了第二種方法,在伺服器端設置該ftp支持被動模式。這種方法有兩個注意點:

1、修改配置文件,將其聲明為支持被動模式
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=60000
2、由於打開的被動埠50000~60000可能被iptables屏蔽,自己改設置吧。

[火星人 ] Linux下安裝配置apache + php, tomcat, vsftpd全記錄已經有400次圍觀

http://coctec.com/docs/linux/show-post-201732.html