馬哥教育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.www58058.com/48998

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

相關推薦

  • shell腳本一鍵安裝二進制Apache

    安裝背景:用的一臺最小化安裝的centos6。 編譯安裝安裝的必備安裝gcc,gcc-c++ 安裝包arp,arp-util以及pcre的壓縮包已經傳到七牛,沒有通過官網下載。太慢。 apache是通過官網下載的,所以下載比較慢,需要的話更改下地址 不足,只按照正常流程寫,未做任何異常判斷處理 #/bin/bash #一鍵安裝Apache #安裝GCC ec…

    Linux干貨 2016-07-10
  • 馬哥教育網絡班21期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp [root@localhost tmp]# vim rc.sysin…

    Linux干貨 2016-08-02
  • Linux進程管理

    內核的功能:     進程管理 文件系統 網絡功能 內存管理 驅動程序 安全功能等     rocess:運行中的程序的一個副本,是被載入內存的一個指令集合      進程ID(Process ID,PID)號碼被用來標記各個進程 UID,GID,和…

    Linux干貨 2016-09-12
  • keepalive

    HA Cluster: 集群類型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP SPoF: Single Point of Failure 系統可用性的公式:A=MTBF/(MTBF+MTTR)(0,1), 95%幾個9(指標): 99%, …, 99.999%,99.9999%;99%:…

    Linux干貨 2017-05-22
  • N24 W3 博客作業

    第三周 "   1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who | cut –d’ ‘ –f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。 [root@localhost ~]# id `who | tail -n 1 | cut …

    Linux干貨 2016-11-14
  • DNS配置

     DNS配置 基本的配置準備 1.安裝bind 2.開啟named服務 一、正向解析庫 1、修改/etc/named.conf配置文件 vim /etc/named.conf 修改如下行 listen-on port 53 { 10.1.44.2; } allow-query     { any; } recursion no;…

    Linux干貨 2016-10-09

評論列表(1條)

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

    統一回復下,看得出來很認真的在做練習了,寫的也很好,即使一個沒有經驗的人也可以按照你的步驟搭建出來

欧美性久久久久