马哥教育21期网络班—第12周课程+练习—-LAMP练习

1、请描述一次完整的http请求处理过程;

http访问过程.jpeg

(1) 建立或处理连接:接收请求或拒绝请求
		(2) 接收请求:
			接收来自于网络的请求报文中对某资源的一次请求的过程;
			持久连接:接收到请求不会断开这个请求
			非持久连接:一个连接请求断开一次
			并发访问响应模型(Web I/O):
				单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应;
				多进程I/O结构:并行启动多个进程,每个进程响应一个请求;
				10000个进程--->服务器只能响应1000--->处理之后再响应
				复用I/O结构:一个进程响应n个请求;
					能够处理多路IO的连接器,一个进程响应多个用户请求
					多线程模型:一个进程生成N个线程,每个线程响应一个用户请求;
					事件驱动:event-driven
					在服务器内部基于事件回调的机制,连接IO的追踪。
					来完成客户端请求。
				复用的多进程I/O结构:启动多个(m)进程,每个进程响应n个请求;

		(3) 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

			元数据:请求报文首部
				<method> <URL> <VERSION>
				Host: www.magedu.com   请求的主机名称
				Connection:连接使用的方式

		(4) 访问资源:获取请求报文中请求的资源

			web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源;这些资源放置于本地文件系统某路径下,此路径通常称为DocRoot

			/var/www/html/
				images/1.jpg
			http://www.magedu.com/images/1.jpg
			web服务器资源路径映射方式:
				(a) docroot:直接映射
				(b) alias:路径别名
				(c) 虚拟主机docroot
				(d) 用户家目录docroot
		(5) 构建响应报文
			资源的MIME类型:
				显式分类
				魔法分类:自行扫描
				协商分类
			URL重定向:
				web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;
			重定向:永久重定向、临时重定向
		(6) 发送响应报文  TCP双向通道
		(7) 记录日志

2、httpd所支持的处理模型有哪些,他们的分别使用于哪些环境。

QQ截图20160924231847.png

prefork:多进程模型,每个进程响应一个请求;
一个主进程:负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求;即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达;最大不会超过1024个;最小空闲多少,并发响应多少
prefork:最大不能超过1024个并发请求,高性能web服务器,这个差了一个数量级。10倍 c10k,这种模式很稳定,一个进程崩溃,不会影响到其他进程。---->问的性要求高的
worker:多线程模型,每个线程响应一个请求;		一个主进程:生成多个子进程,每个子进程负责生个多个线程,每个线程响应一个请求;
m进程,n线程:m*n----->	并发量稍微高点的
event:事件驱动模型,每个线程响应n个请求;		一个主进程:生成m个子进程,每个进程直接n个请求;
m*n----->高并发--->

3、源码编译安装LAMP环境(基于wordpress程序),并写出详细的安装、配置、测试过程。

