设为首页 收藏本站
查看: 1231|回复: 0

LAMP分离部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-26 09:44:35 | 显示全部楼层 |阅读模式
1.主机规划

配置虚拟机中有至少 3台,操作系统都是centos网段在172.16.27.0/16

分配如下:

1台httpd服务器172.16.27.20

1台php-fpm服务器 172.16.27.30

1台DB服务器172.16.27.40

2.工作模式

首先客户端发起请求,请求分为2种,一种是静态请求它可以直接由Apache直接响应返回;另一种是动态的请求,如其中包含中php或者Perl这种脚本解释性语言,则由Apache服务器通过fastcgi协议调用php服务器执行并返回给Apache由Apache返回解释执行后的结果,如果这个过程中涉及到对数据的操作,此时php服务器还会还会通过mysql协议调用mysql服务器。

3.编译安装Apache(172.16.27.20)

部署前准备
yum groupinstall “Development Tools”
yum install apr-util-devel
yum install pcre-devel openssl-devel  libevent-devel
mkdir -pv /data/web/www{1,2}

开始解压httpd,并且进行编译
[iyunv@web tmp]# tar -vxf  httpd-2.4.6.tar.bz2
[iyunv@web tmp]# cd httpd-2.4.6/
[iyunv@web httpd-2.4.6]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so--enable-ssl --enable-cgi --enable-rewrite --enable-modules=most--enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib--with-apr=/usr --with-apr-util=/usr
[iyunv@web httpd-2.4.6]# make -j 2 && make install
[iyunv@web local]# ln -sv apache2.4.6/ apache(创建软连接)

为apache创建用户与组

[iyunv@web local]# groupadd -g 800 apache
[iyunv@web local]# useradd apache -u 800 -g 800 -M -s /sbin/nologin      
Creating mailbox file: File exists
[iyunv@web local]# id apache
uid=800(apache) gid=800(apache) groups=800(apache)

启动apache服务

[iyunv@web local]# cat /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
[iyunv@web local] apachectl start
在浏览器中输入ip地址即可访问,显示it works代表我们的httpd服务器已搭建完毕。(关闭防火墙和selinux)

4 编译安装php+xcache (172.16.27.30)

(1)编译安装php

解决php依赖关系

# yum install libxml2-devel gd-devel freetype-devellibmcrypt-devel openssl-devel  bzip2  bzip2-devel

编译安装php5.5

# tar xf php-5.5.30.tar.gz
./configure --prefix=/data/soft/php-5.5.30--with-mysql=/data/soft/mariadb --with-openssl--with-mysqli=/data/soft/mariadb/bin/mysql_config --enable-mbstring--enable-xml --enable-sockets --with-freetype-dir --with-gd--with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt  --with-config-file-path=/etc/php.ini--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-fpm
# make
# make install
# ln -sv php5.5.30 php5

添加php.ini 和php-fpm文件
(1)为php提供配置文件
复制php-5.5.30的解压包中的php.ini-production文件
# cp/tools/php-5.5.30/php.ini-production /etc/php.ini
为php-fpm 提供配置文件                           
# cd php5.5/etc/
# cp php-fpm.conf.defaultphp-fpm.conf

配置php-fpm文件

[iyunv@php php5.5]# vim etc/php-fpm.conf
pid = run/php-fpm.pid
listen= 172.16.27.30:9000
listen.allowed_clients= 172.16.27.20 #web服务器地址
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.process_idle_timeout = 15s
pm.max_requests = 2048

启动php-fpm服务

(1)设置PATH环境变量
# cat /etc/profile.d/php-fpm.sh
export PATH=/data/soft/php5.5/sbin/:$PATH

(2)为php-fpm提供启动脚本

# cp/tools/php-5.5.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on

(3)启动php-fpm,查看php-fpm进程数

# service php-fpm start
# ps -ef |grep -c php-fpm

设置apache的虚拟主机连接php
配置apache支持fcgi

[iyunv@web ~]# vim /etc/httpd24/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so


(5)编辑虚拟主机(172.16.27.20)


<VirtualHost *:80>

       ServerAdmin admin@ssl.com

       DocumentRoot "/data/vhost/www1"

       ServerName ww1.ssl.com

        ErrorLog "/data/vhost/www1/www1.Errorlog"

        CustomLog "/data/vhost/www1/www1.CustomLog" combined

        ProxyRequests off #关闭正向代理

        ProxyPassMatch ^/(.*.php)$ fcgi://172.16.27.30:9000/var/vhost/www1/$1

    <Directory "/data/vhost/www1">

        Options none

        AllowOverride None

        Require all granted

    </Directory>

