知识学堂
  • ·联系电话:+86.023-75585550
  • ·联系传真:+86.023-75585550
  • ·24小时手机:13896886023
  • ·QQ 咨 询:361652718 513960520
当前位置 > 首页 > 知识学堂 > 常见技术问题
CentOS 6.0下搭建LAMP环境(源码安装)
更新时间:2012-03-27 | 发布人:本站 | 点击率:575

历史两日,终于在centos 6.0上搭建好了完整的LAMP开发环境,中间有很多麻烦,但还是一点点解决了。并且写好了这份安装文档,留给自己和以后再安装中遇到问题的人。予人玫瑰,手留余香。
 

一、搭建环境:

1、CentOS 6.0虚拟机(最小安装)
 

2、putty

3、ssh shell

二、准备工作:

1、源码包


 

2、安装gcc、gcc-c++编译器(yum安装)

若虚拟机能联网,直接输入命令yum install gccyum install gcc-c++;若不能联网,将centos光盘镜像挂载上,修改yum的本地源,使机器从本地源yum方式安装

3、检查机器上是否已经安装了mysql、php、apache,使用命令rpm -qa mysql。若安装了,则使用命令rpm -e 包的全名 --nodeps卸载

4、关闭selinux,清空防火墙规则

5、开放80、3306、22端口

因为默认情况下,防火墙的80、3306、22端口是关闭的,这样的话对于客户机访问虚拟机上的web,会出现访问不到的现象。所以要开启。

service iptables stop

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT   //那是大写的英文字母I,不是数字1
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

然后保存:
#/etc/rc.d/init.d/iptables save

重启防火墙

service iptables restart
 

6、在linux下建立目录lamp,存放上传的源码

7、使用ssh shell将windows下下载好的14个源码包上传到/lamp

8、解包

因为包很多,这里编写shell脚本/lamp/tar.sh进行解包

tar.sh
 

  1. #!/bin/sh  
  2. cd /lamp  
  3. ls *.tar.gz > ls.list  
  4.   
  5. for TAR in `cat ls.list`  
  6. do   
  7.      tar -zxvf $YAR  
  8. done  

执行脚本tar.sh进行解包
 

9、将源码包*.tar.gz全都删除
三、安装过程:

1、为方便操作,编写安装脚本/lamp/lamp.sh进行安装

