LAMP服务的搭建

LAMP平台的搭建:

    系统环境:Centos6.5

一、配置系统环境

1 ) 关闭防火墙

    关闭Selinux

2 ) 配置yum源,安装开发工具软件包组

   # yum -y groupinstall "DevelopmentLibraries" "Development Tools"

3 ) # rpm   -q  gcc   gcc-c++   make

   # yum -y install  gcc  gcc-c++   make

4 ) 移除冲突软件,卸载自带的LAMP组件,避免与编译安装版共存,易造成混淆

   # yum -y remove httpd mysql-server php

   # rm -rf /etc/my.cnf  /var/lib/mysql   //清理干扰文档


二、安装相关软件

1.编译安装Apache HTTP Server

  软件版本:httpd-2.2.25.tar.gz

  1)安装功能依赖包

   # yum -y install openssl-devel                                                          

 

  2)标准的编译过程

   [root@localhost LAMP]# tar -xvfhttpd-2.2.25.tar.gz

   [root@localhost LAMP]# cd httpd-2.2.25

   [root@localhost httpd-2.2.25]#./configure--prefix=/usr/local/http2 --enable-so  --enable-rewrite  --enable-cgi  --enable-charset-list  --enable-ssl

   [root@localhost httpd-2.2.25]#make

   [root@localhost httpd-2.2.25]#make install

  

  3) 开启服务

   #/usr/local/apache2/bin/apachectl  start|stop


  4)提供启动脚本

     # vi/etc/httpd/httpd.conf                                                                          

     PidFile "/var/run/httpd.pid"
 
   提供httpd SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:

 #/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 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/apache2/bin/apachectl

httpd=${HTTPD-/usr/local/apache2/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 $@

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/httpd                                                          
# chkconfig --add httpd                                                                    
# chkconfig httpd on                                                                       
# service httpd start                                                                      

  

  5) 测试

    echo 123  >  /usr/local/httpd2/htdocs/a.html

    elinks  --dump http://192.168.2.100/a.html


注:安装报错的可能

  安装报错1:

  configure: error: Cannotuse an external APR with the bundled APR-util

  根据错误信息进行解决

  安装aprapr-util

  cdhttpd-2.2.25/srclib/apr

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

  make && makeinstall

  cd ../apr-util

  ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr

  make && makeinstall

  再安装apache就可以了加入参数(--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util)即可


  安装报错2

  noSSL-C headers found

  configure:error: ...No recognized SSL/TLS toolkit detected

  #yum -y install openssl-devel


2.安装Mysql

1) 检查是否有mysql用户,检查3306端口是否被占

   #grep mysql  /etc/passwd

   #useradd -M  -s /sbin/nologin   mysql

   #netstat -untalp  | grep   :3306

2) 安装

  安装依赖包

  yum -y install compat-libtermcap

  yum -y install ncurses-devel

 

  # rpm -qa  | grep -i curses

  ncurses-libs-5.7-3.20090208.el6.x86_64

  ncurses-5.7-3.20090208.el6.x86_64

  ncurses-base-5.7-3.20090208.el6.x86_64

 checking for termcap functions library... configure: error:No curses/termcap library found

  # yum -y install/misc/Packages/ncurses-*

  # ls/misc/cd/Packages | grep curses

  或者yum list | grepcurses

  安装

  [root@localhost LAMP]# tar -xvfmysql-5.1.62.tar.gz

  [root@localhost LAMP]# cd mysql-5.1.62

  [root@localhost mysql-5.1.62]# ./configure--prefix=/usr/local/mysql2 --sysconfdir=/etc --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312

  [root@localhost mysql-5.1.62]# make

  [[email protected]]# make install

 

3)数据库初始化

   [root@localhost mysql2]# cd/usr/local/mysql2/bin/

   [root@localhost bin]# ./mysql_install_db--user=mysql

   # ls /usr/local/mysql2/var/mysql  //数据库目录:    安装目录/var/

 

4)创建主配置文件

   [root@localhost LAMP]# cd  mysql-5.1.62/support-files/

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

 

5)启动服务

  # /usr/local/mysql2/bin/mysqld_safe   --user=mysql &

 

6)停止服务

  #kill  -9   %1

  #pkill   -9  mysqld

查看端口

 netstat -anptul | grep :3306

 

7)登录数据库服务器(默认数据库管理员从数据库服务器本机登录没有密码)

  /usr/local/mysql2/bin/mysql   -uroot  -p

  设置数据库管理员从数据库服务器本机登录的密码

  # cd /usr/local/mysql2/bin/

  #[root@localhost bin]# ./mysqladmin -uroot -ppassword "123"  //重新设置密码

  重新测试

  /usr/local/mysql2/bin/mysql   -uroot  -p

  /usr/local/mysql2/bin/mysql   -uroot  -p123

 

3.编译安装PHP,连接AM组件

1)功能依赖包

   #yum -y install libxml2-devel

   onfigure:error: xml2-config not found. Please check your libxml2 installation.

   rpm -q libxml2

  # yumlist | grep -i libxml2

  # yum -yinstall libxml2-devel

主要的几个配置选项

   --enable-mbstring    //启用多字节支持

   --enable-sockets     //启用套接支持

   --with-apxs2        //指定httpd的支持模块路径

   --with-mysql        //启用MySQL驱动

2)安装

  [root@localhost LAMP]# tar -xvfphp-5.4.19.tar.gz

  [root@localhost LAMP]# cd php-5.4.19

  [root@localhost php-5.4.19]#./configure--prefix=/usr/local/php2 --with-mysql=/usr/local/mysql2--with-apxs2=/usr/local/apache2/bin/apxs--with-config-file-path=/usr/local/php5/etc --with-gd

  [root@localhost php-5.4.19]#make

  [root@localhost php-5.4.19]#make install

3)建立配置文件

  [root@localhostLAMP]#cp php-5.4.19/php.ini-production /usr/local/php2/etc/php.ini        

4)调整httpd.conf配置文件

  # vim vim/etc/httpd/httpd.conf

①  添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
②  定位至DirectoryIndexindex.html

修改为:
DirectoryIndex index.php index.html

  添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
  定位至DirectoryIndexindex.html

修改为:
DirectoryIndex index.php index.html

  测试php安装是否成功。
# cd /usr/local/apache2/htdocs                                                                                                                                     
# mv index.html index.php                                                                                                                                           
# vim index.php                                                                                                                                                           

<?php 
phpinfo();
?>
   保存退出后,将httpd服务重新启动: service httpd restart或者 reload让其重新载入配置文件即可测试php是否已经可以正常使用。


6)测试php连接mysql数据库服务器

 # vim htdocs/link.php

  <?php

  $linkdb=mysql_connect("localhost","root","123456");

  if($linkdb){

    echo"1";

  }else{

     echo"0";

  }

  ?>


  #elinks  --dump http://192.168.2.100/link.php

 

 


 

 


你可能感兴趣的:(LAMP架构)