案例:php
部門內部搭建一臺WEB服務器,採用的IP地址和端口爲192.168.10.34:80,首頁採用index.htmlhtml
文件。管理員E-mail地址爲 xuegod@xuegod.cn,網頁的編碼類型採用UTF-8,全部網站資源都存放在/var/www/html目錄下,並將Apache的配置文件根目錄設置爲/etc/httpd目錄。node
[root@xuegod4 ~]#yum -yinstall httpdmysql
[root@xuegod4 ~]#vim/etc/httpd/conf/httpd.conflinux
修改配置文件相關參數:web
[root@xuegod4 ~]# vim /etc/httpd/conf/httpd.conf #如下參數須要咱們掌握sql
57 ServerRoot "/etc/httpd"#apache配置文件的根目錄數據庫
70 Timeout 60 #超時時間,接收和發送前超時秒數apache
136 Listen 80 #監聽的端口vim
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
[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
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
設置文檔目錄爲/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 #拒絕
將/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>
經過軟連接直接引用網站根目錄之外的內容
[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 ]
方法一:
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
apache虛擬主機實現有三種方法:
一、經過不一樣的IP地址
二、經過不一樣的域名
三、經過不一樣的端口號
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
改:
#NameVirtualHost*:80
爲:
NameVirtualHost*:80
給服務器增長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
測試:
#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
測試:
[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