lamp.sh

  1. cd /lamp/libxml2-2.6.30  
  2. ./configure --prefix=/usr/local/libxml2/  
  3. make   
  4. make install  
  5.    
  6. cd /lamp/libmcrypt-2.5.8  
  7. ./configure --prefix=/usr/local/libmcrypt/  
  8. make   
  9. make install  
  10.   
  11. cd /lamp/libmcrypt-2.5.8/libltdl  
  12. ./configure --enable-ltdl-install  
  13. make  
  14. make install  
  15.   
  16. cd /lamp/zlib-1.2.3  
  17. ./configure  
  18. make  
  19. make install   
  20.   
  21. cd /lamp/libpng-1.2.31  
  22. ./configure --prefix=/usr/local/libpng/  
  23. make  
  24. make install  
  25.   
  26. mkdir /usr/local/jpeg6  
  27. mkdir /usr/local/jpeg6/bin  
  28. mkdir /usr/local/jpeg6/lib  
  29. mkdir /usr/local/jpeg6/include  
  30. mkdir -p /usr/local/jpeg6/man/man1  
  31. cd /lamp/jpeg-6b  
  32. ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static  
  33. make  
  34. make install  
  35.   
  36. cd /lamp/freetype-2.3.5  
  37. ./configure --prefix=/usr/local/freetype/  
  38. make  
  39. make install  
  40.   
  41. cd /lamp/autoconf-2.61  
  42. ./configure  
  43. make   
  44. make install  
  45.    
  46. cd /lamp/gd-2.0.35  
  47. ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/  
  48. make  
  49. make install  
  50.   
  51. cd /lamp/httpd-2.2.9  
  52. ./configure --prefix=/usr/local/apache2/ --sysconfdir=/etc/httpd/ --with-included-apr --disable-userdir --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support  
  53. make  
  54. make install  
  55.    
  56. /usr/local/apache2/bin/apachectl start  
  57. echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.sysinit  
  58.   
  59. cd /lamp/ncurses-5.6  
  60. ./configure --with-shared --without-debug --without-ada --enable-overwrite  
  61. make   
  62. make install  
  63.   
  64. groupadd mysql  
  65. useradd -g mysql mysql  
  66. cd /lamp/mysql-5.0.41  
  67. ./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all  
  68. make  
  69. make install  
  70.   
  71. cp support-files/my-medium.cnf /etc/my.cnf  
  72. /usr/local/mysql/bin/mysql_install_db --user=mysql  
  73. chown -R root /usr/local/mysql  
  74. chown -R mysql /usr/local/mysql/var  
  75. chgrp -R mysql /usr/local/mysql  
  76.   
  77. /usr/local/mysql/bin/mysqld_safe  --user=mysql &  
  78.   
  79. cp /lamp/mysql-5.0.41/support-files/mysql.server /etc/rc.d/init.d/mysqld  
  80. chown root.root /etc/rc.d/init.d/mysqld  
  81. chmod 755 /etc/rc.d/init.d/mysqld  
  82. chkconfig --add mysqld  
  83. chkconfig --list mysqld  
  84. chkconfig --levels 245 mysqld off  
  85.    
  86. cd /lamp/php-5.2.6  
  87. ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apx --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets   
  88. make  
  89. make install  
  90.   
  91. cp php.ini-dist /usr/local/php/etc/php.ini  
  92. echo "Addtype application/x-httpd-php .php .phtml" >> /etc/httpd/httpd.conf  
  93. /usr/local/apache2/bin/apachectl restart   执行脚本,进行安装(时间很长,可以去睡觉了偷笑

    2、配置mysql

    cd /usr/local/mysql

    bin/mysqladmin version //简单的测试

    bin/mysqladmin varibles //查看所有mysql参数

    bin/mysql -u root //没有密码可以直接登录本机服务器

    mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
    mysql> FLUSH PRIVILEGES;
    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
    3、安装zend加速器
    mkdir /usr/local/php/etc
    cp php.ini-dist /usr/local/php/etc/php.ini   //更改之前设定的php.ini的配置文件位置,安装zend要用
    进入Zend包的目录
    ./install-tty
    4、phpmyadmin的安装与配置
    cd /lamp
    cp -a  phpMyAdmin-3.0.0-rc1-all-languages  /var/www/html/phpmyadmin    //拷贝目录到指定位置(网站主目录/var/www/html下)并改名为phpmyadmin
    cd /usr/local/apache2/htdocs/phpmyadmin/
    cp config.sample.inc.php config.inc.php
    进入/var/www/html/phpmyadmin
    修改配置文件config.inc.php,将$cfg['blowfish_secret'] = '' 空格处填上登录phpmyadmin的密码,例如:$cfg['blowfish_secret'] = '123456'

     

    四、常见错误及备注:

    1、若shell脚本是从windows上传到linux上,而不是直接在linux上写的,可能会出现执行错误。解决办法见我的另一篇日志:《shell脚本在Linux下运行错误的解决方法》

    2、对不能联网状态下yum本地安装的方法,见 《centos虚拟机不能联网状况下yum方式从本地安装软件包》

    3、linux启动apache libltdl.so.3:cannot open shared object file:No such file or directory异常

    执行ln -s /usr/local/lib/libltdl.so.3 /usr/lib/libltdl.so.3  即可

    4、若出现Address already in use: make_sock: could not bind to address [::]:80异常

    解决方法:reboot启动linux

    5、若出现在linux终端执行clear或者top命令时出现:‘xterm’:unknown terminal type的错误,参考《在linux终端执行clear或top命令时出现:'xterm': unknown terminal type的错误》

    6、文中源码包和tar.sh、lamp.sh脚本的下载    点击下载 提取码:dn9qqc4x
     

    7、若有其他错误,请百度寻找答案,或者给我发邮件guoyin0612@163.com

分享到: QQ空间 新浪微博 开心网 人人网