LAMP环境搭建,从0开始。

时间:2021-09-22 03:16:49
LAMP 环境搭建,从0开始。


Step (1)


下载VMware虚拟机
下载Centos5.5系统


在虚拟机上安装Linix系统。这里注意要关闭SElinux和防火墙,方便以后lamp环境编译。
注意:这里我之前给/分区的时候,分的太少了(或许是这个原因),在我安装完所有LAMP软件之后,/分区里面剩余空间是0字节。
不知道是不是虚拟环境下的系统问题,还是分区分少了的原因。


选择的是 CentOS 64位 虚拟系统 进行安装。
分区情况: /root 100M
           /     24G
           swap  5G
           /home 9G
开始安装,时间比较久,超过半小时。


系统安装完成后,安装VMwareTools,这个可以共享PC文件,也可以让鼠标操作更方便。等等
(指导链接)http://blog.chinaunix.net/uid-22312037-id-3805520.html
(1)、VM Tools安装    
        选择vmware workstation的菜单VM-->install VMWare tools,执行如下命令:
        #mkdir /mnt/cdrom
        #mount -o ro /dev/cdrom /mnt/cdrom     (vmtools的安装文件放在vmware虚拟的cdrom中,首先要mount上这个光驱才能找到安装文件)
        #cd /mnt/cdrom
        #tar -zxvf VMwareTools-xxx.tar.gz -C /tmp
        #cd /tmp/vmware-tools-distrib
        #./vmware-install.pl    (执行vmware的安装脚本,这个脚本是用perl写的)
        在安装过程中会询问一些信息,不用管,一路回车即可。
        安装成功后,vmware会添加一个vmhgfs的模块到内核中,可以如下来查看:
        #lsmod | grep vmhgfs
        如果存在vmhgfs。则说明成功了,该目录是用于虚拟机与PC机之间共享文件的文件夹。
        vmhgfs在/mnt目录下。
(2)、虚拟机设置
        选择VM-->Setting-->Options-->Share Folders,在右侧Folder sharing中选择Always enabled启用共享文件夹功能,
        点击添加,选择宿主机与虚拟机共享的文件夹
(3)、这是重启linux可以获取很多方便的操作。比如复制粘贴,和鼠标移动。
        
Step (2)


小白起步,看李明的LAMP环境搭建视频,一步步走下去。
(指导链接)http://www.56.com/u15/v_NjIwMTI3MjQ.html
            http://www.56.com/u80/v_NjIwNDI3OTc.html
libxml2-2.6.30.tar.gz   autoconf-2.61.tar.gz    
freetype-2.3.5.tar.gz   zlib-1.2.3.tar.gz
mysql-5.0.41.tar.gz     gd-2.0.35.tar.gz        
ncurses-5.6.tar.gz      httpd-2.2.9.tar.gz      
php-5.2.6.tar.gz        jpegsrc.v6b.tar.gz      
phpMyAdmin-3.0.0-rc1-all-languages.tar.gz
libmcrypt-2.5.8.tar.gz
ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz
libpng-1.2.31.tar.gz    


下载所需的14个源代码包,网络上都可以搜索到。放到VMtools设置的共享文件夹里面。备用。
这里就讨论了,二进制包和源代码包的区别,与优劣。


1,安装编译工具
gcc gcc-c++ make


先查找是否安装 rpm -q make
注意 rpm 和 yum 安装的区别。
这里面,我不知道为什么,在Vmware下的linux是可以上网搜索yum源的。
可能是在系统安装的时候选择的原因,也可能是安装了VMwareTools的时候,我所以的问题都回答yes。
所以,我直接执行
    yum install gcc-c++
就可以直接下载安装了。(这里也有个缺点,就是下载耗费时间,可以向李明老师那样直接在本地yum源进行查找安装。)


2,关闭/删除 httpd mysql php
安装完 gcc gcc-c++ make,我们要关闭httpd mysql服务。
service httpd status #该指令时检测服务是否关闭。
rpm -qa | grep httpd #查找是否安装,注意没法用rpm命令查找源代码包的安装
yum remove httpd     #删除


3,注意关闭SElinux。
   删除防火墙定义规则:iptables -F


4,开始搭建LAMP
   (1)首先把所有tar.gz文件拷贝到同一个文件夹(我都放在/lamp)中,比较好管理。
   (2)简单的shell脚本,解压。
     vi tar.sh
     这里要查找一些vi命令怎么使用,
     本人现学现卖,I是insert模式,编辑完后ESC退出,输入‘:’,w是写,q退出。
     shell脚本内容如下:
     cd /lamp
     ls *.tar.gz > ls.list
     
     for TAR in `cat ls.list`
     do
      tar -zxf $TAR
     done
    写完脚本,ESC退出,输入“:wq”。执行脚本:
    sh -x tar.sh
    就可以把所有的代码包解压。
    (3)依次编译软件包
