LAMP之一:apache、mysql、php的装置及互联互通51CTO博客 - 牛牛娱乐

LAMP之一:apache、mysql、php的装置及互联互通51CTO博客

2019年04月17日14时01分38秒 | 作者: 运盛 | 标签: 装置,效劳,体系 | 浏览: 2935

一、LAMP简介

LAMP(Linux- Apache-MySQL-PHP)网站架构是现在世界盛行的Web结构,该结构包含:Linux操作体系,Apache网络效劳器,MySQL数据库,Perl、PHP或许Python编程言语,一切组成产品均是开源软件,是世界上老练的架构结构,许多盛行的商业运用都是采纳这个架构。LAMP具有通用、跨渠道、高功能、低价格的 优势,因而LAMP无论是功能、质量仍是价格都是企业树立网站的首选渠道。

二、相关阐明

   1、本篇(LAMP系列之一)首要介绍整个渠道架构的树立:Apache2.4.9的编译装置,mysql-5.5.33的装置,php-5.4.26的编译装置,以及整个渠道的互联互通;第二篇将介绍《LAMP的功能测验以及装置xcache,为php加快》。

   2、为了模仿环境的真实性,试验中运用3台效劳器,Apache效劳器,php效劳器和Mysql数据库效劳器

   3、关于IP:Apache(172.16.251.93),php(172.16.150.150),Mysql(172.16.251.104)

   4、介于在本文中会运用到称号解析,而关于DNS的博文在本博客中现已有两篇,所以这儿为了便利,不再树立DNS效劳器,而是运用修正hosts文件来做称号解析

三、Apache2.4.9的编译装置

   1、处理依靠联系

       httpd-2.4.9需求较新版别的apr和apr-util,因而需求事前对其进行晋级。事前咱们还应该装好开发包组和pcre。

yum -y install pcre-devel
yum -y groupinstall "Development tools"
yum -y groupinstall "Server Platform Development"

   关于装置进程中运用的apr,apr-util和httpd就运用下图中的这几个

    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

   2、编译装置httpd-2.4.9

# tar xf httpd-2.4.9.tar.bz2
# cd httpd-2.4.9
# ./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

   在httpd-2.4.9的装置途径挑选上,为了不好体系的httpd抵触,咱们指定其装置途径为/usr/local/apache,装备文件装到/etc/httd24中,一起一瞬间的效劳也要改为httpd24

   选项解说阐明:prefix指定装置途径,sysconfdir指定装备文件目录,enalbe-so支撑依据DMO的方法动态加载模块,enable-ssl支撑https协议,enable-cgi支撑cgi机制,enable-rewrite支撑URL重写,with-zlib支撑网页数据压缩,enable-modules=most启用大多数的常用模块,with-mpm=event默许的mpm模块为event

   3、修正httpd的主装备文件,设置其pid文件的途径

      由于在httpd2.4中,其pid的方位变的很怪异,不再是在/var/run下,所以咱们就给它修正到/var/run下,其实不改也不妨,只需设置对了就好了

vim /etc/httpd/httpd.conf

  4、供给SysV效劳脚本/etc/rc.d/init.d/http24

   这个脚本就不写了,直接略微改改httpd的效劳脚本就好了,先复制一份

 修正httpd的脚本,改为合适httd24的,只需把这几个变量改了就好了,下面的start(),stop()等参数都是调用的这几个变量,所以其他无需修正。保存退出后不需求再给履行权限了,现已有了。

   5、把httpd24增加到体系效劳,并测验

6、导出头文件

7、导出man协助手册

 8、输出二进制程序

#vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
#. /etc/profile.d/httpd.sh

四、装置mysql-5.5.33

1、预备数据寄存的文件体系

       由于数据总是在动态增加的,所以咱们要创立一个逻辑卷来保存数据。运用/dev/sdb1这个分区来创立逻辑卷。

    1)预备磁盘为LVM格局

    2)创立lvm并格局化

 2、设置开机主动挂载

       这儿假定其逻辑卷的挂载目录为/data,然后需求创立/data/mydata目录做为mysql数据的寄存目录。

   3、检查挂载状况

   4、为mysql预备体系用户和组


   5、进入/data挂载目录,创立mydata数据寄存的目录,并修正属主和属组

  6、解压mysql并为其创立一个链接,今后晋级的时分,直接改链接地址就能够了

 7、进入/usr/local/mysql文件夹,修正属主与属组

8、初始化体系库,进入到/usr/local/mysql

9、为mysql供给主装备文件,并修正此文件中thread_concurrency的值为你的CPU个数乘以2,别的还需求增加如下行指定mysql数据文件的寄存方位

# cd /usr/local/mysql
# cp support-files/my-large.cnf  /etc/my.cnf

 10、为mysql供给sysv效劳脚本并增加为体系效劳

# cd /usr/local/mysql
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig add mysqld
# chkconfig mysqld on

11、发动mysql效劳,看能否正常发动

12、后续操作

为了运用mysql的装置契合体系运用标准,并将其开发组件导出给体系运用,这儿还需求进行如下进程:

   1)输出mysql的man手册至man指令的查找途径:

       修正/etc/man.config,增加如下行即可:

       MANPATH  /usr/local/mysql/man

   2)输出mysql的头文件至体系头文件途径/usr/include:

       这能够经过简略的创立链接完成:

       # ln -sv /usr/local/mysql/include  /usr/include/mysql

   3)输出mysql的库文件给体系库查找途径:

       # echo /usr/local/mysql/lib > /etc/ld.so.conf.d/mysql.conf

       然后让体系从头载入体系库:

       # ldconfig

   4)修正PATH环境变量,让体系能够直接运用mysql的相关指令。详细完成进程这儿不再给出。

       # vim /etc/profile.d/mysql.sh

       #export PATH=/usr/local/mysql/bin:$PATH

       #. /etc/profile.d/mysql.sh

