2017.12.15 九周第二次课

11.6 MariaDB安装

输入图片说明

输入图片说明

解压

输入图片说明

输入图片说明

进入mariadb目录

输入图片说明

初始化

输入图片说明

拷贝配置文件

输入图片说明

输入图片说明

编辑配置文件和启动脚本

输入图片说明

下面这个是用来做mysql主从复制的

输入图片说明

修改配置在下面修改

输入图片说明

修改启动脚本

输入图片说明

输入图片说明

启动

输入图片说明

是否启动成功

输入图片说明

11.7/11.8/11.9 Apache安装

输入图片说明

简易官网下载2.4版本。实际上我们所说的Apache真正的名字是httpd。

下载解压t:

#cd 指定目录

#wget

#tar

配置编译参数:

#cd http-2.2.24

#vim INSTALL

#./configure \

--prefix=/usr/local/apache2 \

--with-included-apr \

--enable-so \

--enable-deflate=shared \

--enable-expires=shared \

--enable-rewrite=shared \

--with-pcre

输入图片说明

--prefix 指定安装到哪里,

--with-included-apr \

底层的一个模块,是数据可以跨平台使用。

--enable-so 表示启用DSO

DSO是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。

--enable-deflate=shared 表示共享的方式编译deflate,

既然可以动态共享当然也可以静态方式编译deflate模块。什么是动态和静态?apache编译安装完成后会生成一个核心的二进制可执行文件叫做 httpd,这个文件作为核心文件,提供服务时就是它在处理用户的请求,但是有一些功能,比如提到的expires就是配置静态文件、图片过期时间的,也就是说图片可以再用户浏览器的临时缓存目录中缓存多久。这些功能是作为httpd的一个扩展模块来工作的,那么这种扩展模块有两种存在的方式,一种是直接在编译的时候和httpd文件拧到一起,组成一个体积大的文件,这种叫做静态。另一种,扩展模块作为独立的文件存在,只有在使用这个模块时再去调用它,这种叫做动态共享。动态的好处是,核心文件httpd比较小,模块随时用随时加载,耗费内存小队较少。静态的优势,在服务启动时,会把所有模块加载,用到时很快执行,效率较高。

--enable-expires=shared 共享的方式编译 expires

--enable-rewrite=shared 共享的方式编译 rewrite

#yum install -y pcre pcre-devel apr apr-devel 【make之前安装这些包,避免出错】

#make

#echo $?

#make install

#echo $?

启动验证

# /usr/local/apache2/bin/apachectl start	【启动程序】

# ps aux |grep httpd		【验证是否启动】

# netstat -nlp			【检查监听端口是不是80】

常用选项:

-M 列出所有模块,主要是查看动态模块

# /usr/local/apache2/bin/apachectl -M 

core_module (static)

authn_file_module (static)

authn_default_module (static)

authz_host_module (static)

authz_groupfile_module (static)

authz_user_module (static)

authz_default_module (static)

auth_basic_module (static)

include_module (static)

filter_module (static)

log_config_module (static)

env_module (static)

setenvif_module (static)

version_module (static)

mpm_prefork_module (static)

http_module (static)

mime_module (static)

status_module (static)

autoindex_module (static)

asis_module (static)

cgi_module (static)

negotiation_module (static)

dir_module (static)

actions_module (static)

userdir_module (static)

alias_module (static)

so_module (static)

deflate_module (shared)

expires_module (shared)

rewrite_module (shared)

# ls /usr/local/apache2/modules/		【动态模块存放路径,下图绿色的为动态共享模块】 

输入图片说明

# ls /usr/local/apache2/bin/httpd 		【静态模块存放文件】

静态文件模块是将上述静态模块全部编译层进这个httpd文件内。

-L		【只列出静态模块】
# /usr/local/apache2/bin/apachectl -l

-t		【查看配置文件有没有错误】
# /usr/local/apache2/bin/apachectl -t

