Apacche web服务器(lamp架构)
http超文本协议
统一资源标识符 URI
统一资源定位符 URL
其实包含了这些东西
ssl 安全套接字(声明一个协议)
http://
域名
端口
: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