馬哥教育網絡21期+第十二周練習博客下

6、在LAMP架構中,請分別以php編譯成httpd模塊形式和php以fpm工作為獨立守護進程的方式來支持httpd,列出詳細的過程。
# LAMP編譯安裝 #
LAMP編譯安裝,目前CentOS7操作系統上可以使用yum進行安裝,在CentOS6上需要編譯安裝
CentOS6 http-2.2主要安裝的,編譯安裝LAMP需要http-2.4進行編譯安裝
    linux上需要準備編譯安裝的環境:
    包組(CentOS 6):
    Server Platform Development
    Development Tools
http-2.4需要較新版本的apr和apr-util
1,編譯安裝apr
需要下載:apr-1.5.2 (1).tar.bz2,apr-util-1.5.4.tar.bz2

~]# tar xf apr-1.5.2\ \(1\).tar.bz2 
~]# cd apr-1.5.2
]# ./configure --prefix=/usr/local/apr
]# make && make install
編譯安裝apr-util-1.5.4.tar.bz2
]# tar xf apr-util-1.5.4.tar.bz2
]# cd apr-util-1.5.4
]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr(告知程序依據那個apr進行編譯安裝)
]# make && make install
好了這里就安裝好了apr和apr-util了

安裝http-2.4
1,httpd-2.4編譯安裝需要依賴pcre-devel軟件包,使用yum install進行安裝
]# tar xf httpd-2.4.23.tar.bz2 
]# cd httpd-2.4.23
]# ./configure --prefix=/usr/local/apache(程序安裝路徑) --sysconfdir=/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
]# make && make install
配置服務類腳本
]# cd /etc/rc.d/init.d/
]# cp httpd httpd24
編輯httpd24的配置文件修改文件路徑
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd24.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
將服務加入
]# chkconfig --add httpd24
]# chkconfig --list httpd24
httpd24         0:off   1:off   2:off   3:off   4:off   5:off   6:off
將httpd命令定義到新的httpd24下
]# . /etc/profile.d/httpd.sh 
]# cat /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
重讀配置文件
]# . /etc/profile.d/httpd.sh
]# hash
hits    command
 1  /usr/local/apache/bin/httpd


編譯安裝mariadb
先將下載好的軟件包進行解壓縮
]# tar xf mariadb-5.5.32-linux-x86_64.tar.gz 
]# cp mariadb-5.5.32-linux-x86_64 /usr/local/ -a
創建連接為mysql
]# ln -sv mariadb-5.5.32-linux-x86_64/ mysql
創建屬組:]# groupadd -r -g 306 mysql
創建用戶:]# useradd -r -g 306 -u 306 mysql
修改此文件中的屬主為root,屬組為mysql
]# chown root:mysql ./*
新建磁盤分區用于數據庫的使用
這里使用的邏輯磁盤分區的方法
使用fdisk /dev/sda 創建一個20G的磁盤空間
使用t將磁盤修改類型為8e
先建立pv
]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
建立vg
]# vgs
VG       #PV #LV #SN Attr   VSize  VFree
VolGroup   1   3   0 wz--n- 59.99g    0 
[root@localhost mysql]# vgcreate myvg /dev/sda3 
Volume group "myvg" successfully created
創建lv
]# lvcreate -L 10G -n mydata myvg
Logical volume "mydata" created.
這里使用xfs文件系統
先使用yum install xfsprogs
加載模塊文件
]# modprobe xfs
]# modinfo xfs
filename:       /lib/modules/2.6.32-642.4.2.el6.x86_64/kernel/fs/xfs/xfs.ko
license:        GPL
description:    SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled
author:         Silicon Graphics, Inc.
srcversion:     67725EF8353DC29370566C8
depends:        exportfs
vermagic:       2.6.32-642.4.2.el6.x86_64 SMP mod_unload modversions 
對磁盤進行格式化
]# mkfs.xfs /dev/myvg/mydata 
meta-data=/dev/myvg/mydata       isize=256    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