</VirtualHost>



<VirtualHost *:80>

        ServerAdmin admin@ssl.com


        DocumentRoot "/data/vhost/www2"

        ServerName www2.ssl.com

        ErrorLog "/data/vhost/www2/www2.Errorlog"

        CustomLog "/data/vhost/www2/www2.CustomLog" combined

        ProxyRequests off #关闭正向代理

        ProxyPassMatch ^/(.*.php)$ fcgi://172.17.27.30/data/vhost/www2/$1

    <Directory "/data/vhost/www2">

        Options none

        AllowOverride None

        Require all granted
   </Directory>


</VirtualHost>


6 为了提高php的性能安装Xcache
# tar -xvf xcache-3.2.0.tar.bz2
# cd  xcache-3.2.0
# ./configure--enable-xcache --with-php-config=/data/soft/ph
# make && makeinstall
# ls /data/soft/php-5.5.30/lib/php/extensions/no-debug-non
整合php和xcache,将XCache配置文件复制到php.d目录下,使php可以读取XCache配置文件

# mkdir /etc/php.d
# cp xcache.ini /etc/php.d/
编辑/etc/php.d/xcache.ini文件,指定xcache.so的位置

# sed -n '4p'  /etc/php.d/xcache.ini
extension =/data/soft/php-5.5.30/lib/php/extensions/no-debug-non-zts-20121212/xcache.so


部署mariadb服务
采用mysql 二进制安装方式

创建mysql用户和组

# groupadd -g 306 mysql
# useradd -u 306 -g mysql -s /sbin/nologin -M mysql

解压mariadb-5.5.46-linux-x86_64.tar.gz

# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C/data/soft/

# ln -sv mariadb-5.5.46-linux-x86_64/mariadb
‘mariadb’ -> ‘mariadb-5.5.46-linux-x86_64/’

创建mysql数据目录并授权

mkdir /data/mydata -p
chown -R mysql.mysql /data/mydata

初始化数据库文件
# chown -R root.mysql/data/soft/mariadb/
# cd /data/soft/mariadb

# scripts/mysql_install_db--user=mysql --datadir=/data/mydata/ --basedir=/data/soft/mariadb

配置mariadb主配置文件my.cnf
复制/data/soft/mariadb/support-files目录下的my-large.cnf文件到/etc/ 目录下,覆盖原有的mysql配置文件 my.cnf(注意:覆盖前需自己手动备份):

# cp support-files/my-large.cnf /etc/my.cnf

修改/etc/my.cnf文件,指定datadir、basedir路径,同时开启3306端口

[mysqld]
port = 3306
basedir = /data/soft/mariadb
datadir = /data/mydata
innodb_file_per_table = 1 #让innodb表每个表一个表空间文件。

复制mysql启动脚本到/etc/init.d/mysqld

# cp /data/soft/mariadb/support-files/mysql.server/etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld

修改PATH环境变量

[iyunv@db mariadb]# cat /etc/profile.d/mysql.sh
export mysql_home=/data/soft/mariadb
export PATH=$mysql_home/bin:$PATH

启动mysql服务

[iyunv@db mariadb]# chkconfig --add mysqld
[iyunv@db mariadb]# chkconfig mysqld on
[iyunv@db mariadb]# service mysqld start
Starting MySQL... SUCCESS!


进入php主机 编辑index.php 文件内容如下:


<?php

$link=mysql_connect('172.16.27.40','wordpress','wordpress');

if($link){

echo "success..wordpress!";

}else{

echo "failed..wordpress!".mysql_error();

}

mysql_close($link);

phpinfo();

?>

出现success..frank!则成功了,若失败看失败的原因进行相关的操作!

切记,要将防火墙关闭!

(10)配置phpmyadmin

在php 主机和http主机上分别在frank目录或者随意一个虚拟主机目录中建立一个文件夹

例如在php主机中在目录

unzip phpMyAdmin-4.4.10-all-languages.zip

即可。这两台主机的操作一样。

接下来在php主机上进行对phpmyadmin的配置。

cp config.sample.inc.php config.inc.php

vim config.inc.php

主要找到

$cfg['Servers'][$i]['host']=‘172.16.27.40’ 数据库服务器的IP地址

$cfg['blowfish_secret'] = '77777';这里的字符随意,这个主要是为了区分cookie。

然后重启三台主机上的服务即可测试。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249495-1-1.html 上篇帖子: LAMP 编译安装 压力测试 下篇帖子: 在三台不同的CentOS 7主机上用rpm包快速部署LAMP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表