apache、php、mysql各工作于独立主机的lamp平台实现

实验环境:

VM1:192.168.1.132,用于apache服务器

VM2:192.168.1.134,用于php服务器

VM3:192.168.1.137,用户mariadb服务器

软件版本:httpd-2.4.9,php-5.4.26,mariadb-5.5.39

一、编译安装httpd-2.4.9

1、解决依赖关系

# yum -y install pcre-devel

# yum -y install mod_ssl

# yum groupinstall -y "Development tools"

# yum groupinstall -y "Server Platform Development"

编译安装apr-1.5.0.tar.bz2

# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install

编译安装apr-until-1.5.3.tar.bz2

# 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

3、修改httpd配置文件

启用fcgi模块

在配置文件中添加如下语句让apache支持php格式的页面,并支持php格式的主页

AddType application/x-httpd-php  .php

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

关闭正向代理,启用反向代理,添加语句,fcgi:后面的IP地址是php应用服务器的IP地址,/var/phpscript是php服务器中用于存放php页面文件的目录位置,用户在向前端的apache服务器请求php页面时,httpd进程会将用户请求反向代理至php服务器对应的目录下的页面文件,经过php解释器处理后返回给前端apache服务器html页面格式的文件。

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.134:9000/var/phpscript/$1

设置Pid文件路径,这个条目是为了使用apache服务脚本而设置的。

4、提供SysV服务脚本,在/etc/rc.d/init.d目录下创建名称为httpd24的文件,编辑并添加如下内容

#!/bin/bash

#

# httpd        Startup script for the Apache HTTP Server

#

# chkconfig: - 85 15

# description: Apache is a World Wide Web server.  It is used to serve \

#        HTML files and CGI.

# processname: httpd

# config: /etc/httpd/conf/httpd.conf

# config: /etc/sysconfig/httpd

# pidfile: /var/run/httpd.pid

# Source function library.

. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then

. /etc/sysconfig/httpd

fi

# Start httpd in the C locale by default.

HTTPD_LANG=${HTTPD_LANG-"C"}

# This will prevent initlog from swallowing up a pass-phrase prompt if

# mod_ssl needs a pass-phrase from the user.

INITLOG_ARGS=""

# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server

# with the thread-based "worker" MPM; BE WARNED that some modules may not

# work correctly with a thread-based MPM; notably PHP will refuse to start.

# Path to the apachectl script, server binary, and short-form for messages.

apachectl=/usr/local/apache/bin/apachectl

httpd=${HTTPD-/usr/local/apache/bin/httpd}

prog=httpd

pidfile=${PIDFILE-/var/run/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd}

RETVAL=0

start() {

echo -n $"Starting $prog: "

LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch ${lockfile}

return $RETVAL

}

stop() {

echo -n $"Stopping $prog: "

killproc -p ${pidfile} -d 10 $httpd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}

}

reload() {

echo -n $"Reloading $prog: "

if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then

RETVAL=$?

echo $"not reloading due to configuration syntax error"

failure $"not reloading $httpd due to configuration syntax error"

else

killproc -p ${pidfile} $httpd -HUP

RETVAL=$?

fi

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status -p ${pidfile} $httpd

RETVAL=$?

;;

restart)

stop

start

;;

condrestart)

if [ -f ${pidfile} ] ; then

stop

start

fi

;;

reload)

reload

;;

graceful|help|configtest|fullstatus)

$apachectl [email protected]

RETVAL=$?

;;

*)

echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"

exit 1

esac

exit $RETVAL

修改此脚本的执行权限:

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

添加服务列表:

# chkconfig --add httpd24

# 启动服务:

# service httpd24 start

apache服务器准备完毕。

二、编译安装php-5.4.26

1、解决依赖关系:

# yum groupinstall -y "Desktop Platform Development"

# yum -y install bzip2-devel libmcrypt-devel

2、编译安装php-5.4.26

# tar xf php-5.4.26.tar.bz2

# cd php-5.4.26

