admin 管理员组文章数量: 887021
2023年12月25日发(作者:正则表达式匹配开始结束)
Linux服务器部署系列之一—Apache篇(上)
Linux系统的应用越来越广泛了,学习linux系统的网管兄弟也有增加的趋势。很久以前就有些想法,要将自己学的linux知识整理一下。最近,终于下定决心,挤出时间开始动手写些东西了。虽然不一定好,不过,留些笔记至少可以方便记忆。
Apache是Linux服务里面用得最多的之一,今天我们就从它开始来一次Linux服务部署之旅。
本文分以下章节介绍:
1. 安装Apache
2. 配置Apache
3. 配置虚拟主机
4. 管理日志文件
5. 配置PHP运行环境
一、安装Apache
下载地址:/
1. 安装Apache
# tar zxvf
# cd httpd-2.2.11
# ./configure --prefix=/usr/local/apache --enable-so
//编译时加上加载模块参数--enable-so
# make
# make install
2. 配置系统启动时自动启动Apache服务。
# vi /etc/rc.d/
//在上加入一行/usr/local/apache/bin/apachectl –k start。
二、配置Apache
1. 修改文件
# vi /usr/local/apache/conf/
1) 设置根目录的路径
根目录是指Apache存放配置文件和日志文件的目录,配置参数为ServerRoot,默认位于“/usr/local/apache”。命令如下:
2) 设置监听IP地址及端口号
默认侦听本机所有IP地址的TCP80端口,命令如下:
Listen 80
用户也可以按自己的需求,使用多个Listen语句在多个地址和端口上侦听客户端请求。比如:
Listen 192.168.99.9:80
Linsten 172.16.0.20:8080
3) 设置系统管理员E-mail
使用ServerAdmin参数设置管理员E-mail,比如管理员的Email地址为root@:
4) 设置服务器主机的名称
参数ServerName用来设置服务器的主机名称,如果没有域名则填入服务器的IP地址,比如服务器的IP地址为192.168.99.9:
5) 设置主目录的路径
用户可以使用参数DocumentRoot配置服务器主目录默认路径,比如,主目录路径为
6) 设置默认文件
Apache的默认文件名为,可以使用Directory Index参数来配置,比如,将设置为默认文件名:
7)测试:
打开浏览器,输入地址:192.168.99.9,可以打开站点了:
2. 配置目录权限
使用
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
说明:
1)定义目录特性选项Options
可选参数:
Indexes:该特性表明目录允许“目录浏览”;
MultiViews:该特性表明目录允许内容协商的多重试图;
All:包含了除MultiViews外的所有特性;
ExecCGI:该特性表明允许在该目录下执行CGI脚本;
FollowSymLinks:该特性表明允许在该目录下使用符号连接。
2).htaccess文件
可以通过.htaccess文件(访问控制文件)设置目录的权限。
AccessFileName .htaccess
配置参数AllowOverride指定目录的.htaccess文件中指令的类型,包括All、None与Options、FileInfo、AuthConfig、Limit的任意组合。一般将AllowOverride设置为“None”,禁止使用.htaccess文件,当AllowOverride参数为All时,.htaccess文件可以覆盖任何以前的配置。
3)设置访问控制
使用Order选项来定义访问权限。
比如以下语句表明允许所有客户机的访问:
Order allow,deny
Allow from all
以下语句表明只允许网段192.168.99.0/24的客户机访问,但IP地址为192.168.99.254这个客户机除外:
Order allow,deny
Allow from 192.168.99.0/24
Deny from 192.168.99.254
用户可以根据需要,按上述方法配置自己的目录权限。
3. 创建虚拟目录
使用Alias选项创建虚拟目录,比如,建立“/icons/”这个虚拟目录,其对应的物理路径为“/var/www/icons/”:
Alias /icons/ “/var/www/icons/”
4. 用户认证
比如,有一个名为myweb的虚拟目录,其对应的物理路径是“/usr/local/myweb”,现对其启用用户认证功能,只允许用户Tonyguo和Wayne访问。
1)建立虚拟目录并设置用户认证:
2) 建立口令文件并为用户设置口令
-c选项表示无论口令文件是否已经存在,都会重新写入文件并删除原内容。所以第二个用户wayne不需要使用-c选项。
3)测试
在浏览器中输入:192.168.99.9/myweb,可以看到如下对话框:
-c选项表示无论口令文件是否已经存在,都会重新写入文件并删除原内容。所以第二个用户wayne不需要使用-c选项。
3)测试
在浏览器中输入:192.168.99.9/myweb,可以看到如下对话框:
输入用户名和密码后就可以访问网站了:
三、配置虚拟主机
1. 配置基于IP的虚拟主机
1)IP地址相同,但端口号不同的虚拟主机配置
比如使用192.168.99.9的两个不同端口80和8080发布两个不同站点, 虚拟主机分别对应的目录为/usr/local/apache/htdocs/web1和/usr/local/apache/htdocs/web2:
Listen 80
Listen 8080
ServerSignature email
DocumentRoot /usr/local/apache/htdocs/web1
DirectoryIndex
LogLevel warm
HostNameLookups off
ServerSignature email
DocumentRoot /usr/local/apache/htdocs/web2
DirectoryIndex
LogLevel warm
HostNameLookups off
2)配置基于域名的虚拟主机
比如服务器有两个IP地址192.168.99.9和192.168.99.10,使用这两个IP创建两台虚拟主机,虚拟主机分别对应的目录为/usr/local/apache/htdocs/web1和/usr/local/apache/htdocs/web2。设置方法如下:
ServerName 192.168.99.9:80
DocumentRoot /usr/local/apache/htdocs/web1
DirectoryIndex
ServerName 192.168.99.10:80
DocumentRoot /usr/local/apache/htdocs/web2
DirectoryIndex
2. 配置基于域名的虚拟主机
比如有两个域名和需要使用同一台服务器192.168.99.9,那么可以这样配置:
NameVirtualHost 192.168.99.9
ServerName :80
ServerAdmin admin@
DocumentRoot /usr/local/apache/htdocs/web1
DirectoryIndex
ErrorLog logs/web1/error_log
Customlog logs/web1/access_log combined
ServerName :80
ServerAdmin admin@
DocumentRoot /usr/local/apache/htdocs/web2
DirectoryIndex
ErrorLog logs/web1/error_log
Customlog logs/web1/access_log combined
Linux服务器部署系列之一—Apache篇(下)
四、管理日志文件
Apache日志分为访问日志和错误日志两种:
1)访问日志
用于记录客户端的访问信息,文件名默认为access_log,可以通过参数CustomLog设置日志文件存放的位置和文件名:
CustomLog logs/access_log combined
2)错误日志
用于记录Apache在启动和运行时产生的错误,默认为error_log,可以通过参数ErrorLog进行设置:
ErrorLog logs/error_log
1. 日志滚动
1)Rotatelogs
#vi /usr/local/apache/bin/
将 CustomLog logs/access_log combined
改为 CustomLog “|/usr/sbin/rotatelogs logs/access_log 172800” combined
其中,172800单位为秒,即两天。滚动后的日志文件命名为/usr/local/apache/httpd/logs/access_logxxxxxxxxxx。10个x表示的是开始记录日志时的时间距1970年1月1日的秒数。日志每滚一次产生一个新文件,后缀值为前一个日志文件的后缀值加上172800。
2)Logrotate
系统提供了一个日志滚动工具Logrotate,与Crond配合可实现Apache日志滚动。
#vi /etc/ //查看文件
在文件中包含了/etc/logrotate.d目录,在该目录下,可查看httpd文件,内容如下:
#vi /etc/logrotate.d/httpd
Missingok表示如果日志文件丢失则重新生成新的日志文件。Notifempty表示如果日志文件中没有数据,则不滚动。Sharedscripts表示调用日志滚动函数。Postrotate表示日志滚动后,将重启Apache。
在/etc//文件夹下查看logrotate文件,内容如下:
由此看出,Logrotate工具由Crond每天运行一次从而实现日志滚动。
2. Webalizer日志统计分析工具
下载地址:/webalizer/
1)安装Webalizer
2)配置webalizer工具
(1) # vi /etc/
修改以下行:
LogFile /usr/local/apache/logs/access_log
用来指示配置文件的路径信息,webalizer会将该日志文件作为输入进行统计分析;
OutputDir /usr/local/apache/htdocs/usage
用来指示生成的统计报表的保存目录。
(2) # vi /etc/httpd/conf.d/
# cp /etc/httpd/conf.d/ /etc/httpd/conf/
(3) # crontab –e
添加以下行:
23 0 * * * ./usr/bin/webalizer -c /etc/
//按wq保存退出,该行表示每天23点进行当天的数据流量统计。
(4) # /usr/local/apachectl –k stop //重启apache
# /usr/local/apachectl –k start
(5) # /usr/local/bin/webalizer -c /etc/
3)测试
输入地址127.0.0.1/usage测试,如下:
五、配置PHP运行环境
为了让PHP支持GD库,我们需要先安装zlib, libpng, freetype,jpeg,GD等组件。
1. 安装zlib
下载地址:/
# tar
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib
# make
# make install
2. 安装libpng
下载地址: /pub/png/
# tar zxvf
# cd libpng-1.2.18
# cd scripts/
# mv ../makefile
# cd ..
# make
# make install
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3. 安装freetype
下载地址: /projects/freetype
# tar zxvf freetype-2.3.9 .
# cd freetype-2.3.9
# ./configure --prefix=/usr/local/freetype
# make
# make install
4. 安装Jpeg
下载地址:/files/
# tar zxvf
# cd jpeg-6b/
# mkdir /usr/local/libjpeg
# mkdir /usr/local/libjpeg/include
# mkdir /usr/local/libjpeg/bin
# mkdir /usr/local/libjpeg/lib
# mkdir /usr/local/libjpeg/man
# mkdir /usr/local/libjpeg/man/man1
# ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
# make
# make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库
5. 安装GD
下载地址:/Downloads
# tar zxvf
# cd gd-2.0.35
# ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg
# make
# make install
6. 编辑/etc/,添加以下几行到此文件中。
/usr/local/zlib/lib
/usr/local/freetype/lib
/usr/local/libjpeg/lib
/usr/local/libgd/lib
执行ldconfig命令,
#ldconfig
使用动态装入器装载找到共享库
7. 安装libxml
下载地址:ftp:///libxml2/
# tar zxvf
# cd libxml2-2.6.32
# ./configure
# make
# make install
8. 安装PHP
PHP下载地址:/
# tar zxvf
# cd php-5.2.9
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets
# make
# make install
# cp -recommended /usr/local/php/lib/
# ln –s /usr/local/php/bin/* /usr/local/bin/
9. 配置Apache
# vi /usr/local/apache/conf/
查找AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在其下加入 AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
修改DirectoryIndex 行,添加
修改为DirectoryIndex
10. 测试
# vi /usr/local/apache/htdocs/
添加以下行:
Phpinfo();
?>
# /usr/local/apache/bin/apachectl –k stop
#/usr/local/apache/bin/apachectl –k start
在浏览器中输入:192.168.99.9/进行测试。
OK,至此Apache的相关部署就已经讲完了。下一篇中,我们将讲解MySQL部署的相关内容,敬请关注。
版权声明:本文标题:Linux服务器部署系列之一—Apache篇 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703470733h452790.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论