码迷,mamicode.com
首页 > 其他好文 > 详细

lamp 构建分离服务器模式

时间:2015-05-17 02:15:29      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:服务器   lamp   三台   

技术分享分别使用三台服务器构建LAMP

Apache 服务器 ip 172.16.10.80  版本:httpd-2.4.10

php   服务器 ip:172.16.10.81  版本:php-5.4.40

MariaDB 服务器 ip:172.16.10.82 版本:MariaDB-5.43


一、编译安装Apache

1、安装开发组件及依赖的组件   pcre-devel zlib-devl

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

2、安装apr,apr-util

试验使用的是httpd-2.4.10 所以必须安装 1.4+ 版本的apr,apr-util

   编译安装apr 1.5

#tar xf apr-1.5.0.tar.bz2
# ./configure --prefix=/usr/local/apr
#make &&make install

 编译安装 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

安装httpd-2.49

#tar # 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  #因服务器上有rpm包安装httpd没有卸载所以安装路径换成/etc/httpd24
mkdir /usr/local/apache/manual
make[1]: Leaving directory `/tmp/httpd-2.4.9‘
#安装成功

  创建HTTPD服务脚本文件
  cp /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24
  
分别修改以下几项即可
apachectl=/usr/local/apache/bin/apachectl  #修改至httpd安装目录
httpd=${HTTPD-/usr/local/apache/bin/httpd} #修改至httpd安装目录
prog=httpd
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid} #修改至安装目录

加执行权限

chmod +x /etc/rc.d/init.d/httpd24

加入启动列表

# chkconfig --add httpd24
# chkconfig httpd24 on

导出头文件

ln -sv /usr/local/apache/include/ /usr/include/httpd

安装完成后修改环境变量:

#vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH #加入以下内容
./etc/profile.d/httpd.sh                #加载环境变量

配置完成可以启动了

#service httpd24 strart

查看端口启动状态

ss –tunl
tcp   LISTEN     0      128   :::80

httpd服务器安装成功

二、安装MariaDB-5.5.43

 1、准备使用存储数据的位置,实验中使用了新建了逻辑卷挂载至/mysql目录下

fdisk/dev/sda     #创建 8e分区20G
cat/proc/partitons  #查看内核有无读取
partx–a /dev/sda #刷新
pvcreate/dev/sd{5,6}     #创建PV
vgceratemyvg /dev/sd{5,6} #创建VG
lvcreate–L 10G –n mydata /dev/myvg #创建LV
mke2fs–t ext4 –L mydata /dev/myvg/mydata #格式化并添加标签

2、添加mysql用户,并修改数据目录使用mysql用户运行

# groupadd -r mysql
# useradd -g mysql -r  mysql
# chown -R mysql:mysql /mysql

3、安装并初始化mysql-5.5.43


[root@localhost tmp]# tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/

[root@localhost tmp]# cd /usr/local/

[root@localhost tmp]# tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/

[root@localhost tmp]# cd /usr/local/

[root@localhost tmp]# # scripts/mysql_install_db --user=mysql --datadir=/mysql

#初始化数据库,并指定用户和数据存放位置


  4、为mysql提供主配置文件:


[root@localhost mysql]# mkdir /etc/mysql

[root@localhost mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf


修改/etc/mysql/my.cnf

在[mysql]中添加
datadir=/data/mydata
thread_concurrency  #线程数是CPU的核心数两倍查看CPU核心: lscpu
innodb_file_per_table= on

 5、为mysql提供服务脚本,并添加启动

cp mysql.server/etc/rc.d/init.d/mysqld
chmod +x/etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

6、 修改环境变量

vim /etc/profile.d/mysql.sh
exportPATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysql.sh #重读配置文件

7、输出mysql的库文件给系统库查找路径:

[root@localhost mysql]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql-x86_64.conf
 # ldconfig #而后让系统重新载入系统库


8、输出mysql的头文件至系统头文件路径/usr/include:

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

service mysqld start

三、编译安装php 

   php除了依赖开发工具包外还需要 bzip2-devel,libmcrypt-devel,libxml2-devel,bzip2-devel包 可使用rpm 命令查看有没有安装

[root@localhost ~]# rpm -qa bzip2-devel libmcrypt-devel libxml2-devel bzip2-devel
libmcrypt-devel-2.5.8-9.el6.x86_64
libxml2-devel-2.7.6-14.el6_5.2.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64

   安装完依赖关系包后就可以解压缩编译安装PHP-2.4.10了

./configure --prefix=/usr/local/php5 --with-mysql=mysqlnd --with-openssl--with-mysqli=mysqlnd --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-pdo-mysql=mysqlnd
# 这里使用fpm方式 主要在--enable-fpm 这个参数,另外数据库是在单独的服务器上所以所有mysql相关的参数全部指定为 mysqlnd
# make && make intall

   导出php配置文件

#cd php-5.4.40
#mkdir /etc/php
# cp php.ini-production /etc/php/php.ini

配置服务脚本

 #cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

给执行权限

#chmod +x /etc/rc.d/init.d/php-fpm


加入chkconfig

#chkconfig –add php-fpm


配置php-fpm 配置文件

#cp /usr/local/php5/etc/


 

编辑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 #启用此项
error_log = log/php-fpm.log          #错误日志文件目录
listen = 172.16.10.81:9000              #监听地址
#保存退出


尝试启动服务

#service php-fpm start


使用ss –tunl查看

tcp   LISTEN    0     128   172.16.10.81:9000                  
#php-fpm监听在9000端口启动成功


四、httpd,php,mariadb全部配置完成限制最后配置httpd,和php 服务器


apache php 服务器上建立2个相同的目录

/web/www/index.php

 

配置172.16.10.80

vim /etc/httpd24/httpd.conf 

关闭中心主机

#DocumentRoot "/usr/local/apache/htdocs"
启用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

#Virtual hosts
Include /etc/httpd24/extra/httpd-vhosts.conf #开启这项
#定位AddType;添加下面两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
 
# vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost*:80>
    ServerAdmin mail@xuphp.com
    DocumentRoot "/web/www"
    ServerName www.xuphoto.com
    ServerAlias xuphoto.com
    ErrorLog"logs/dummy-host.example.com-error_log"
    CustomLog"logs/dummy-host.example.com-access_log" combined
 
  ProxyRequests Off
  ProxyPassMatch ^/(.*\.php)$fcgi://172.16.10.81:9000/web/www/$1
 
    <Directory "/web/www">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>

为了提供服务器访问速度可以给 172.16.10.81 安装xcache组件

1、安装

# tar xfxcache-3.2.0.tar.gz

# cd xcache-3.2.0

#/usr/local/php5/bin/phpize

#./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config

# make&& make install

 

安装结束时,会出现类似如下行:

Installingshared extensions:    /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

 

2、编辑php.ini,整合php和xcache:

 

首先将xcache提供的样例配置导入php.ini

# mkdir/etc/php.d

# cp xcache.ini /etc/php.ini

 

接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:

zend_extension= /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/xcache.s   


测试访问


技术分享



安装Discuz


分别传出一份相同的到 172.16.10.80 和172.16.10.81  /web/www/discuz目录

执行安装数据库指定至 172.16.10.82服务器并在10.82服务器上建立数据库,并授权至此实验目的已经基本达到。


技术分享

技术分享技术分享

lamp 构建分离服务器模式

标签:服务器   lamp   三台   

原文地址:http://nickxu.blog.51cto.com/1207271/1651960

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!