# ./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

数据库服务器是另一台单独主机,所以编译php时指定mysql的安装位置时,需要设置为mysqlnd,同时显式指出使用fpm模块

# make && make install

为php提供配置文件:

# cp php.ini-production /etc/php.ini

3、配置php-fpm

为php-fpm提供SysV服务脚本,并将其添加至服务列表

# cp 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

为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

启用pid文件,该选项的启用位置在全局配置段下方,并修改php-fpm监听的地址,原监听地址是127.0.0.1,需要改为可以与外部通信的地址,设置如图所示:

启动服务:

# service php-fpm start

查看服务监听的端口:

可以看到php-fpm工作在9000端口,监听的地址是192.168.1.134。

创建php页面存储目录,存放php页面文件。

# mkdir /var/phpscript

# vim /var/phpscript/index.php;编辑php页面文件,内容如下图:

php应用程序服务器准备完毕。

三、安装mariadb-5.5.39

1、准备数据存放的文件系统,创建逻辑卷,用于数据库存放数据。

创建一个磁盘分区,分区格式为LVM:

# kpartx -af /dev/sda;通知内核重读磁盘分区表

# partx -a /dev/sda;通知内核重读磁盘分区表

# cat /proc/partitions;查看内核识别分区情况

# pvcreate /dev/sda3

# vgcreate myvg /dev/sda3

# lvcreate -L 10G -n mylv myvg

# lvs;查看lv创建结果

# mke2fs -t ext4 /dev/myvg/mylv

# mkdir /mydata/data;创建用于存储数据库数据的目录

# vim /etc/fstab;编辑fstab文件,将/dev/myvg/mylv挂载至/mydata/data

# mount -a

2、新建用于以安全方式运行进程

# groupadd -r mysql

# useradd -g mysql -s /sbin/nologin -r  mysql

# chown -R mysql:mysql /mydata/data

3、安装初始化MariaDB-5.5.39

# tar xf mariadb-5.5.39-linux-x86_64.tar.gz

# cd /usr/local

# ln -sv mariadb-5.5.39-linux-x86_64 mysql

# cd mysql

# chown -R mysql:mysql .

# scripts/mysql_install_db --user=mysql --datadir=/mydata/data

# chown -R root .

4、为mariadb提供主配置文件

# cd /usr/local/mysql

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

# vim /etc/my.cnf;修改数据库主配置文件,添加数据存放的路径:

5、为MariaDB提供服务脚本

# cd /usr/local/mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# chown +x /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on

6、mariadb安装完成后续的配置工作:

输出mariadb的man手册,添加内容如图:

# vim /etc/man.config

输出mariadb头文件

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

输出mariadb的库文件:

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

# ldconfig;系统重新装载库文件

修改PATH环境变量,使系统可以直接使用mariadb相关命令

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

连接mysql,创建远程连接用户,用于测试数据库连接:

# mysql

# CREATE USER [email protected]‘192.168.1.%‘ IDENTIFIED BY ‘tpass‘;

现在三台主机准备完毕,在apache服务器上添加静态页面内容,在php服务器上添加php页面文件用于测试:

在apache服务器的站点根目录下创建一个名称为test.html的页面文件,编辑的内容如下图:

在浏览器内测试效果如下:

测试php页面访问及数据库的连接情况:

apache、php、mysql各工作于独立主机的lamp平台实现,布布扣,bubuko.com

时间: 2024-11-07 01:12:12

apache、php、mysql各工作于独立主机的lamp平台实现的相关文章

数据库工作于独立主机的lamp平台安装实现

实验环境: VM1:192.168.1.134,安装httpd-2.4.10,php-5.4.31 VM2: 192.168.1.137,安装mariadb-5.5.39 一.在虚拟机VM1上编译安装httpd-2.4.10 1.解决依赖关系的准备工作: # yum install -y pcre-devel # yum install -y mod_ssl # yum groupinstall -y "Development tools" # yum groupinstall -y

