CentOS 6 编译LAMP 实现双机FastCGI

需求:

CenOS 6平台搭建LAMP,其中php作为独立的服务工作

(1)三者分离于两台主机

(2)一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机提供wordpress

(3)安装下cache,为php提供加速

(4)mpm为prefork模型

注意:

(1)由于httpd是cpu密集型,php是io密集型,而mariadb即是cpu密集型又是io密集型。所以我们将httpd和php放在一台主机上,mariadb单独放在一台主机上

(2)由于CentOS 6平台仅提供了mysql的rpm包,这里我们使用mariadb二进制安装包安装

(3)由于php要作为单独服务进程运行,因此编译php时要启用php-fpm特性

(4)由于CentOS 6提供的各应用的rpm安装包版本都比较老,所以都需要通过编译源码来安装

(5)httpd与php之间需要通过FastCGI协议来连接,httpd其实是作为反向代理来工作的,编译httpd时需要启用proxy和proxy_cgi特性

(6)如要求mpm问哦event模型,同时php作为httpd的模块工作时,因为event为线程模型,所以php必须启用线程安全功能--enable-maintainer-zts

环境:

关闭iptables和SELinux

Host1:作为前端web服务器 IP:10.0.0.61

Host2:作为后端DB服务器  IP:10.0.0.62

Linux修改/etc/hosts/

Windows修改C:\Windows\System32\drivers\etc

10.0.0.61    www.wordpress.com

10.0.0.61    www.phpadmin.com

配置:

Host2:

安装二进制的mariadb

