linux搭建web服务器原理,【LINUX】linux搭建web服务器
linux httpd
假設服務器地址為192.168.80.20/241.將準備安裝的httpd軟件包共享給everyone,
(1)在linux上mount.cifs ?//真機IP地址/共享文件夾名/media /
ls? /meidia/查看
tar??? xjvf???httpd-2.4.10.tar.bz2??? -C??/usr/src解壓至/usr/src下
下面兩個插件是httpd2.4以后的版本所需要的
http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.4.6.tar.gz
wgethttp://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.4.1.tar.gz
下載上面兩個軟件解壓后復制到httpd的srclib解壓目錄中(不帶版本號)
tar?? xzvf??apr-1.4.6.tar.gz?? -C?? /opt
tar?? xzvf??apr-util-1.4.1.tar.gz??? -C??? /opt
cd?? /opt
cp? ?-r ???apr-1.4.6???/usr/src/httpd-2.4.10/srclib/apr
cp ??-r ??apr-util-1.4.1?????/usr/src/httpd-2.4.10/srclib/apr-util
(2)安裝編譯語言工具
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel
(3)cd?? ?/usr/src/httpd-2.4.10/
輸入以下腳本(配置需求)
./configure \
--prefix=/usr/local/apache\
--enable-so \
--enable-rewrite \
--enable-mods-shared=most\
--with-mpm=worker\
--disable-cgid \
--disable-cgi
(參數解釋:
--prefix=?? //來指定安裝路徑
--enable-so? //該參數表示支持用mod_so模塊提供的功能,用LoadModule在httpd.conf文件或包含的conf文件中動態加載某個模塊。讓Apache可以支持DSO模式
--enable-rewrite? //支持URL重寫
--enable-mods-shared=most? //選項:告訴編譯器將所有標準模塊都動態編譯為DSO模塊。
--with-mpm=worker//讓apache以worker方式運行
--with-mpm=worker?? //該參數是配置apache將以何種模式編譯的。Apache網站文檔指出不同操作系統下的不同的默認模式.
--disable-cgid //禁止用一個外部CGI守護進程執行CGI腳本
--disable-cgi //禁止編譯CGI版本的PHP)
安裝如無報錯,輸入make(編譯)
安裝如無報錯,再輸入make??install(完成安裝)
(4) grep? ?-v ??"#" ??/usr/local/apache/bin/apachectl? ?> ??/etc/init.d/httpd
vi/etc/init.d/httpd
在文件最前面插入下面的行,使其支持chkconfig命令:
#!/bin/sh
# ??chkconfig: ??2345? ?85 ?15
# description: ??Apache ?is ?a ?World ?Wide?Web?server.
第一行4個數字參數意義分別為:哪些Linux級別需要啟動httpd(2,3,4,5);啟動序號(85);關閉序號(15)。
chmod? ?+x? ?/etc/init.d/httpd添加執行權限
chkconfig ??--add ??httpd
注如果在/etc/init.d/apache不編輯這個# chkconfig: 2345 85 15內容的話,就沒法用chkconfig--add來添加apache這個服務的
chkconfig --listhttpd查看啟動項
(5) vi ???/usr/local/apache/conf/httpd.conf
ServerName?? s01.rhel.com
Listen網卡IP地址:80
ln ??-s? ?/usr/local/apache/conf/httpd.conf?? ?/etc/httpd.conf做軟鏈接
/etc/init.d/httpd ?start/stop啟動/停止
配置文件位置:? /usr/local/apache
cat? ?/usr/local/apache/htdocs/index.html查看默認文檔
2.匿名訪問虛擬目錄
(1)vi? ?/usr/local/apache/conf/httpd.conf
在末尾加上
Include ???/usr/local/apache/conf/conf.d/*.conf
保存。
(2)cd?? ??/usr/local/apache/conf/conf.d
vi??? vdir.conf
輸入以下內容
Alias ??/ic/ "/var/www/icons/"虛擬目錄對應物理路徑
Options? ?Indexes??MultiViews ??FollowSymLinks
AllowOverride? ?None
Order? ?allow,deny白名單
Allow? ?from ??all允許所有人訪問
Require? ?all ??granted給目錄授權
保存。
/usr/local/apache/bin/httpd? -k??start啟動web服務
可以在瀏覽器上輸入//192.168.80.20/ic/訪問虛擬目錄
3.需要身份驗證的虛擬目錄
vi?? /usr/local/apache/conf/conf.d/vdir.conf
在原有的語句末尾加入以下一段:
Alias ??/share/ ???"/usr/share/doc/"
Options ??Indexes??MultiViews ??FollowSymLinks
AllowOverride? ?None
Order ??allow,deny
Allow ?from ?all
AuthName? ?"hello"
AuthType ??Basic設置認證的類型,basic為基本的認證
AuthUserFile ??/usr/local/apache/user???????設置用于保存用戶賬號、密碼的認證文件路徑require valid-user ? ? ? ??要求只有認證文件中的合法用戶才能訪問。valid-user表示所有合法用戶
#Require ?all ??grante
保存
添加有訪問權限的用戶
./htpasswd ?-c ?/usr/local/apache/user?test增加test用戶,第一次要加-c
./htpasswd? /usr/local/apache/user? jack增加jack用戶,不需要加-c
/usr/local/apache/bin/httpd? -k? restart重啟服務
這是,訪問\\192.168.80.20\share\的時候,就需要使用test或者jack用戶來驗證。
4.虛擬主機
搭建好DNS
1、全局配置文件
vi ??/etc/named.conf
options {
listen-on ?port 53 ?{ 192.168.80.11; };
allow-query???? { any; };
}
2、區域配置文件
vi ??/etc/named.rfc1912.zones
zone ?"benet.com" ?IN ?{
type ?master;
file ?"benet.com.zone";
allow-update ?{ none; };
};
zone ?"accp.com"? IN ?{
type ?master;
file ?"accp.com.zone";
allow-update ?{ none; };
};
3、區域數據配置文件
# vi ?/var/named/benet.com.zone
$TTL 1D
@?????? IN SOA?@? admin(
0?????? ; serial
1D?????; refresh
1H????? ; retry
1W????? ; expire
3H)??? ; minimum
NS?????@
A??????192.168.80.20
www???? A??????192.168.80.20
# vi/var/named/accp.com.zone
$TTL 1D
@?????? IN SOA?@? accp(
0?????? ; serial
1D????? ; refresh
1H????? ; retry
1W????? ; expire
3H)??? ; minimum
NS?????@
A??????192.168.80.20
www???? A??????192.168.80.20
(1)基于域名,準備搭建www.benet.com和www.accp.com兩個網址,IP均為192.168.80.20 .
cd ??/usr/local/apache/conf/conf.d
vi? ?vhost.conf
輸入以下腳本:
ServerAdmin??webmaster@dummy-host.example.com
DocumentRoot ??/opt/benet/主頁物理路徑
ServerName??www.benet.com域名
ErrorLog ?logs/bjxh.com-error_log錯誤日志地址
CustomLog ??logs/bjxh.com-access_log common
授權目錄
Options??Indexes ?MultiViews ?FollowSymLinks
AllowOverride ?None
Order ?allow,deny白名單
Allow ?from ?all
Require ?all ?granted
ServerAdmin ?webmaster@dummy-host.example.com
DocumentRoot ?/opt/accp/
ServerName ?www.accp.com
ErrorLog ?logs/xhce.com-error_log
CustomLog ?logs/xhce.com-access_log common
Options ?Indexes ?MultiViews ?FollowSymLinks
AllowOverride ?None
Order ?allow,deny
Allow ?from ?all
Require ?all ?granted
(或者直接為/opt/授權
AllowOverride ?None
Options ?None
Require ?all ?granted
)
準備兩個主頁,放在/opt/下
cd? /opt/
mkdir?? benet
mkdir??? accp
echo??? “
this? is?benet
?? >?? /opt/benet/index.htmlecho??? “
this? is? accp
?? >??/opt/accp/index.html/usr/local/apache/bin/httpd? -k? restart重啟服務
這時候,在瀏覽器上輸入www.benet.com或者www.accp.com的時候就可以分別訪問兩個主頁了.
(2)基于端口(比較少用)
vi?? /usr/local/apache/conf/conf.d/vhost.conf
將原內容改為:
Listen ??192.168.80.11:8080
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
ServerAdminwebmaster@dummy-host.example.com
DocumentRoot /opt/benet/
ServerName www.benet.com
ErrorLog logs/benet.com-error_log
CustomLog logs/benet.com-access_log common
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
ServerAdminwebmaster@dummy-host.example.com
DocumentRoot /opt/accp/
ServerName www.accp.com
ErrorLog logs/accp.com-error_log
CustomLog logs/accp.com-access_log common
紅字為跟以上不同的地方
保存,重啟服務。
這時候,訪問www.benet.com和www.accp.com:8080可以分別訪問兩個主頁
總結
以上是生活随笔為你收集整理的linux搭建web服务器原理,【LINUX】linux搭建web服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio中检测内存泄漏
- 下一篇: linux 其他常用命令