Apache

Apacche web服务器(lamp架构)

http超文本协议

统一资源标识符 URI

统一资源定位符 URL

其实包含了这些东西

http://www.sina.com.cn:80/admin/index.php

ssl 安全套接字(声明一个协议)

http:// 

域名

www.sina.com.cn

端口

:80

http对应80端口,https对应443端口

网址目录和文件名

/admin/index.php

apache三种工作模式

httpd –V 

即可查看工作模式,但需先下载此命令 

yum install httpd -y

prefork:一个进程处理一个用户请求

  比如说一千个用户访问我的网站,那我就要有一千个进程来处理用户的请求,这个时候就带来了一个很大的问题,每个进程就消耗的系统资源多,如果说你的访问量非常大的话,系统资源可能会承受不住,它并不擅长高并发请求,什么是高并发请求,就是在一定时间内,你单台服务器能够承载的访问量。

Worker:一个进程生成了多个线程(比进程利用的系统资源少),每个线程里面都有它的子进程。适合在高并发下使用,但线程安全问题比较突出。

Event:改善了worker工作模式,他有单独的工作模块。

Apache基本信息

apache为企业中常用的web服务,用来提供http://(超文本传输协议)

主配置目录

/etc/httpd/conf

主配置文件

/etc/httpd/conf/http.conf

子配置目录

/etc/httpd/conf.d

子配置文件