編輯/etc/fstab文件是其開啟自動掛載文件
/dev/myvg/mydata        /mydata                 xfs     defaults        0 0
新建一個目錄用戶存放mydata數據
查看需要編譯安裝的配置文件
[root@localhost mysql]# scripts/mysql_install_db --help
]# scripts/mysql_install_db --user=mysql(指定用戶) --datadir=/mydata/data/(初始化數據放入到那個文件夾)
啟動mysql需要使用一個服務腳本
[root@localhost support-files]# ls
binary-configure   magic                   my-medium.cnf        mysql.server
config.huge.ini    my-huge.cnf             my-small.cnf         ndb-config-2-node.ini
config.medium.ini  my-innodb-heavy-4G.cnf  mysqld_multi.server  SELinux
config.small.ini   my-large.cnf            mysql-log-rotate     solaris
]# cp mysql.server /etc/rc.d/init.d/mysqld
將服務加入到chkconfig 
[root@localhost support-files]# chkconfig --add mysqld
[root@localhost support-files]# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

配置文件查找次序:
/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf

這里如果需要將mysql命令加入到bash變量中永久有效有2中方法
在/etc/profile的export下面加入一行
export PATH=/usr/local/mysql/bin:$PATH
使用source /etc/profile
如需要對個人生效
在~/.bash_profile中加入
export PATH=/usr/local/mysql/bin:$PATH
source ~/.bash_profile

這里在mysql第一次運作時需要對用戶權限等進行一次修改
mysql_secure_installation:安全初始化
初始化完成之后
[root@localhost ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.32-MariaDB-log MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> user mysql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'user mysql' at line 1
MariaDB [(none)]> 
MariaDB [(none)]> 
MariaDB [(none)]> 
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> SELECT User,Host,Password FROM user;
+------+-----------------------+-------------------------------------------+
| User | Host                  | Password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *17C5214AB2227D33B7976A03E25B9D7AD58913AD |
| root | localhost.localdomain | *17C5214AB2227D33B7976A03E25B9D7AD58913AD |
| root | 127.0.0.1             | *17C5214AB2227D33B7976A03E25B9D7AD58913AD |
| root | ::1                   | *17C5214AB2227D33B7976A03E25B9D7AD58913AD |
+------+-----------------------+-------------------------------------------+
4 rows in set (0.00 sec)


編譯安裝PHP
將下載好的php軟件包進行解壓縮
]# tar xf php-5.5.38.tar.bz2 
]# cd php-5.5.38
解決好軟件依賴關系
請配置好yum源(系統安裝源及epel源)后執行如下命令:
]# yum -y groupinstall "Desktop Platform Development" 
]# yum -y install bzip2-devel libmcrypt-devel libxml2-devel
然后進行編譯安裝
]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/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 (將php編譯為http模塊)--with-mcrypt
(加解密庫)  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts(支持apache work或event功能)
這里等待編譯完成,這里要記住httpd默認是不支持php模塊的,需要在httpd的文件中加入
    AddType application/x-httpd-php  .php
     AddType application/x-httpd-php-source  .phps
定位至DirectoryIndex index.html 
修改為:
DirectoryIndex  index.php  index.html

查看http配置文件發現模塊文件有
LoadModule php5_module        modules/libphp5.so
找到AddType加入上訴語句
為php提供配置文件
]# cp php.ini-production /etc/php.ini
我的測試文件為:
]# cat  index.php 
<?php
 $counn=mysql_connect('127.0.0.1','root','Pa$$w0rd01!');
  if($counn)
   echo "OK";
  else
   echo "NOT OK";
  mysql_close();
  phpinfo();
?>

建立數據庫:  
建立用戶名和登錄地址與密碼
> GRANT ALL ON wpdb.* TO 'wpuser'@'172.16.0.44' IDENTIFIED BY 'wppasswd';
建立數據庫:
> CREATE DATABASE wpdb;
使用頁面安裝完成

