3月5日——培訓第72天

源代碼安裝軟件

要確定本機的gcc是安裝了的!否則沒辦法從源代碼安裝。

redhat-config-packages 可以從光盤安裝gcc!

vi 1.c

main()
{
 printf("Hello c/n");
}

編譯的時候輸入:gcc -o 1.exe 1.c
運行的時候輸入:./1.exe  (只輸入1.exe也是可以的。)
 
如果 gcc file.c ,那麼生成的是a.out
擴展名可以任意,Linux不會通過擴展名來判斷是否是可執行文件,而是通過權限判斷。
===================================================================

Linux權限: 讀 寫 執行

讀:r  (read)
寫:w  (write)
執行:x (execute)

賦予權限要針對三個用戶(文件所有者、文件所屬組、除了文件所有者和文件所屬組之外的其他用戶)

每一類用戶都有讀、寫、執行三類權限。

ls -l顯示當前用戶

可以看到類似下面的字符串:
-rwxr-xr-x

第一個字符是-,所以是文件(如果是d,則代表是目錄)
rwxr-xr-x

rwx是說文件所有者具備所有權限
r-x是說文件所屬組不具備寫權限
r-x是說其他用戶不具備寫權限

修改文件權限:
文件所有者: u   文件所屬組: g   其他用戶: o
chmod u+x f2   給f2文件的文件所有者賦予執行權限!(這樣就可以直接輸入2.txt觀察執行結果了)
chmod u-x f2   給f2文件的文件所有者剝奪執行權限!

對於管理員用戶來說,即便沒有設置文件讀的權限,也是可以讀的。

chmod u+x,g+x,o+x f2 (賦予多個權限的時候用逗號分隔)

在默認情況下,一個文件創建出來後,權限是這麼分配的……
所有者:讀寫權限
所屬組:讀權限
其他用戶:讀權限

r:4、
w:2
x:1
如果用數字來表示權限的話,就像上面那樣

如果用數字授予權限的話:chmod 744 文件名
也就是說,默認情況下的文件所有者權限應該是6,文件所屬組的權限是4,其他用戶的權限是4
也就是644

現在賦予文件所有者執行的權限,意味着給6加上1,所以是744
如果賦予文件所有的權限,那就是chmod 777 文件名

==========================================================================
tar -xzvf qq.tar.gz
解壓qq軟件包,解開壓縮包後得到gaim-cvs-0218-qq-0.2.5
由於.c文件太多了,所以不能直接用gcc編譯,應該使用make

同理如果很多的java文件的話,也不會使用javac ,而是ant管理工具

在這之前得先在圖形化界面的終端裏面輸入redhat-config-packages來進入添加刪除
程序界面,把所有的開發工具的鉤都打上,然後更新,大概要600MB左右,期間頻繁的在
光盤2和光盤3之間切換……

第一步:進入qq主目錄,先生成配置文件
./configure --prefix=/qq
生成配置文件,把配置文件放到根目錄下的qq文件夾中!

然後輸入make
然後再輸入make install

=================================================================
進入apache目錄:然後輸入 ./configure --prefix=/usr/local/apache2
然後還是老樣子,make完了之後make install就可以了。需要注意的是apache的配置

在桌面上建立快捷方式:郵件單擊新建啓動器,注意要在命令中選中具體的目錄中的命令

cd /usr/local/apache2
bin/apachectl start   :啓動apache

apache2中的htdocs目錄用來放置網頁文件……

在htdocs中新建一個1.html後,輸入一些東西,然後訪問
http://162.105.81.??/1.html
就可以了。

默認情況下htdocs中是沒有首頁文件的,你給它新建一個index.html就行了,以後
輸入http://162.105.81.??
就可以得到那個index.html了。

如果要建立真實目錄的話需要建立在htdocs中……

mkdir news
然後在裏面建立一個index.html就行了

這樣就可以通過http://162.105.81.??/news來訪問了。

但是虛擬目錄呢?也就是說如果工程文件在其他位置,又想訪問到的話,這時候如果不配置
虛擬路徑的話肯定是訪問不了的。

配置虛擬目錄(不在htdocs下的資源)的時候,需要修改apache的配置文件,這和tomcat一樣。

cd /usr/local/apache2/conf中的httpd.conf是很重要的配置文件

vi httpd.conf

然後在命令模式中使用/Alias命令找到類似下面的指令,然後8yy複製8行,然後按p粘貼。
/Alias /abc/ "/web1/"
<Directory "/web1">
……………………


保存後,使用bin/apachectl restart重啓apache就可以訪問了……
訪問的時候Http://162.105.81.??/abc/
不要忘記最後一個"/"!!!當然更別忘了裏面得給一個index.html!!

如果配置文件要是寫成:

Alias /abc "/usr/local/apache2/aaa/"

<Directory "/usr/local/apache2/aaa">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

訪問的時候就不用最後的/了,直接就是abc就可以了,注意
/usr/local/apache2/aaa/是真實文件存儲的路徑!/abc是訪問的時候
在地址欄裏面輸入的

========================================================