LAMP----->2.4 模块实现
yum groupinstall "Development Tools" "Server Platform Development"------>安装包组1、编译安装Apache
httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级
(1)、编译安装apr
tar xf apr-1.5.0.tar.bz2cd apr-1.5.0./configure --prefix=/usr/local/apr
make && make install
(2)、编译安装apr-util
tar xf apr-util-1.5.3.tar.bz2cd apr-util-1.5.3./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
(3)、编译安装httpd
groupadd -r apache
useradd -r -g apache apahce
yum -y install pcre-devel ---->安装pcre-devel支持
tar xf httpd-2.4.9.tar.bz2cd httpd-2.4.9./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --withzlib
--with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpmsshared=
all --with-mpm=event
make && make install3、修改httpd的主配置文件,设置其Pid文件的路径
编辑vim /etc/httpd24/httpd.conf,添加如下行即可:
PidFile "/var/run/httpd/httpd24.pid"提供httpd 运行脚本cd /etc/rc.d/init.d/
cp httpd httpd24
vim httpd24
apachectl=/usr/local/apache/bin/apachectl ---------------->改的
httpd=${HTTPD-/usr/local/apache/bin/httpd} ---->查看pid路径--->/usr/local/apache/logs/httpd.pid
pidfile=${PIDFILE-/var/run/httpd/httpd24.pid}lockfile=${LOCKFILE-/var/lock/subsys/httpd24}chkconfig --add httpd24
chkconfig --list httpd24
httpd24 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
httpd -t ------------>检查语法hash -r --------------->清除缓存
vim /etc/profile.d/httpd.shexport PATH=/usr/local/apache/bin$PATH-------------->定义PATH读取
. /etc/profile.d/httpd.sh ------------->重读配置文件
编辑/etc/man.config,添加如下行即可
MANPATH /usr/local/apache/man
库文件和头文件的导出
输出apche的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
ln -sv /usr/local/apache/include /usr/include/apache
输出mysql的库文件给系统库查找路径:echo '/usr/sbin/httpd' > /etc/ld.so.conf.d/httpd24.conf
而后让系统重新载入系统库:
ldconfig
service httpd24 start
ss -tnl ---------------->查看80端口是否被监听到
ps aux | grep httpd----->查看工作模式
vim /etc/httpd24/httpd.conf ----------->配置文件
LoadModule deflate_module modules/mod_deflate.so----------->启用2、编译安装mariadb
tar xf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local准备数据目录
mkdir -pv /mydata/data------>创建数据存放目录
配置mariadb----->
groupadd -r -g 306 mysql
useradd -r -g 306 -u 306 mysqlcd /usr/local/
ln -sv mariadb-5.5.36-linux-x86_64 mysqlcd /usr/local/mysql
chown -R root:mysql ./*
scripts/mysql_install_db --datadir=/mydata/data --user=mysql
cp supper-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld --->添加
chkconfig --list mysqld --->查看
mkdir /etc/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
添加三个选项:
datadir = /mydata/data
innodb_file_per_table = on
skip_name_resolve = on
service mysqld start
/usr/local/mysql/bin/mysql_secure_installation------------>安全初始化
mysql优化
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man7、输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
ln -sv /usr/local/mysql/include /usr/include/mysql8、输出mysql的库文件给系统库查找路径:echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
而后让系统重新载入系统库:
ldconfig9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。
vim /etc/profile.d/mysql.shexport PATH=/usr/local/mysql/bin:$PATH. /etc/profile.d/mysql.sh
安装php
解决依赖关系
yum -y groupinstall "Desktop Platform Development"yum -y install bzip2-devel libmcrypt-devel libxml2-devel2、编译安装php-php-5.4.26php-5.4.26.tar.bz2cd php-5.4.26./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --withmysqli=/
usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --
with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-configfile-
path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
make
make testmake intall
为php提供配置文件:
cp php.ini-production /etc/php.ini3、 编辑apache配置文件httpd.conf,以apache支持php# vim /etc/httpd24/httpd.conf1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps2、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
启动httpd服务
测试页面index.php示例如下:
<?php$link = mysql_connect('127.0.0.1','root','mageedu');if ($link)echo "Success...";elseecho "Failure...";
phpinfo();
mysql_close();
?>
用 wordpress测试
unzip wordpress-4.5.3-zh_CN.zip
cp -rf wordpress /usr/local/apache/htdocs/cd /usr/local/apache/htdocs/wordpress
cp wp-config-sample.php wp-config.php
vim wp-config.php
defile ('DB_NAME', 'wpdb');
defile ('DB_USER', 'wpuser');
defile ('DB_PASSWORD', 'wppword');
连上MySQL数据库
mysql -uroot -p
GRANT ALL ON wpdb.* TO 'wpuser'@'localhost' IDENTIFIED BY 'wppword';
CREATE DATABASE wpdb;
FLUSH PRIVILEGES;
mysql -uwpuser -pwppword
SHOW DATABASES;
http://192.168.159.128/wordpress
访问---->安装

2.4模块.png

2.4模块2.png

模块www.png

1、编译安装Apache
httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级
(1)、编译安装apr
tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
 ./configure --prefix=/usr/local/apr make && make install(2)、编译安装apr-util
tar xf apr-util-1.5.3.tar.bz2 
cd apr-util-1.5.3./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
 make && make install(3)、编译安装httpd
groupadd -r apache
useradd -r -g apache apahce
yum -y install pcre-devel ---->安装pcre-devel支持tar xf httpd-2.4.9.tar.bz2
cd httpd-2.4.9./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event编译的时候报这个错误------------------------------------------------------------------------------------------------------------checking whether to enable mod_ssl… configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
yum install openssl-devel----->解决make && make install3、修改httpd的主配置文件,设置其Pid文件的路径
编辑vim /etc/httpd24/httpd.conf,添加如下行即可:
PidFile  "/var/run/httpd/httpd24.pid"提供httpd 运行脚本
 cd /etc/rc.d/init.d/
 cp httpd httpd24 
 vim httpd24 
 apachectl=/usr/local/apache/bin/apachectl ---------------->改的
 httpd=${HTTPD-/usr/local/apache/bin/httpd}
 pidfile=${PIDFILE-/var/run/httpd/httpd24.pid}
 lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
 chkconfig --add httpd24 
 chkconfig --list httpd24
 httpd24        	0:关闭	1:关闭	2:关闭	3:关闭	4:关闭	5:关闭	6:关闭
 httpd -t ------------>检查语法
 hash -r --------------->清除缓存
 vim /etc/profile.d/httpd.sh export PATH=/usr/local/apache/bin$PATH-------------->定义PATH读取
 . /etc/profile.d/httpd.sh ------------->重读配置文件
  service httpd24 start
 ss -tnl ---------------->查看80端口是否被监听到
 ps aux | grep httpd----->查看工作模式
 vim /etc/httpd24/httpd.conf ----------->配置文件
 LoadModule deflate_module modules/mod_deflate.so----------->启用
 vim /etc/httpd24/httpd.conf
 #DocumentRoot "/usr/local/apache/htdocs"
 vim /etc/httpd24/extra/httpd-vhosts.conf 
<192.168.159.128 *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/web/vhost/www1/"
    ServerName www1.stuX.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/var/log/httpd/www1.err"
    CustomLog "/var/log/httpd/www1.access" common
<Directory "/web/vhost/www1">
 AllowOverride None
    Options None
    Require all granted
</Directory>
</VirtualHost>

<192.168.159.128 *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/web/vhosts/www2"
    ServerName www2.stuX.com
    ErrorLog "/var/log/httpd/www2.err"
    CustomLog "/var/log/httpd/www2.access" common
<Directory "/web/vhost/www2">
 AllowOverride None
    Options None
    Require all granted
</Directory>
</VirtualHost>
mkdir -pv /web/vhost/{www1,www2}
echo "www1.site" > /web/vhost/www1/index.html && echo "www2.site" > /web/vhost/www2/index.html

[root@centos ~]# curl www1.stuX.com
www1.site
[root@centos ~]# curl www2.stuX.com
www2.site
vim /etc/httpd24/extra/httpd-vhosts.conf
vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost 192.168.159.128 *:80>
DocumentRoot "/web/vhost/www1/"ServerName www1.stuX.com
ErrorLog "/var/log/httpd/www1.err"CustomLog "/var/log/httpd/www1.access" common
<Directory "/web/vhost/www1">
AllowOverride NoneOptions NoneRequire all granted
</Directory>
<Location /server-status>
AuthType Basic
AuthName "Only for Admin"AuthUserFile "/usr/local/apache/.htpasswd"Require valid-userSetHandler server-statusAllowOverride NoneOptions None</Location
</VirtualHost>
./htpasswd -m -c /usr/local/apache/.htpasswd admin

模块验证.png

原创文章,作者:N21_ Dominic,如若转载,请注明出处:http://www.178linux.com/48998

(0)
N21_ DominicN21_ Dominic
上一篇 2016-09-26
下一篇 2016-09-26

相关推荐

  • 进程工具总结

    一、top命令         top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处…

    Linux干货 2016-09-12
  • 计算机硬件及Linux简介

    计算机的组成 计算机主要分成五大部分:输入单元、控制单元、运算单元、存储器、输出单元。 其中,中央处理器(CPU)是一个具有特定功能的芯片,含有微指令集。包括控制单元与运算单元。 控制单元对程序进行控制,调度程序、数据、地址。运算单元负责对数据的各种逻辑运算和数字运算。 计算机的功能 包括但不限于 驱动程序:字面意思。 进程管理:计算机内部能够通过分配资源,…

    Linux干货 2016-10-30
  • What Is So Fascinating About Marijuana News?

    What Is So Fascinating About Marijuana News? The Meaning of Marijuana News If you’re against using Cannabis test.com as you do not need to smoke you’re misinformed. As …

    Linux干货 2025-05-07
  • Linux编译安装

    Linux编译安装    Linux上真正可以执行的文件是二进制文件,这些可以执行的二进制文件是哪儿来的呢?首先,必须要写程序的源代码,然后,由编译程序将程序的源代码 编译成二进制形式。源代码是由程序员编写的,使用特定的程序语言,如C,C++,Java,Python。但是机器看不懂这些语言,所以要使用编译程序将这些语言编写的源代码编译成机…

    Linux干货 2016-08-24
  • N26 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。    who | cut -d" " -f1 | sort -u    2、取出最后登录到当前系统的用户的相关信息。    who | tail -1 3、取…

    Linux干货 2017-02-16
  • 8月9日vim作业

    复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log; :%s@/etc/sysconfig@/var/log@ 删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号 :%s@^#\([[:spac…

    Linux干货 2016-08-10

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-27 09:29

    统一回复下,看得出来很认真的在做练习了,写的也很好,即使一个没有经验的人也可以按照你的步骤搭建出来