五、编译装置php-5.4.26

 1、编译装置php ,进程和上面的都相同,就不再给图了,只给进程

由于咱们这儿php和mysql效劳器是分隔布置的,不在本地,所以得考虑到数据库的衔接问题。

阐明:假如运用PHP5.3以上版别,为了链接MySQL数据库,能够指定mysqlnd,这样在本机就不需求先装置MySQL或MySQL开发包了。mysqlnd从php 5.3开端可用,能够编译时绑定到它(而不必和详细的MySQL客户端库绑定构成依靠),但从PHP 5.4开端它便是默许设置了。

# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./configure prefix=/usr/local/php with-openssl enable-mbstring with-freetype-dir with-jpeg-dir with-png-dir with-zlib with-libxml-dir=/usr enable-xml enable-sockets enable-fpm with-mcrypt with-config-file-path=/etc with-config-file-scan-dir=/etc/php.d with-bz2 with-mysql=mysqlnd with-pdo-mysql=mysqlnd with-mysqli=mysqlnd
# make
# make intall

2、为php供给装备文件(我的php解压在了/root/soft下,装置在了/usr/local/php下)

cp /root/soft/php-5.4.26/php.ini-production /etc/php.ini

3、 修正apache装备文件httpd.conf,以apache支撑php

# vim /etc/httpd24/httpd.conf
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps

   定位至DirectoryIndex index.html

   修正为:DirectoryIndex  index.php  index.html

六、装备php-fpm

由于Apache效劳器衔接php效劳器是经过fastcgi协议的,因而咱们还需经过php-fpm对其进行装备。

   1、为php-fpm供给SysV init脚本,并将其增加至效劳列表:

# cp /root/soft/php-5.4.26/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig add php-fpm
# chkconfig php-fpm on

 2、为php-fpm供给装备文件:

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

3、装备php-fpm的相关选项,并启用pid文件

pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid

pm.max_children:静态方法下敞开的php-fpm进程数量。
pm.start_servers:动态方法下的开端php-fpm进程数量。
pm.min_spare_servers:动态方法下的最小php-fpm进程数量。
pm.max_spare_servers:动态方法下的最大php-fpm进程数量。

假如dm设置为static,那么其实只要pm.max_children这个参数收效。体系会敞开设置数量的php-fpm进程。

假如dm设置为dynamic,那么pm.max_children参数失效,后边3个参数收效。体系会在php-fpm运转开端的时分发动pm.start_servers个php-fpm进程,然后依据体系的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。

4、修正fpm的默许监听端口

   默许状况下,fpm监听在127.0.0.1的9000端口,也能够运用如下指令验正其是否现已监听在相应的套接字。

   # netstat -tnlp | grep php-fpm

   tcp   0  0  127.0.0.1:9000   0.0.0.0:*   LISTEN   689/php-fpm

所以咱们要把监听端口改到咱们的php效劳器上

vim /usr/local/php/etc/php-fpm.conf

接下来就能够发动php-fpm并验证其否成功监听了

   运用如下指令来验正(假如此指令输出有中几个php-fpm进程就阐明发动成功了):

   # ps aux | grep php-fpm

七、装备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

   2、装备虚拟主机支撑运用fcgi

     1)要运用虚拟主机,首先要封闭中心主机,再敞开虚拟主机的模块儿,也是在/etc/httpd24/httpd.conf中

2)装备虚拟主机

vim /etc/httpd24/extra/httpd-vhosts.conf

ProxyPassMatch:把以.php结束的文件恳求发送到php-fpm进程,php-fpm至少需求知道运转的目录和URI,所以这儿直接在fcgi://127.0.0.1:9000后指明晰这两个参数,其它的参数的传递现已被mod_proxy_fcgi.so进行了封装,不需求手动指定。所以在Apache效劳器和php效劳器都应该树立/www/shuishui.com/这个目录,然后把网页文件放到这个目录中来,Apache下要保存静态的index.html和动态的index.php,php效劳器上只需保存动态的index.php即可。

   3、持续修正Apache的主装备文件,让apache能辨认php格局的页面,并支撑php格局的主页

vim /etc/httpd24/httpd.conf

1)增加如下二行

      AddType application/x-httpd-php  .php

      AddType application/x-httpd-php-source  .phps

   2)定位至 DirectoryIndex index.html

      修正为:DirectoryIndex  index.php  index.html

八、测验Apache效劳器与php效劳器的互连

在Apache效劳器与php效劳器下的/www/shuishui.com/目录中别离创立index.php。Apache中的index.php只需求有这个名就能够,由于它会去调用php效劳器中的php.index,所以php效劳器中的index.php有必要要有内容。

给php效劳器中的主页文件来个测验页,并重启下效劳:

service httpd24 restart

到windows上去访问下www.shuishui.com试试,下面便是见证奇观的时间

Apache与pah效劳器的互联成功

   弥补:Apache httpd 2.4曾经的版别中,要么把PHP作为Apache的模块运转,要么增加一个第三方模块支撑PHP-FPM完成。

九、测验php效劳器与mysql效劳器的互联

1、在php效劳器上的index.php中参加衔接mysql效劳器的选项

  2、测验能否成功连上mysql数据库

哎,失利了!这是为什么呢?为什么呢?虽然在index.php中要求衔接数据库,但是你想运用人家mysql的资源,也不取得mysql的授权,这怎样能够?除非你想黑了它。没那技能就去拿授权吧!

   3、在mysql效劳器上授权

4、再来,从头衔接


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章