centos系统yum安装apache+php+mysql

原文参考扩展来自:http://blog.csdn.net/lumengabc/article/details/38963609 先来解释一下,什么是 LAMP.正如标题所言,LAMP 实际上就是 Linux.Apache.MySQL.PHP 四个名称的缩写,当然最后一个 "P" 还有其他说法是 Perl 或者 Python.不用多说了,本文讲解的就是 Linux.Apache.MySQL.PHP 这四个东西,所以就这样解释了. 自己很早就在做网站,最初玩的是 ASP,后来主要研究 .

windows安装Wamp(Apache,MySQL,PHP)详细教程

个人原创网址:http://www.phpthinking.com/archives/379 最近很多php入门读者都询关于" Windows + Apache + MySQL + PHP"怎么配置的问题,在这里给大家一起回答了. WampServer =  Apache + MySQL + PHP 很多网站开发人员都喜欢在自己的桌面电脑上编写和测试他们的程式,这样做有几个好处,首先你可以很容易测试程式,无须档案上传到伺服器,尤其是对于一些简单的修改,可以节省很多工夫:另一个好处是程式

Apache+php+mysql环境配置

Apache+PHP+MySQL环境搭建 标题格式 正文格式 阶段性完成格式 正文中强调格式 ————————————————————————————— 前语:本文是从我写过的doc文档迁移过来的,由于文档是好久之前写的,当时配置的时候参考过一些网上的教程,所以文档中可能会有些不必要的步骤(比如并不需要vhost的配置) .但是按照步骤来是可以成功的.文档中的所有图片都是我实际操作截的图.用的apache版本是2.2.25,php版本是5.4.25. 后话:若要对已经配置好的环境进行备份. 对于

nginx+apache+php+mysql服务器集群搭建

nginx+apache+php+mysql服务器集群搭建 由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2在A的后面,C在最后面.A主要用的nginx,用nginx做反向代理的功能实在是强大.nginx把来自80的http请求都转发到B1和B2上,B1和B2主要是两台apache,用于php解析.B1和B2来连接C上的mysql.A上的nginx

基于apache和mysql,安装seafile - v1.0

seafile:下一代的开源云存储更好的文件同步,隐私保护和团队协作功能!本文基于官方文档,补充描述基于apache和mysql,安装seafile服务器. 原文网址:https://cloud.seafile.com/group/762/wiki/%E5%9C%A8apache%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%83%A8%E7%BD%B2seafile/ 修改:陈海青(http://hhrz.org) 1.准备 下载安装预装了apache和mysql的虚拟机(基于d

阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL)

阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL) 转载自:http://elf8848.iteye.com/blog/1698351 一.快速安装Apache+PHP5+MySql ----------------------------------------------------- 补充:由于163的yum源上只有php5.1.6 mysql 5.0.95 版本较低,请直接看最后面的<八.卸载php5.1,mysql5.0 重新安装ph

Centos设置开机启动Apache和Mysql[总结]

Centos设置开机启动Apache和Mysql[总结] 1.前言 最近学习搭建wordpress,需要用到apahce和mysql.我是下载源代码进行安装的,安装在/url/local目录下,每次开机都需要手动启动,有点麻烦.如是想设置开机启动,从网上查了一下,如何设置,总结一下,方便以后使用. 2.设置方法 有两种方法,一种是修改配置文件,一种是通过添加启动项. 方法一:根据系统启动的初始化过程,修改配置文件 Centos中的运行模式2.3.5都把/etc/rc.d/rc.local做为初始

apache+php+mysql安装与使用

偷个懒,用的系统自带的apache和php apache安装与使用 Mac自带apache默认路径 主程序 /usr/sbin/httpd 模块 /usr/libexec/apache2 配置 /etc/apach2/ 文件根目录 /Library/WebServer/Documents 日志 /private/var/log/apache2/ CGI根目录 /Library/WebServer/CGI-Executables 私有配置 /private/etc/apach2 启动httpd 修