LAMP的fpm的安裝
之前的步驟都是一樣的
重新對php進行編譯安裝
生成配置文件,上面的./config時所指的文件路徑需要一致
]# cp php.ini-production /etc/php5/php.ini
cp服務腳本
]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
將php加入到服務當中
chkconfig --add php-fpm
[root@ns1 php-5.5.38]# chkconfig --list php-fpm
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off
為php-fpm提供配置文件:
]# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf 
修改配置文件
注意這里的進程的配置位置一定需要修改
編輯php-fpm的配置文件:
# vim /usr/local/php5/etc/php-fpm.conf
配置fpm的相關選項為你所需要的值,并啟用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php5/var/run/php-fpm.pid 

配置httpd-2.4.9

1、啟用httpd的相關模塊

在Apache httpd 2.4以后已經專門有一個模塊針對FastCGI的實現,此模塊為mod_proxy_fcgi.so,它其實是作為mod_proxy.so模塊的擴充,因此,這兩個模塊都要加載
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
同樣需要http配置文件支持php格式的文件
ProxyRequests Off --->關閉正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1-->把所有php資源的請求轉發給fpm服務器
這樣重啟php和httpd的服務可以發現完成

原創文章,作者:wostop,如若轉載,請注明出處:http://www.www58058.com/51805

(0)
wostopwostop
上一篇 2016-10-17
下一篇 2016-10-17

相關推薦

  • Linux啟動過程及系統初始化

    一、前言     服務器在正常的運行過程中,很少有重啟的機會。在正常的情況下,也很少有出現啟動異常的情況,但是在遭到了人為或者誤操作的情況后,可能會出現啟動異常的情況。為了加深學習系統啟動流程,能夠更加深入理解Linux系統的啟動流程??偨Y了這篇文字。 二、簡述啟動流程     …

    Linux干貨 2016-11-23
  • 文本處理工具及grep

    在日常的linux運維工作當中,我們經常要在一些文本當中抽取過濾出我們所需要的信息,從而達到我們的需求,需要特定的文本處理工具來幫我們完成此類操作 本章節主要講解的內容有: 文件查看:cat 分頁查看文本:less、more 抽取文件特定行數:head、tail 抽取文本特定列:cut 合并文本:paste 文本統計:wc 文本排序并統計:sort、uniq…

    Linux干貨 2016-08-08
  • 推薦-?以各種方式實現yum源,簡單暴力,絕對實操干貨!

    以各種方式實現yum源,簡單暴力,絕對實操干貨! 科普:yum不是程序包安裝工具,而是rpm包前端管理工具,通過yum可以更好的管理rpm的安裝卸載 以各種方式實現yum源,簡單暴力,絕對實操干貨! 一、本地yum源之“掛載光盤鏡像實現”! 二、本地yum源之“掛載本地磁盤上的鏡像文件”! 三、如能上網,實現自定義指定鏡像網站yum源 四、炸天重磅來襲?。?!…

    Linux干貨 2016-04-11
  • DNS快速入門、正反向解析……

    DNS服務原理詳解 因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析。 我們在訪問一個網站的時候,只要輸入該網站的網址就會跳轉到該網站頁面,而實現這一過程就需要DNS服務器將域名解析為IP地址,進而實現數據通信。 DNS:…

    2017-06-03
  • n28 第二周作業

    n28 第二周作業

    Linux干貨 2017-12-09
  • linux發展史-

    前言: 人類文明的進步伴隨著戰爭,戰爭留下的產物也是非常偉大的。 最初用于戰爭的通電鋼鐵,如今以進入人們生活。 而它的附帶產物如今也是變得妙不可言。 本文簡要說明操作系統的發展過程,以及該大樹下一些分支。         簡 述   Linux是誕生與UNIX下的一款操系統,有著安全穩定的文件系統,…

    Linux干貨 2016-10-19

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-10-24 22:50

    可以將以上操作流程,寫一個腳本,這樣既能鍛煉了自己的邏輯能力,還可能在以后的工作用直接使用些架構

欧美性久久久久