1 搭建一台測試web服務器
案例:
部門內部搭建一台WEB服務器,采用的IP地址和端口為192.168.10.34:80,首頁采用index.html
文件。管理員E-mail地址為 xuegod@xuegod.cn,網頁的編碼類型采用UTF-8,所有網站資源都存放在/var/www/html目錄下,並將Apache的配置文件根目錄設置為/etc/httpd目錄。
[root@xuegod4 ~]#yum -yinstall httpd
[root@xuegod4 ~]#vim/etc/httpd/conf/httpd.conf
修改配置文件相關參數:
[root@xuegod4 ~]# vim /etc/httpd/conf/httpd.conf #以下參數需要我們掌握
57 ServerRoot "/etc/httpd"#apache配置文件的根目錄
70 Timeout 60 #超時時間,接收和發送前超時秒數
136 Listen 80 #監聽的端口
262 ServerAdmin root@localhost #設置管理員,e-mail 地址
277 ServerName 192.168.1.163:80 #服務器主機名.
293 DocumentRoot "/var/www/html" #網站頁面根目錄
Options Indexes FollowSymLinks #當一個目錄沒有默認首頁時,允許顯示此目錄列表
禁止 Apache 顯示目錄結構列表,只需將 Option 中的 Indexes 去掉即可
403 DirectoryIndex index.html index.html.var#指定默認首頁
編碼:
AddDefaultCharset UTF-8 # 設置服務器的默認編碼為:UTF-8
2 取消apache默認歡迎頁:
[root@xuegod4 ~]# vim/etc/httpd/conf.d/welcome.conf
#
# This configuration fileenables the default "Welcome"
# page if there is nodefault index page present for
# the root URL. To disable the Welcome page, comment
# out all the linesbelow.
#
#<LocationMatch"^/+$"> #把紅色內容進行注釋
# Options -Indexes
# ErrorDocument 403 /error/noindex.html
#</LocationMatch>
重啟:
[root@xuegod4~]# service httpd restart
創建首頁文件:
[root@xuegod4 ~]# echo 'welcome to www.xuegod.cn' >/var/www/html/index.html
3 使用rpm搭建lamp 環境
LAMP = linux+apache+mysql數據庫+php
[root@xuegod4 ~]# yum install httpd mysql-server php php-mysql
測試數據庫:
[root@xuegod4 ~]# service mysqld start
Starting mysqld: [ OK ]
[root@xuegod4 ~]# chkconfig mysqld on
[root@xuegod4 ~]# mysql
mysql> show databases;
mysql> exit;
Bye
[root@xuegod4 ~]# cd /var/www/html/
[root@xuegod4 html]# vim index.php
<?php
phpinfo();
?>
重啟apache服務:
[root@xuegod4 html]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
MaxClients 256 #設置客戶端最大連接數為 256
4 修改網站根目錄及對應參數,設置訪問權限
設置文檔目錄為/var/www/html/bbs
目錄與訪問控制:
<Directory "/var/www/html/bbs"> #子目錄會繼承這個目錄的屬性
Options FollowSymLinks #Options:Indexes:目錄瀏覽 #Followsymlinks:可以用連接
AllowOverrideNone #不允許任何Override
Orderallow,deny
Allow from192.168.1.0/24 #從哪里來的允許
Deny from 192.168.1.0/24 #從哪里來的拒絕
Allow from .baidu.com
#Allow,Deny都會讀取,如果有沖突和未說明的時候按照Order選項逗號后面的那個為准。
誰寫到后面,誰的優先級高。
</Directory>
配置完重啟apache服務
如果報錯檢查目錄是否已創建?
測試:
service httpd restart #拒絕
5 使用別名功能,引用網站根目錄以外的路徑
將/usr/local/phpmyadmin 目錄通過虛擬目錄功能添加到網站根目錄。當訪問http://192.168.1.63/phpmyadmin/ 時,就可以訪問目錄/usr/local/phpmyadmin中的內容。
注:apache的別名也叫虛擬目錄
語法:
Alias URL路徑 PATH物理路徑
創建測試目錄和數據
[root@xuegod4 ~]# mkdir/usr/local/phpmyadmin
[root@xuegod4 ~]# cp -r/boot/grub/ /usr/local/phpmyadmin/
[root@xuegod4 ~]# echo"test1" >/usr/local/phpmyadmin/a.html
修改配置文件
[root@xuegod4 ~]# vim/etc/httpd/conf/httpd.conf
Alias /phpmyadmin"/usr/local/phpmyadmin/"
<Directory"/usr/local/phpmyadmin/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
注:Alias/phpmyadmin/ "/usr/local/phpmyadmin/" #/phpmyadmin/ 可以隨意起。比如改/phpmyadmin/ 為/php/ 則訪問鏈接: http://192.168.1.63/php/
當一個目錄下沒有默認首頁時,訪問http://192.168.1.63/phpmyadmin/禁止顯示目錄列表
修改配置文件:
[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf # 修改紅色標記內容
Alias /phpmyadmin/ "/usr/local/phpmyadmin/"
<Directory "/usr/local/phpmyadmin/">
Options -Indexes FollowSymLinks #在Indexes 前加-減號,此目錄下沒有默認首頁時,禁止顯示目錄
AllowOverrideNone
Orderdeny,allow
Allow from all
</Directory>
6 打開軟鏈接功能
通過軟鏈接直接引用網站根目錄以外的內容
[root@xuegod4 ~]# mkdir /web2
[root@xuegod4 ~]# echo test1 > /web2/a.html
[root@xuegod4 ~]# ln -s /web2/ /var/www/html/web2
[root@xuegod4 ~]# rm -rf /var/www/html/index.html
[root@xuegod4 ~]# rm -rf /var/www/html/index.php
[root@xuegod4 ~]# vim /etc/httpd/conf/httpd.conf
[root@xuegod4 ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
7 通過用戶認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護。 設置/usr/local/phpmyadmin/目錄,只能通過用戶名密碼方式訪問。
方法一:
Alias /phpmyadmin/ "/usr/local/phpmyadmin/"
<Directory "/usr/local/phpmyadmin/">
Options IndexesFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Allow from all
authtype basic #基本認證
authname "MySQL admin software"
authuserfile /etc/httpd/conf/passwd.secret #密文配置文件路徑
#require usertom
#require usertom bob
require valid-user #有效用戶
</Directory>
重啟apache 訪問http://192.168.1.63/phpmyadmin驗證
生成認證賬號和密碼
[root@xuegod63 ~]#htpasswd -cm /etc/httpd/conf/passwd.secret man
New password:
Re-type new password:
Adding password for user man
驗證:
方法二:
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
<Directory"/usr/local/phpmyadmin/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AllowOverride AuthConfig
</Directory>
# AllowOverride AuthConfig一行表示允許對/usr/local/phpmyadmin/目錄下的文件進行用戶認證。
[root@xuegod63 ~]# vim/usr/local/phpmyadmin/.htaccess
authtype basic
authname "MySQL admin software by .htaccess"
authuserfile /etc/httpd/conf/passwd.secret
#require user tom
require valid-user
8 配置apache虛擬主機,實現在一台服務器上運行多個網站
apache虛擬主機實現有三種方法:
1、通過不同的IP地址
2、通過不同的域名
3、通過不同的端口號
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
改:
#NameVirtualHost*:80
為:
NameVirtualHost*:80
8.1 通過不同的IP地址,解析不同的域名
給服務器增加IP(另一個域名解析)
[root@xuegod63 ~]# ifconfigeth0:1 192.168.1.65
[root@xuegod63 ~]# mkdir/var/www/html/bbs
[root@xuegod63 ~]# echo"bbs.xuegod.cn" >/var/www/html/bbs/index.html
[root@xuegod63 ~]# echo"www.xuegod.cn" > /var/www/html/index.html
修改httpd.conf
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
<VirtualHost192.168.10.63:80>
ServerAdmin root@xuegod.cn
DocumentRoot /var/www/html/
ServerName www.xuegod.cn
ErrorLog logs/www.xuegod.cn-error_log
CustomLog logs/www.xuegod.cn-access_logcommon
</VirtualHost>
<VirtualHost 192.168.10.65:80>
ServerAdmin root@xuegod.cn
DocumentRoot /var/www/html/bbs/
ServerName bbs.xuegod.cn
ErrorLog logs/bbs.xuegod.cn-error_log
CustomLog logs/bbs.xuegod.cn-access_logcommon
</VirtualHost>
重啟服務
service httpd restart
測試:
8.2 通過不同的域名配置虛擬主機
#vim httpd.conf
NameVirtualHost *:80
<VirtualHostwww.xuegod63.cn>
ServerAdmin root@xuegod.cn
DocumentRoot /var/www/html/
ServerName www.xuegod.cn
ErrorLog logs/www.xuegod.cn-error_log
CustomLog logs/www.xuegod.cn-access_logcommon
</VirtualHost>
<VirtualHostbbs.xuegod63.cn>
ServerAdmin root@xuegod.cn
DocumentRoot /var/www/html/bbs/
ServerName bbs.xuegod.cn
ErrorLog logs/bbs.xuegod.cn-error_log
CustomLog logs/bbs.xuegod.cn-access_logcommon
</VirtualHost>
重啟服務
service httpd restart
修改電腦hosts文件C:\Windows\System32\drivers\etc\hosts作解析:
192.168.10.34 www.xuegod63.cn
192.168.10.34 bbs.xuegod63.cn
測試:
8.3 通過不同的端口配置虛擬主機
[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf
改:
Listen 80
為:
Listen 80
Listen 81
#更改為你要添加的端口
再創建2個虛擬主機
<VirtualHost *:80>
ServerAdmin root@xuegod.cn
DocumentRoot /var/www/html/
ServerName www.xuegod.cn
ErrorLog logs/www.xuegod.cn-error_log
CustomLog logs/www.xuegod.cn-access_logcommon
</VirtualHost>
<VirtualHost *:81>
ServerAdmin root@xuegod.cn
DocumentRoot /var/www/html/bbs/
ServerName bbs.xuegod.cn
ErrorLog logs/bbs.xuegod.cn-error_log
CustomLog logs/bbs.xuegod.cn-access_logcommon
</VirtualHost>
重啟服務
service httpd restart
驗證:
http://192.168.10.34:80
http://192.168.10.34:81