首页 > 代码库 > LAMP

LAMP

LAMP简单搭建

一、编译安装apache

1、解决依赖关系

由于httpd-2.4.9的安装需要较新版本的apr和apr-util这两个包,因此需要事先对其进行升级:apr-1.5.0.tar.bz2

apr-util-1.5.3.tar.bz2

下载上述两个个包后,对其进行升级,执行以下命令:

wKioL1PrGRDBVCM8AALveAk0xzo172.jpg

wKioL1PrGRTTrVVRAAP0lEHOTQQ248.jpg

2、编译安装httpd-2.4.9

而后执行如下命令进行编译安装过程:

wKioL1PrGTmA09FOAALAJ20_5l8304.jpg

3、修改httpd的主配置文件,设置其Pid文件的存放位置

编辑/etc/httpd24/httpd.conf,添加如下行即可:

PidFile  "/var/run/httpd.pid"

4、为httpd提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:

#!/bin/bash

#

# httpd       Startup script for the Apache HTTP Server

#

# chkconfig: - 85 15

# description: Apache is a World Wide Webserver.  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 swallowingup 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, serverbinary, 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 syntaxerror"

   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 $@

 RETVAL=$?

  ;;

  *)

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

  exit1

esac

 

exit $RETVAL

 

而后为此脚本赋予执行权限:

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

加入服务列表:

# chkconfig --add httpd

接下来就可以启动服务进行测试了。

#service httpd start

在浏览器中输入 172.16.249.53

wKioL1PrGVuhwj7lAAAeGHwWwvs164.jpg

apache安装成功

二、安装mysql-5.5.33

1、准备数据存放的文件系统

新建一个逻辑卷,并将其挂载至特定目录即可。这里不再给出过程。这里假设其逻辑卷的挂载目录为/mysql,而后需要创建/mysql/data目录做为mysql数据的存放目录。

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

# groupadd -r mysql

# useradd -g mysql -r -s /sbin/nologin -M -d/mysql/data mysql

# chown -R mysql:mysql /mysql/data

3、安装并初始化mysql-5.5.33

选择适应自身平台的mysql

# tar xf mysql-5.5.33-linux2.6-i686.tar.gz-C /usr/local

# cd /usr/local/

# ln -sv mysql-5.5.33-linux2.6-i686  mysql

# cd mysql

# chown -R mysql:mysql  .

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

# chown -R root  .

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

# cd /usr/local/mysql

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

并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:

thread_concurrency = 2

另外还需要添加如下行指定mysql数据文件的存放位置:

datadir = /mysql/data

5、为mysql提供sysv服务脚本:

# cd /usr/local/mysql

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

添加至服务列表:

# chkconfig --add mysqld

# chkconfig mysqld on

6、输出mysql的man手册至man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/mysql/man

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

这可以通过简单的创建链接实现:

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

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

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

而后让系统重新载入系统库:

# ldconfig -v

9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。

在/etc/profile文件中添加以下内容:

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

10、启动mysql

#service mysqldstart

三、编译安装php-5.4.26

1、解决依赖关系:

# yum -y groupinstall "Desktop PlatformDevelopment"

# yum -y install bzip2-devel libmcrypt-devel

2、编译安装php-5.4.26

首先下载php-5.4.26源码包至本地目录

# tar xf php-5.4.26.tar.bz2

# cd php-5.4.26

wKioL1PrGXnhz5SVAAE9pcqdlO0661.jpg

./configure --prefix=/usr/local/php--with-mysqlnd=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 --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d--with-bz2  --enable-maintainer-zts

wKioL1PrGYzx27OwAAAutNvrp3M715.jpg

说明:

1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。

2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。

 

为php提供配置文件:

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

3 编辑apache配置文件httpd.conf,以apache支持php

 # vim /etc/httpd/httpd.conf

wKiom1PrGITSjCASAADnu03bkuA882.jpg

2、定位至DirectoryIndex index.html

   修改为:

DirectoryIndex  index.php  index.html

3、修改/usr/local/apache/htdocs/index.html

将其重命名为:index.php

#mv /usr/local/apache/htdocs/index.html/usr/local/apache/htdocs/index.php

编辑/usr/local/apache/htdocs/index.php添加以下内容:

<?php

Phpinfor();

 ?>

保存退出

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

在浏览器中输入172.16.249.53出现以下界面

wKioL1PrGbOhglsvAALdU2UFPQA618.jpg

4、验证是否可以成功连接至mysql

编辑/usr/local/apache/htdocs/index.php,添加以下内容:

<?php

$link=mysql_connect(‘localhost‘,‘root‘,‘‘);

if ($link)

      echo"Successfuly";

else

       echo"Faile";

mysql_close();

?>

保存退出。

在浏览器中输入 172.16.249.53,出现以下内容:

wKioL1PrGdSjyl3SAACC3WCm9Vw378.jpg