源码部署Apache和shell脚本安装_shell脚本安装web服务篇

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

cd httpd-2.2.31
./configure --prefix=/usr/local/apache2.2 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrtie
Make && makeinstall

备注含义:

–enable-deflate \压缩
–enable-expires \ -缓存内容过期时间
-enable-headers \ 激活http头模块
–enable-modules=most 激活大多数模块
–with-mpm=worker \ 在worker模式下工作,该模式支持的并发会大点
/usr/local/apache2.2/bin/apachectl -l 查看当前加载的模块
/usr/local/apache2.2/bin/apachectl graceful 平滑重启

三、目录结构

1.bin
在这里插入图片描述

Ab 压力测试的命令

Apxs 扩展添加编译模块时候的工作,在进行DSO方式编译模块时用到
Htpasswd 一打开站点就输入密码
Httpd appachectl执行的时候,就是调用的httpd
Rotatelogs apache自带的日志轮询命令,也可以用cronolog代替

2.Conf
在这里插入图片描述
Extra是主配置文件的一个子目录
在这里插入图片描述

这个是调整网站主页的次序。可以在index前面插入其他页面

3.Logs
在这里插入图片描述
Access_log 用户访问网站的信息记录
Http.pid pid文件

四、主配置文件说明:

grep -Ev “#|^$” httpd.conf >test.txt

9 ServerAdmin you@example.com 管理员邮箱
10DocumentRoot “/usr/local/apache2.2/htdocs” 默认站点目录文件夹
11 根目录
12 Options FollowSymLinks 可以带符号链接
13 AllowOverride None 禁止一些功能
14 Order deny,allow 不让任何人访问该目录
15 Deny from all
16

新创建网站的配置

17 <Directory “/usr/local/apache2.2/htdocs”>
18 Options Indexes FollowSymLinks 把index 去掉就是不对外

展示目录结构

19 AllowOverride None
20 Order allow,deny
21 Allow from all
22

造成403的错误,权限不够,许可不够,还有文件格式不对

23
24 DirectoryIndex index.html 配置更换首页
25

33
34 LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
35 LogFormat “%h %l %u %t “%r” %>s %b” common
36
37 LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i” %I %O” combinedio
38
39 CustomLog “logs/access_log” common
40

访问日志的类型。。用户访问网站所记录的内容

五:extra下的配置文件

重要的两个:http-vhosts.conf、http-mpm.conf 还要需要了解的httpd-default.conf
在这里插入图片描述
http-mpm.conf
根据编译的时候指定的模式work模式来看,如果编译不制定work,那默认就是prefork模式
在这里插入图片描述
Maxclients 最大并发数
httpd-default.conf
在这里插入图片描述
Timeout :等待超时300秒
Keepalive on 保持连接
MaxKeepAliveRequests 100 最大保持连接数100
KeepAliveTimeout 5 在同一个连接上等待下一个请求的时间
在这里插入图片描述
.htaccess 可从 AllowOverride None 处开启

ServerTokens Full
ServerSignature On 这2个参数可以控制apache显示版本号

一、apache虚拟主机的分类和生产场景介绍:

虚拟主机:部署多个站点,每个站点需要不同的域名和站点目录,或者不用的ip和端口
简单的说就是1个http服务部署多个网站。、

虚拟主机分类:基于域名的虚拟主机
基于端口的
基于ip的
用的最多的是基于域名的,另外2个几乎不用

需求:配置三个站点:

www.test.org /var/html/www
Blog.test.org /var/html/blog
Bbs.test.org /var/html/bbs
Vim conf/extra/http-vhosts.conf

在这里插入图片描述
然后再vim conf/httpd.conf

Include conf/extra/httpd-vhosts.conf去除前面的#
Include conf/extra/httpd-mpm.conf 去除前面的#
ServerName localhost:80 去除前面的#

vim conf/httpd.conf
添加行尾
<Directory “/var”>
AllowOverride None
Options None
Order allow,deny
Allow from all

基于端口的多网站可以添加listen,主配置文件和虚拟机配置都可以
添加 listen 8000
Listen 8080

二、apache 日志轮询cronolog实战

1.apache的日志主要有两种:
通用格式日志格式 (Common log format)
组合日志格式 (Combined log format)工作中的用的多
Vim conf/httpd.con 把common改成combined
在这里插入图片描述

Apache轮询的工具有两种:

Cronolog:主要还是用这个

tar xvf cronolog-1.6.2.tar.gz cd cronolog-1.6.2
./configure
Make makeinstall

CustomLog “|/usr/local/sbin/cronolog /usr/local/apache2.2/logs/bbs_access_www_%Y%m%d.log” combined

备份策略

0 1 * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1 #每天一点钟同步时间
30 1 * * * /bin/tar -zcf /website/logs/access_www_date -d yesterday +%Y%m%d .tar.gz /website/logs/access_www_date -d yesterday +%Y%m%d.log#每天1点30分打包前一天的日志文件
0 2 * * * /usr/bin/find /website/logs -name access_www_*.tar.gz -mtime +15 -exec rm -rf {} ; #每天2点删除15天前的打包日志文件
awk ‘{print $1}’ access_bbs_20160901.log | sort |uniq -c| sort -rn -k1

三、php详解

yum install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel openssl-devel libxslt-devel -y
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install

./configure
–prefix=/usr/local/php
–with-apxs2=/usr/local/apache2.2/bin/apxs
–with-mysql=/usr/local/mysql
–with-xmlrpc
–with-openssl
–with-zlib
–with-freetype-dir
–with-gd
–with-jpeg-dir
–with-png-dir
–with-iconv=/usr/local/libiconv
–enable-short-tags
–enable-sockets
–enable-zend-multibyte
–enable-soap
–enable-mbstring
–enable-static
–enable-gd-native-ttf
–with-curl
–with-xsl
–enable-ftp
–with-libxml-dir
Make && make install

在这里插入图片描述
发现apache配置文件插入php动态模块,遇到动态处理就使用该模块

Apache连接php

1.Vim conf/http.conf
331 gg 然后增加两行

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

2.改用户和用户组:daemon为其他,比如www
3.添加index.php
在这里插入图片描述

Cd php-5.3.27/
cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
vim /usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024

测试php连接数据库:

<?php //$link\_id=mysql\_connect('主机名','用户','密码'); $link_id=mysql\_connect('localhost','root','oldboy123') or mysql\_error(); if($link_id){ echo "mysql successful by oldboy !"; }else{ echo mysql\_error(); } ?>

Apache基于多域名同一端口同一IP配置

1)编辑httpd.conf主配置文件,打开
Include conf/extra/httpd-vhosts.conf选项,文件代码:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Apache基于多域名同一端口同一IP配置

1)编辑httpd.conf主配置文件,打开
Include conf/extra/httpd-vhosts.conf选项,文件代码:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-o7Vi6wIM-1713585702751)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值