# 增加一个系统用户mysql
[[email protected] ~]# useradd -r mysql
# 解压二进制安装包放置在`/usr/local/`目录下
[[email protected] ~]# tar -xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/
[[email protected] ~]# cd /usr/local/
# 链接为`mysql`目录
[[email protected] local]# ln -sv mariadb-5.5.46-linux-x86_64/ mysql
`mysql‘ -> `mariadb-5.5.46-linux-x86_64/‘
# 修改其属主和属组
[[email protected] local]# chown -R root:mysql mysql/
# 创建数据库存放目录`/data/mysql`
[[email protected] local]# mkdir -pv /data/mysql
mkdir: created directory `/data‘
mkdir: created directory `/data/mysql‘
# 修改其属主和属组。
[[email protected] local]# chown -R mysql:mysql /data/mysql/
# 安装
[[email protected] local]# cd mysql/
[[email protected] mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
# 复制服务启动脚本至`/etc/rc.d/init.d`目录
[[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

复制配置文件,并进行配置

# cp support-files/my-large.cnf /etc/my.cnf
# vim /etc/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
datadir=/data/mysql
character-set-server=utf8
collation-server=utf8_general_ci
default-storage-engine=InnoDB
innodb-file-per-table=TRUE
skip-name-resolve=TRUE

数据库初始化:

# 启动数据库
[[email protected] mysql]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[[email protected] mysql]# ss -tunl | grep 3306
tcp    LISTEN     0      50                     *:3306                  *:*
# 导出`/usr/local/mysql/bin/`目录至`PATH`系统环境变量
[[email protected] mysql]# export PATH=/usr/local/mysql/bin/:$PATH
# 数据库初始化设置
[[email protected] mysql]# mysql_secure_installation

授权:

[[email protected] ~]# mysql -u root -p
# 授权root可从10.0.0.0/8网段内的主机登录操作所有数据库。
MariaDB [(none)]> grant all privileges on *.* to ‘root‘@‘10.0.0.%‘ identified by ‘123456‘;
# 给wordpress创建数据wpdb。
MariaDB [(none)]> create database wordpress;
# 给wordpress创建用户wordpress。
MariaDB [(none)]> create user ‘wordpress‘@‘172.18.71.%‘ identified by ‘wordpress‘;
# 授权wordpress可从10.0.0.0/8网段内的主机登录操作wordpress数据库。
MariaDB [(none)]> grant all privileges on wpdb.* to ‘wordpress‘@‘10.0.0.%‘ identified by ‘wordpress‘;
# 重载权限表
MariaDB [(none)]> flush privileges;

Host1

测试能否链接数据库服务器

# 因为CentOS-6不提供mariadb,所以安装mysql的客户端。
[[email protected] ~]# yum install -y mysql
# 测试连接HostB数据库
[[email protected] ~]# mysql -u root -h 10.0.0.62 -p

新增一个系统用户

# useradd -r apache


准备开发环境

# yum groupinstall -y "Development tools" "Server Platform Development"
# yum install -y pcre-devel libxml2-devel  libmcrypt-devel bzip2-devel libcurl-devel

准备好源码包:

apr-1.5.0.tar.bz2  apr-util-1.5.3.tar.bz2  httpd-2.4.10.tar.bz2  php-5.4.40.tar.bz2  xcache-3.2.0.tar.bz2

编译安装apr:

# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/lcoal/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.4.9

# tar -xf httpd-2.4.10.tar.bz2
# cd httpd-2.4.10
# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --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 --enable-proxy --enable-proxy-fcgi --with-mpm=prefork
[[email protected] httpd-2.4.10]# make && make install


编译安装php,启用fpm功能--enable-fpm

# tar -xf php-5.4.40.tar.bz2
# cd php-5.4.40
# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-libxml-dir=/usr --with-mysql --with-mysqli --with-openssl --with-mcrypt --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-bz2 --with-curl --enable-zip --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --enable-mbstring --enable-xml --enable-sockets 
# make && make test && make install

待续。。。

时间: 2024-10-10 08:16:46

CentOS 6 编译LAMP 实现双机FastCGI的相关文章

生产环境LAMP搭建 - 基于 fastcgi

生产环境LAMP搭建 - 基于 fastcgi 由于在module模式,php只是已http的模块形式存在,无形中加重了http的服务负载,通常在企业架构中,使用fastcgi的模式,将所有的服务都设置为不同的独立服务,独立进程的形式存在,并部署在不同的设备上.是用的比较多的. php 进程 默认使用9000端口 默认 php-fpm 只监听127.0.0.1 的 9000 端口 配置php的连接方式,有静态和动态两种模式 pm = static|dynamic static:固定数量的子进程:

Centos7最小化安装下安装,编译lamp环境

centos7默认的php是5.5,mysql已经变为mariadb,如果想要自定义的配置,需要自己手动来编译配置.以下步骤在公司服务器上已经正常操作过. 1.安装centos7选择基本安装,配置完网络后首先要先关闭firewall: 停止firewall # systemctl stop firewalld.service 禁止firewall开机启动 # systemctl disable firewalld.service 2.安装iptables防火墙 yum方式安装iptables #

CentOS yum 安装LAMP PHP5.4版本

CentOS yum 安装LAMP PHP5.4版本     [字体:大 中 小] Linux系统版本:CentOS 6.5 1.yum安装和源代码编译在使用的时候没啥区别,但是安装的过程就大相径庭了,yum只需要3个命令就可以完成,源代码需要13个包,还得加压编译,步骤很麻烦,而且当做有时候会出错,源代码编译安装大概需要2个小时,好处在于可以自己配置地址等一些参数,yum安装半个小时搞定,一般不会出错,更新也很方便. 2.我的机器是CentOS release 5.9 64为的系统,一般机器都

Shell脚本自动部署(编译)LAMP平台

Shell脚本自动部署(编译)LAMP平台 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装LAMP有以下几个优点 根据生产环境灵活定制程序 优化编译参数,提高性能 解决不必要的软件依赖 友情提示:对编译安装有疑问的朋友, 查看我以前写的博客:教你使用rpm.yum.编译等方式安装软件 点击此处获得更好的阅读体验 为什么要用脚本进行部署? 在很多情况下部署LAMP平台并不止一

centos下编译安装LNMP环境

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持. PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回. Nginx和PHP-FPM的组合,是一种稳定.高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少. 二.依赖环境 yum -y install gcc gcc-c++ make cmake automake au

CentOS下搭建LAMP环境详解

前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS 6.5,32位. CentOS安装 我选取了32位的CentOS 6.5这个Linux系统,安装过程也很简单,不再过多叙述,只稍微介绍一下我的分区情况: 分区名  大小 /boot  200MB /swap  2GB(不大于物理分区即可) /  20GB /home 剩余空间 Apache编译安装

linux centos yum安装LAMP环境

centos 6.5 1.yum安装和源代码编译在使用的时候没啥区别,但是安装的过程就大相径庭了,yum只需要3个命令就可以完成,源代码需要13个包,还得加压编译,步骤很麻烦,而且当做有时候会出错,源代码编译安装大概需要2个小时,好处在于可以自己配置地址等一些参数,yum安装半个小时搞定,一般不会出错,更新也很方便. 2.我的机器是centos release 5.9 64为的系统,一般机器都带yum命令,并且yum包源都是可以用的,就是说不用你自己下载东西,直接yum -y install 后

centos系统编译apache-2.4.x常见错误总结

今天公司居然要求安装apache-2.4.9的版本,在安装过程中我遇到了2个错误,现在记录下来分享给大家. 系统:centos 5.x  需要的软件包:httpd-2.4.9.tar.gz               apr-1.5.0.tar.gz               apr-util-1.5.3.tar.gz               pcre-8.35.tar.gz1.先把依赖包安装完  代码如下 复制代码 yum -y install gcc  gcc-c++ libtool-

在Linux CentOS上编译CoreCLR

经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题.最终发现问题是CMAKE_C_FLAGS的设置引起的. 只要在“src/pal/tools/clang-compiler-override.txt”中删除“SET (CMAKE_C_FLAGS_INIT "-Wall -std=c11") ”,在“src/pal/tests/CMakeLists.txt”添加“SET (CMAKE_C_FLAGS "-Wall -std=c11")”,就能编译了.