下面說說虛擬主機,這還需要DNS服務器纔可以
虛擬主機:在一臺物理機器上可以發佈多個web服務器。

要麼基於ip,要麼基於端口,前兩種都不怎麼實在,一般都是基於名稱(域名)
還得用redhat-config-packages命令在圖形化界面裏面裝DNS服務器。

裝完後就有了這個配置文件:
/etc/named.conf

首先修改這個配置文件

加入:
zone "yuanbin.com" IN{
 type master ;
 file "yuanbin.com"
};    //正向文件:由域名找ip

zone "81.105.162.in-addr.arpa" IN {
 type master ;
 file "yuanbin.com1"
} ;  //反向文件:由ip找域名,一個網段只能寫一個反向文件!!!

注意上面的兩個file名字是任意起的,但是一定不可以一樣!!

然後到/var/named裏面

cp localhost.zone yuanbin.com
cp named.local yuanbin.com1

然後得分別修改yuanbin.com和yuanbin.com1兩個文件!

-------------------------------------------------------------

上面的過程有點亂,linux中這裏配置虛擬主機的過程再說一遍:

/etc中的named.conf和resolv.conf是需要更改的
首先更改resolv.conf其實這裏就是把DNS改爲本機的linux的ip地址,當然
你也可以在圖形化界面裏面的終端中通過使用netconfig來更改,都是一樣的,
這一步非常容易被忽略掉,所以最好先做!!

主要是/etc/named.conf的更改,這裏需要注意添加上面所寫的兩段zone代碼,
它們添加的位置應該在name.conf原始文件中所有zone代碼的最後。

裏面的兩個file名字是不可以相同的,但是可以任意命名,然後這兩個文件還得修改,
所以千萬不要給搞反了!!這裏有一點還需要特別注意:反向文件(也就是由ip找域名的
那段代碼,每個機器在一個網段中只能寫一個!由域名找ip的正向文件可以寫多個,比如
yuanbin.com、sina.com、xiaohong.com等等)

這裏還多說一句,反向文件代碼可以不設的,但是一般都設,如果你不設定的話,ping的
時候速度會非常非常的慢!!

之後就是要編輯正向和反向兩個文件了,在/var/named目錄裏面有兩個文件,localhost.zone
和named.local,分別是正向文件和反向文件的模版,於是利用
cp localhost.zone yuanbin.com
cp named.local yuanbin.com1
把模版分別拷貝到你自己的正向和反向文件裏面,然後通過vi做一下修改就可以。
修改後的一個樣板如下:

正向文件:

$TTL    86400
@                        IN SOA www.yuanbin.com. root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        IN NS   www.yuanbin.com.
www                      IN A   162.105.81.111


反向文件:

$TTL    86400
@       IN      SOA     www.yuanbin.com. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      www.yuanbin.com.

111       IN      PTR     www.yuanbin.com.


嚴格按照上面的樣子修改你自己的正向和反向文件,保存退出後使用命令:
service named start
啓動DNS服務器

然後使用命令  ping www.yuanbin.com 應該就可以得到結果了!

其實比較容易忽略的過程有兩個:一個是忘了啓動dns服務器,一個是忘了把自己linux
網絡環境的DNS服務器地址設置爲本機linux網絡環境的ip。

注意以上兩個問題,再加上修改文件和添加zone代碼的時候小心一些就沒問題了。
確實,很難把它弄對,這裏確實是考驗耐心的地方……
------------------------------------------------------------------
配置虛擬主機:

上面建立了一個www.yuanbin.com
爲了後面方便用同樣的方法建立www.wangzhiyuan.com
www.zhaoming.com
(注意由於已經有了反向文件,所以只需要建立兩個對應的正向文件就可以了)

有了三個區域之後就可以在自己這個機器上面配多個網站了。

在根目錄下建立web目錄,然後在裏面建立yuanbin、wangzhiyuan和zhaoming
三個web站點的文檔目錄。別忘了分別在這三個文件夾裏面建立首頁文件index.html

下面要更改的是配置文件
首先: vi /usr/local/apache2/conf/httpd.conf

將下面這句話取消註釋
NameVirtualHost 162.105.81.111:80

然後在文件的最後根據註釋部分更改出如下三個片段添加到httpd.conf的最後

<VirtualHost 162.105.81.111:80>
    ServerAdmin [email protected]
    DocumentRoot /web1/zhaoming
    ServerName www.zhaoming.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost 162.105.81.111:80>
    ServerAdmin [email protected]
    DocumentRoot /web1/yuanbin
    ServerName www.yuanbin.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost 162.105.81.111:80>
    ServerAdmin [email protected]
    DocumentRoot /web1/wangzhiyuan
    ServerName www.wangzhiyuan.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>


重啓apache:/usr/local/apache2/bin/apachectl restart

然後如果你要用window來驗證的話,別忘了把windows的DNS服務器也改爲Linux本機
的ip地址!!還有一點一定要注意,如果有代理的話一定要去掉!!!!

 

 

 

 


 

發佈了111 篇原創文章 · 獲贊 6 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章