安装的步骤:
1、解压(之前都做完了)
2、./configure 配置,不同的软件需要各种不一样的配置。越往后面越麻烦,到php的时候,以前所有安装的软件包都要配置。
3、make 编译
4、make install 安装,拷贝


下面详细讲解安装的过程以及问题解决:
1、libxml2
cd libxml2-2.6.30 (这里不用把一个文件夹名字写全,打一部分按Tab就会自动补全)
(./configure --help #来检索需要的配置,)
(./configure --help | grep zlib #就是来检索到底zlib怎么配置)
./configure --prefix=/usr/local/libxml2/ #指定安装目录,这里要注意目录一定要记住,后面会用到。默认是在usr/local/
configure完后,
没错误,make
没错误,make install
检测是否安装:ls /usr/local/libxml2 #这个指令会输出一些文件夹下的内容,可以作为成功安装的判断依据
(如果你发现出现错误,想要删除)
(rm -rf /usr/local/libxml2  #删除安装的文件)
(rm -rf /lamp/libxml2-2.6.30 #删除安装源文件。这样比较保险保险。)
(源代码软件的删除,就是直接删除文件夹,如果删除Apache,先终止服务进程,直接删除文件夹,最好源代码包也直接删除)


2、libmcrypt
cd ../libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt/
make
make install 
(make && make install 这个简便操作,也可以编写shell脚本)


这里注意了,要安装libltdl,也在本文件夹下,
cd libltdl/
./configure --enable-ltdl-install
make
make install


3、zlib
这里zlib的安装不指定安装路径,因为好多后续的安装找不到zlib。所以,默认安装就行。
./configure
make
make install
(没有指定路径,怎么删除,查找安装路径删除文件即可,make install > /backup/zlib20140105.install.log)


4、libpng
cd ../libpng-1.2.31
./configure --prefix=/usr/local/libpng/
make 
make install
(其实,这个库文件并不是都需要,但是这里只是做个基本的安装,库文件)


5、jpeg6
这里比较特别的是,要先手工建立目录
 cd ../jpeg-6b/
 mkdir /usr/local/jpeg6
 mkdir /usr/local/jpeg6/bin
 mkdir /usr/local/jpeg6/lib
 mkdir /usr/local/jpeg6/include
 mkdir -p /usr/local/jpeg6/man/man1
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
make


这个时候,有可能会出现一个错误,
./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c
 make: ./libtool:命令未找到
make: *** [jcapimin.lo] 错误 127


首先,rpm   -qa | grep   libtool,检测是否安装libtool, yum install libtool
(指导链接)http://www.icultivator.com/p/7081.html
安装后,在/usr/share/libtool/找到 config.sub 和 config.guess放到jpeg-6b安装源代码包下面,覆盖对应文件,
make clean, 重新configure 
make
make install


6、freetype
 cd ../freetype-2.3.5
 ./configure --prefix=/usr/local/freetype/
make 
make install


7、autoconf
不指定安装路径
 cd ../autoconf-2.61
 ./configure; make ; make install > /backup/autoconf_20140105.install.log


8、gd库
cd ../gd-2.0.35
 ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/
make
这里会出现一个错误:
cd . && /bin/sh /lamp/gd-2.0.35/config/missing --run aclocal-1.9 -I config
aclocal:configure.ac:64: warning: macro `AM_ICONV' not found in library
 cd . && /bin/sh /lamp/gd-2.0.35/config/missing --run automake-1.9 --foreign 
cd . && /bin/sh /lamp/gd-2.0.35/config/missing --run autoconf
configure.ac:64: error: possibly undefined macro: AM_ICONV
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
解决办法:./configure --enable-m4_pattern_allow
(指导链接)http://www.shangxueba.com/jingyan/1923863.html
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/ --enable-m4_pattern_allow
make
make install


9、安装Apache httpd
cd ../httpd-2.2.9
./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
make
这里会出现一个错误
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[4]: *** [mod_deflate.la] 错误 1
make[4]: Leaving directory `/lamp/httpd-2.2.9/modules/filters'
make[3]: *** [shared-build-recursive] 错误 1
make[3]: Leaving directory `/lamp/httpd-2.2.9/modules/filters'
make[2]: *** [shared-build-recursive] 错误 1
make[2]: Leaving directory `/lamp/httpd-2.2.9/modules'
make[1]: *** [shared-build-recursive] 错误 1
make[1]: Leaving directory `/lamp/httpd-2.2.9'
make: *** [all-recursive] 错误 1
(指导链接)http://blog.chinaunix.net/uid-25266990-id-2914017.html
主要是由于64位电脑会出现这样的错误。
重新编译 安装zlib
cd zlib-1.2.3 //进入zlib目录
CFLAGS="-O3 -fPIC" ./configure   //使用64位元的方法进行编译
make
make install
make clean


然后重新安装httpd
cd ../httpd-2.2.9
./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
make
make install


安装完后,检查下是否安装成功
 ls /usr/local/apache2 #查看文件
 /usr/local/apache2/bin/apachectl start #试着启动apache
 # ps -le | grep httpd #查看进程
 
 这里可能遇到一个问题,mod_deflate.so  mod_expires.so  mod_rewrite.so,没有权限,
 是因为SElinux的限制。chcon -t texrel_shlib_t /usr/local/apache2/modules/***.so 就可以开启。
 
 最后在浏览器中输入域名,可以出现It works!我这里暂时是:127.0.0.1
 
 10、mysql
 安装之前要安装编译工具:
 ncurses #这个一定要先安装,否则mysql会报错
 cd ../ncurses-5.6
 ./configure --with-shared --without-debug --without-ada --enable-overwrite
 make
 make install


 先建立一个mysql组,和一个mysql用户
  groupadd mysql
  grep mysql /etc/group
  useradd -g mysql mysql
  grep mysql /etc/passwd


  cd ../mysql-5.0.41
  ./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all
  make 
  make install 
  cp support-files/my-medium.cnf /etc/my.cnf
  /usr/local/mysql/bin/mysql_install_db --user=mysql
   chown -R root /usr/local/mysql
   chown -R mysql /usr/local/mysql/var
   chown -R mysql /usr/local/mysql
   chgrp -R mysql /usr/local/mysql
   ls -ld /usr/local/mysql/var
   显示信息:  drwx------ 4 mysql mysql 4096 01-05 06:54 /usr/local/mysql/var
   查看安装情况:
       # ps -le | grep mysqld
       netstat -an | grep 3306
     /usr/local/mysql/bin/mysqladmin version #查询版本
     /usr/local/mysql/bin/mysqladmin variables
   设置密码:
     /usr/local/mysql/bin/mysql -u root
     Welcome to the MySQL monitor.  Commands end with ; or \g.
     Your MySQL connection id is 3
     Server version: 5.0.41-log Source distribution
    
     Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
     
     mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('********');
     Query OK, 0 rows affected (0.00 sec)
     
     mysql> exit
   自动启动
     echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
     cp /lamp/mysql-5.0.41/support-files/mysql.server /etc/rc.d/init.d/mysqld
     chown root.root /etc/rc.d/init.d/mysqld
     chmod 755 /etc/rc.d/init.d/mysqld
     ls -l /etc/rc.d/init.d/mysqld
     显示:-rwxr-xr-x 1 root root 10159 01-05 07:45 /etc/rc.d/init.d/mysqld
     chkconfig --add mysqld
     chkconfig --list mysqld
     显示:mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
     chkconfig --levels 245 mysqld off
     chkconfig --list mysqld
     显示:mysqld          0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:关闭  6:关闭


11、php
    ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --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
    这里可能会出现问题:在前面已经安装过libtool了。
    make 
    make install
    cp php.ini-dist /usr/local/php/etc/php.ini
    vi /etc/httpd/httpd.conf
    在里面查找AddType,输入/AddType 就可以查找了。然后,加入以下:
    AddType application/x-httpd-php .php .phtml
    
    然后编辑测试脚本:
    vi /usr/local/apache2/htdocs/info.php
    在浏览器中输入 127.0.0.1/info.php
    
12、Zend Optimizer
    按照流程安装,ZendOptimizer 3.2.6加载失败。
    网上所有的办法试了一遍,还是不能解决。
    我猜测,肯定是64 位系统,要求安装64位的ZendOptimizer 
    于是我上网找了一个 ZendOptimizer-3.3.3-linux-glibc23-x86_64
    重新安装,加载成功。
    安装过程就是解压,然后执行install.sh就行。
    
13、phpmyadmin
    cp -a /lamp/phpMyAdmin-3.0.0-rc1-all-languages /usr/local/apache2/htdocs/phpmyadmin
    cd /usr/local/apache2/htdocs/phpmyadmin/
    cp config.sample.inc.php config.inc.php
    vi config.inc.php
    查找 auth_type = 把cookie改成 http
    然后在浏览器中输入http://127.0.0.1/phpmyadmin/index.php
    用户名:root 密码是:装mysql的时候的密码。
    
好了,全部搞定。
本人小白,搭建LAMP,照葫芦画瓢了,好多内容都不是很了解,
从搭建到完成总共花了3天,前两天一直在熟悉linux怎么用,最开始连在哪里输入指令都不知道。
哈哈,不要喷我,最后两天搭建完,第三天,重新搭建,完成所有记录,备忘。
而且里面好多命令要重头好好查查。
而且,好多解决问题的方法都是在网上找的,也不是很了解解决的道理,或许有错误。这里请大家指教。
谢谢。