/etc/httpd/conf.d/*.conf

默认发布目录,网站根目录,就是说你想把你这个网站的东西发布出去给谁看,你要把你这个包全都放到这个目录下面,别人才能看得到。

/var/www/html/

默认发布文件

index.html

默认端口:80

网站状态返回码

200: 代表上传成功

304: 代表缓存

403: 代表没有权限

404: 代表你网站根目录的东西定义错了

500: 代表服务器内部错误

503: 代表服务器暂时不可用

什么是LAMP 就是 Linux Apache Mysql / MaraiDB PHP

常见的apache架构:lamp、lnmp、lnmmp、lammp

Apache和mysql使用的是CGI协议进行通信,php和mysql使用的是php_mysql协议进行通信。Apache不能直接和mysql直接通信。

编译安装apache

先安装apache依赖包

yum install gcc gcc-c++ ncurses-deve  ncurses pcre pcre-devel openssl-devel zlib-devel -y

第一步

将三个压缩包包传至root用户家目录,apr-1.5.2.tar  apr-util-1.5.4.tar httpd.2.4.20.tar

第二步

将三个压缩包解压至当前路径下

第三步

先编译apr-1.5.2 cd apr-1.5.2

列出当前路径下的所有文件

首先找configure这个文件

第四步

./configure --prefix=/usr/local/apr

这步是检查依赖关系并进行安装,如果依赖关系解决,会进行下一步,如果依赖关系没有解决,会报错要求解决依赖关系。–prefix是指定安装路径,它默认的安装路径是/usr/local。

第五步:

这一步会报错

看到C compiler是缺少gcc编译器,直接下载即可。

第六步

下载完后再进行编译即可。

第七步

编译的意思

make

第八步

安装的意思

make install 

第九步

返回至root用户家目录

cd apr-util-1.5.

第十步

列出当前路径下的所有文件,找configure这个文件

第十一步

./configure --with-apr =/usr/local/apr  --prefix=/usr/local/apr-util

第十二步

make && make install

第十三步

返回至root用户家目录

cd httpd-2.4.20

第十四步

列出当前路径下的所有文件,找configure这个文件

第十五步

./configure --prefix=/usr/local/httpd2.4 \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util \

--enable-cache \

--enable-so \

--enable-ssl \

--enable-static-ab \

--with-mpm=worker \

第十六步

会出现一个错误,缺少两个安装包

yum install pcre pcre-devel -y

第十七步:下载完两个两个安装包在进行上步安装,还会报错

yum install openssl-devel -y

第十八步

make && make install    

第十九步

编译安装的要定义启动和停止命令

停止命令的一种方法

先使用

ps aux | grep httpd 

查看这个程序的pid

再用

kill -9

结束掉

启动的方法

进入

/usr/local/httpd2.4/bin

这个目录里面的apachectl就是命令

启动:前提是在当前目录下启动

./apachectl star

停止:在当前目录下停止

./apachectl stop

我不能每次启动跟停止都进入做个目录执行这个命令,那么我们就要有其他的办法。

首先复制

/usr/local/httpd2.4/bin

这个路径

而后进入这个目录

/etc/profile.d

这个目录里有很多的.sh结尾的文件,我们只要定义一个任意开头,.sh结尾文件,写入如下内容:

export   PATH=/usr/local/httpd2.4/bin:$PATH

而后加载

source /etc/profile.d/刚才编辑文件名

编辑配置文件(yum安装)

打开主配置文件

vim /etc/httpd/conf/httpd.conf
ServerRoot “/etc/httpd”:服务器目录

Listen 80 :监听80端口

<Directory />

        allowOveride none
       
        Require all denied

</Directory>

#这里定义了“/”就是网站根目录

DocumentRoot “/var/www/html”:定义了网站根目录的路径

DirectoryIndex index.html #把index.html写在了这里,访问网站的时候就不用写index.html。

Customlog "log/access_log" #日志 路径:/var/log/httpd 

yum 下载的apache 

子配置文件

/etc/httpd/conf.d

配置文件里面有一个welcome.conf就是testing123….这个界面的配置文件,如何把它搞掉,注释掉8至22行即可不显测试页面。他会显示这个界面:

Index of /
    
    Name Last modified Size Description

如何改写这个界面,cd /var/www/html,vim index.html,内容写你想说的话即可。

Not Found

The requested URL /jadjal was not found on this server     #出现这个图片如何改写,就是说找不到网页的时候。
开主配置文件

#ErrorDocument 500 "The server made a boo boo."

#ErrorDocument 400 /missing.html

#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402  http://www/example.com/subscription_info.html

将注释取消掉,将500改成404即可。
#ErroDocument 404 /missing.html     定义成文件,/里的斜杠代表网站根目录。

#ErroDocument 404 https://www.cnblogs.com/shuaiyin/ 跳转网页

重定向

Redirect permanent /foo http://www.example.com/bar

Redirect permanent /foo 要跳转的网址

  你虽然在我这台服务器上搜foo的时候,就会自动跳转到后面的网址上去,虽然是在我这个网址上的请求,但我把请求分发到了另一台服务器上去,给你提供服务。实现多台服务器为你提供服务。 

Ip/pv/uv

IP就是独立IP数,其实并不精确,IPV4是有限的

Pv页面被刷新的次数

Uv一个用户就是一个uv

基于端口创建虚拟主机

编辑/etc/httpd/conf/httpd.conf这个文件,在最后添加两台虚拟主机:

<VirtualHost  *:81>
DocumentRoot /var/www/ken1
DirectoryIndex index.html
</VirtualHost>
<VirtualHost  *:82>
DocumentRoot /var/www/ken2
DirectoryIndex index.html
</VirtualHost>

一对virtuahost就是一台虚拟主机,/表示结尾,*代表任意IP,

而后将81和82两个端口添加上去

此时用一个命令,httpd –t 来检查编辑的文本有没有错,从而进行排错。

记住要给测试文件:

echo "ken1" > /var/www/ken1/index.html

echo
"ken2" > /var/www/ken2/index.html
echo
"ken3" > /var/www/ken3/index.html

而后访问ip加端口号即可。

基于域名创建虚拟主机

编辑/etc/httpd/conf/httpd.conf这个文件,在最后添加,
两台虚拟主机

<VirtualHost 192.168.64.5>

DocumentRoot /var/www/html

ServerName www.ken1.com

DirectoryIndex  index.html

</VirtualHost >

  而后重启服务,但还是访问不到,需要将IP跟域名添加到/etc/hosts这个文件里即可,但这也是只能linux系统可以访问,不能windows系统访问,需要打开我的电脑,c盘,windows,system32,drivers,etc,里面有个hosts文件,把它剪切到桌面上修改,打开后将IP跟域名添加进去即可,然后在剪切回去即可。

curl 域名 

也可以直接访问

上线静态网站

先传压缩包

下载unzip

yum install unzip –y

上线网站需要把包放到网站的根目录

而后把你里面的index文件删除,把game文件放到外面。

打开网站时记得加后缀。后缀是开发包。

上线动态网站

第一步

yum install php php-mysql mariadb-server -y

第二步

把之前网站根目录下的包删完

第三步

把wordpress放到网站根目录下,并把里面的内容全部拿到外面来

第四步

cp wp-config-sample.php  wp-config.php

第五步

vim wp-config.php 

第六步

启动数据库

systemctl start mariadb

第七步

mysql –uroot

第八步

create database 之前配置文件定义的用户名;

第九步

grant all on *.*  to 用户名@“localhost”  identified by “密码”;

第十步

flush privileges; 

第十一步

vim /etc/httpd/con/httpd.conf

第十二步

<VirtualHost 192.168.64.5>

DocumentRoot /var/www/html

ServerName www.ken1.com

DirectoryIndex index.php index.html

<VirtualHost 192.168.64.5>

第十三步

systemctl restart httpd

第十四步

访问网站即可

增加步骤(编译安装apache上线动态需要下列步骤):

打开配置文件

vim /usr/local/httpd2.4/conf/httpd.conf

添加

AddType application/x-httpd-php .php

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

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/httpd2.4/htdocs/

把代理模块开启

搜索proxy

把mod_proxy.so和mod_proxy. fcgi. so的注释取消掉

而后下载

yum install php-fpm -y

添加源 7yum.repo

启动php-fpm 

systemctl start php-fpm

怎么统计哪些IP频繁访问我

/var/log/httpd/access_log  #在这个日志里怎么把IP筛选出来

cat /var/log/httpd/access_log | awk -F "  +" '{print $1}' | grep -E -v ":+" | sort | uniq -c
posted @ 2019-05-23 11:37  冷漠铁锤王富贵  阅读(436)  评论(0编辑  收藏  举报