在redhat 5.8上搭建LAMP。linux 系统为redhat5.8,apache-2.4.2,mysql-5.5.24,
php-5.3.14。apache和php都是通过源码编译来安装,而mysql直接解压就能运行。在编译之前先安装好编译环境。
yum -y groupinstall 'Development tools' 'Development Libraries' 'X Software Development' php要依赖X Softeware中的库,因此必须安装好。
一,编译安装apache
1,解决apache的依赖关系,安装apr-1.4.6.tar.bz2,apr-util-1.4.1.tar.bz2在apache的官网都有提供下载.安装apr,先执行./buildconf。为了方便以后卸载,我安装到/usr/local/lamp/apr
然后执行./configure --prefix=/usr/local/lamp/apr
成功后make,之后再make install。
安装apr-util。 ./buildconf --with-apr=/root/apr-1.4.6(指定apr源码的位置)
./configure --prefix=/usr/local/lamp/apr-util --with-apr=/usr/local/lamp/apr/,然后开始make,make install.
通过上面几个步骤完成apache的安装,由于安装时,自己定义了路径,因此还需要做以下修改
(1)对vim /etc/profile中添加一行PATH=/usr/local/lamp/apache/bin:$PATH
(2)export PATH=/usr/local/lamp/apache/bin:$PATH(为什么不用source /etc/profile,因使用source,原来的路径会重复)
(3)vim /etc/ld.so.conf.d/apache.conf添加一行/usr/local/lamp/apache/lib(让apache的库文件能让别人访问,但apache没有lib这个目录,也就是没有库文件,此步骤可以省略,如里有库文件,引步骤不能省略)
(4)ln -sv /usr/local/lamp/apache/include /usr/include/httpd (链接头文件,一定要让别人通过/usr/include/这个路径能够访问到,因此做一个httpd的链接)
(5)修改/etc/man.config中添加一行 MANPAHT /usr/local/lamp/apache/man
(6)提供一个服务,能够自由控制httpd服务。在别的主机上复制/etc/rc.d/init.d/下的httpd服务到本机上。修改/etc/rc.d/init.d/httpd
修改完之后,添加x权限,如果没有执行权限,用service启动时,会提示httpd:unrecognized service。chmod +x /etc/rc.d/init.d/httpd,并加入到chkconfig中
此时可以使用service httpd start启动httpd。
(7)apache安装的路径下已经提供了一个简单的启动的脚本,这个脚本的功能比较简单,不过可以先测试apache能否正常运行。/usr/local/lamp/apache/bin/apachectl start,在浏览器中输入172.16.150.1(这个是我linux的IP)。有没有显示it works。如果能正常显示,则此apache已经安装完成。注意源码安装后,apache的生成的文件都是apache目录下,当然也包括日志,主页等等。但是配置文件在/etc/httpd/下,因为./configure时指定配置文件放在这个目录下。
下面修改/etc/httpd/httpd.conf/extra/httpd-vhost.conf,在最后一行新建两个虚拟主机,并将原来配置文件提供的虚拟主机注释。
先创建/web/vhost/www和/web/vhost/pma两个目录,并提供index.html主页。并重启apache的服务apachectl redstart,由于没有安装dns,因此需要在c:\windows\system32\drivers\etc\hosts添加下面两行
在浏览器中,分别测试www.bingo.com与pma.bingo.com能否正常访问。如果不能则需要关闭linux的selinux。
二,安装mysql,考虑到新版的mysql不支持gcc编译。直接下载免安装版。mysql-5.5-24-linux26-i686.tar.gz
1,由于mysql比较特殊,需要用mysql这个用户来执行初始化,因此先需要添加mysql用户,而且还必须解压在/usr/local/mysql。
- [root@server30 ~]# useradd -r -s /sbin/nologin mysql
- [root@server30 ~]# tar xf mysql-5.5.24-linux2.6-i686.tar.gz -C /usr/local/
给mysql-5.5.24创建软件链接ln -s /usr/local/mysql-5.5.24.... /usr/local/mysql
2,mysql只是一个关系型数据库管理系统。而数据必须存放在磁盘上,考虑到以后数据的会增大,此时就让mysql的数据存储在lvm的分区上。
3,挂载MYDATA,并让其开机能自动挂载。修改/etc/fstab,并添加一行如下
创建mkdir /data并重新挂载mount -a 。为了方便数据管理在/data下创建mysql目录,并修改属主与属组chown mysql:mysql /data/mysql
4,对mysql做初始化。cd /usr/local/mysql,并修改里面文件的属主与属组为mysql,chown -R mysql:mysql .
5,给mysql提供配置文件。在mysql目录下的support-file目录下,有5个以.cnf结尾的是配置文件样本。而这些都是跟当前主机的内存相关,由于我虚拟机的内存是512M。因此cp support-files/my-large.cnf /etc/my.cnf(mysql的配置文件必须my.cnf),编辑/etc/my.cnf,
6,提供mysql的服务脚本
7,将mysql命令添加到PATH路径中,修改/etc/profile,并测试mysql能否正常工作。添加man文档到/etc/man.config中。
8,创建/etc/ld.do.conf.d/mysql.conf并在里面添加一行/usr/local/mysql/lib,。执行ldconfig,让系统重读mysql的库文件。
9,在/usr/include下创建mysql的软链接ln -s /usr/local/mysql/include /usr/clude/mysql
三,安装php,下载 php-5.4.4.tar.bz2
1,如果想让编译的php支持mcrypt扩展,则需下载这两个rpm包并安装。libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm
2,编译完之后make && make install,提供php的配置文件
cp php.ini-production /etc/php.ini
3,编辑/etc/httpd/httpd.conf 修改两个地方
4,重启httpd服务,service httpd restart,如果提示错误信息如下,则需要关闭selinux。执行setenforce 0。再重新启动服务。
Starting httpd: httpd: Syntax error on line 146 of /etc/httpd/httpd.conf: Cannot load /usr/local/lamp/apache/modules/libphp5.so into server: /usr/local/lamp/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
并测试,将/web/vhost/www/index.html改成index.php,并在里面输入下面几行
访问www.bingo.com能够显示出php信息,则表示已经php能够结合apache正常工作。
四,安装phpmyadmin,通过网页的形式来访问mysql数据库。
1,下载 phpMyAdmin-3.5.1-all-languages.tar.bz2,此版本对php的版本有要求。解压后将 phpMyAdmin-3.5.1-all-languages里面的文件全mv到/web/vhost/pma下。并为pma提供一个配置文件,在/web/vhost/pma下已经提供了一个配置文件样例,只需重新复制一份就可以。cp config.sample.inc.php config.inc.php,修改config.inc.php中的其中一行
lamp到此结束