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怎么用,最开始连在哪里输入指令都不知道。
哈哈,不要喷我,最后两天搭建完,第三天,重新搭建,完成所有记录,备忘。
而且里面好多命令要重头好好查查。
而且,好多解决问题的方法都是在网上找的,也不是很了解解决的道理,或许有错误。这里请大家指教。
谢谢。