Syntax OK

配置文件路径 /usr/local/apache2/conf/httpd.conf

NOTE:

1、重新加载httpd有两种选项

# /usr/local/apache2/bin/apachectl restart

# /usr/local/apache2/bin/apachectl graceful

resatart这个选项要先把httpd进程杀死,再重新加载。

graceful,原来的进程还在,只是把配置文件重新加载

2、工作模式

#cd /usr/local/src/httpd-2.2.24

#./configure --help

--with-mpm=MPM Choose the process model for Apache to use.

                   				 MPM={beos|event|worker|prefork|mpmt_os2|winnt}

--with-mpm=MPM这个选项可以指定工作模式,常用的是 worker , prefork, event。

问题及错误

1、配置参数的时候出现错误

error: mod_deflate has been requested but can not be built due to prerequisite failures #yum install -y zlib-devel

2、为了避免在make的时候出现错误,所以最好是提前先安装好一些库文件:

yum install -y pcre pcre-devel apr apr-devel

3、只要apache正常的话,就能解析php是吧?若是php解析不对的话 是不是就是apache不正常了?

很大一部分原因是apache配置不对,有时候是因为php编译的有问题,没有自动产生libphp5.so, 还有时候是大家粗心写错了php文档,无法解析。

4、为什么这里不用yum工具安装apache等工具 而要用编译安装呢。

编译安装有个好处,和系统结合度更好,就好比量身订做衣服一样,yum安装就是买现成的,不一定合身。有时,我们为了快速部署可以考虑yum。另外下载好的包最好保留着。

5、httpd: Could not reliably determine the server's fully qualified domain name, using 172.28.150.4 for ServerName。我该怎么解决????

● 这个不是错误信息,你可以在你httpd.conf中,ServerName那一行前面的#删除掉。即,定义个ServerName就可以了。/usr/local/apache2/conf/httpd.conf

6、如果在生产环境安装apache的时候./configure也是这么几个选项吗?

信铭哥,得永生。

7、apache为啥不用把解压完的数据移动到/usr/local/apache?为什么安装apache没有用二进制免编译的包?

mysql用二进制包是一个特例。 如果apache想用,那就直接yum install -y httpd

8、分享一下错误:libtool: install: error: cannot install `libaprutil-1.la' to a directory not ending in /usr/local/apache/lib

出现这种错误有可能是以前安装过Apache没卸载干净,可以make clean一下,然后删除解压的源码包重新解压编译就可解决

9、如果编辑不指定模块是动态共享,是不是会把apache所有支持的模块都以静态的方式编译到时/bin/httpd 中?如果选择动态,是不是我想把那个模块编译成动态,就编译那个模块?

在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态。

10、 linux 下httpd服务开机启动

方法一: cp /usr/local/apache/bin/apachectl /etc/init.d/httpd vi /etc/init.d/httpd

在#!/bin/sh后面加入下面两行

#chkconfig:345 85 15

#description: Start and stops the Apache HTTP Server.

然后 chmod +x /etc/rc.d/init.d/httpd chkconfig --add httpd

然后可以用setup命令进入服务设置,设置为开机启动

方法二: 将服务加到/etc/rc.d/rc.local中 vi /etc/rc.d/rc.local 添加以下内容 /usr/local/apache/bin/apachectl start

11、Apache服务器出现错误500有哪些可能呢?单独建立的静态1.php能正常解析和显示! 出现500就去看错误日志吧。

500往往是php的代码问题,如果你只有apache还没有跑php,那你就去看apache的错误日志。

12、用apache自定义headers的用途是什么。经过测试可以在命令行下显示我们自定义的语句。但是在浏览器中却没显示有关我们自定义的header。

有时候会去看header信息。比如,我们用100台服务器跑了一个网站,假如一台出了问题,我们可以通过header信息区分具体的web服务器

转载于:https://my.oschina.net/u/3461300/blog/1590678

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值