关于LAMP

LAMP就是Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

使用源码包方式安装,最大的好处就是可以定制环境及使用最新版本的软件但是在生产环境不推荐使用最新版本,以此来保证平台运行的稳定很安全。本实验使用httpd-2.2.19.tarmysql-5.5.15-linux2.6-i686.tar.gzphp-5.3.7.tar.bz2REDHAT5.x平台下搭建LAMP环境。

实验步骤:

Mysql的安装

解压mysql-5.5.15-linux2.6-i686.tar.gz源代码

tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local

建立软连接

[root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql

查看软连接

[root@localhost local]# ll

lrwxrwxrwx  1 root root   27 07-31 04:58 mysql -> mysql-5.5.15-linux2.6-i686/

groupadd mysql            #创建组

useradd -r -g mysql mysql    #创建账号 加入组mysql

cd /usr/local

chown -R mysql .           #修改所有者为mysql

chgrp -R mysql .            #修改所属组为masql

cd  mysql

scripts/mysql_install_db --user=mysql #执行初始化脚本,以mysql的身份执行

chown -R root .

chown -R mysql data

可选项的

cp support-files/my-medium.cnf /etc/my.cnf

bin/mysqld_safe --user=mysql &    #启动mysql  

cp support-files/mysql.server /etc/init.d/mysqld   

启动mysql服务

Service  mysqld start

netstat -tupln |grep mysql      #查看mysql的端口3306是不是开启

chkconfig --add mysqld       #设置开机启动

查看开机启动设置

[root@localhost mysql]# ll /etc/rc.d/rc3.d/|grep mysql

lrwxrwxrwx 1 root root 16 07-24 22:03 S64mysqld -> ../init.d/mysqld

由于mysql的库文件和头文件是非标准路径,系统默认不会调用,需要我们指定路径,这样系统才可以调用,比如系统的可以调用的库文件只有 /usr/lib/usr/local/lib /lib/  mysql的库文件在/usr/local/mysql

创建一个文件使系统可以调用mysql库文件

[root@localhost mysql]# cd /etc/ld.so.conf.d/

[root@localhost ld.so.conf.d]# vim mysql.conf #在文件中指明库文件的位置

/usr/local/mysql/lib

[root@localhost ld.so.conf.d]# ldconfig -v |grep mysql 

/usr/local/mysql/lib:               #可以看到已经调用到库文件

        libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

同样头文件include也需要类似做法

[root@localhost mysql]# cd /usr/include/

[root@localhost include]# ln -s /usr/local/mysql/include/ mysql  #创建一个链接

[root@localhost include]# ll mysql/      #查看mysql的头文件

Apache架设

解压httpd-2.2.19.tar.bz2

tar -jxvf httpd-2.2.19.tar.bz2 -C /usr/local/src/

cd /usr/local/src/httpd-2.2.19/

configure    常用指令如下:

--bindir=DIR         #源代码安装之后形成的二进制指令位置

--sbindir=DIR         #表示安装完成,管理员执行的二进制指令位置

--prefix=PREFIX      #表示源代码进行编译之后所安装的路径 

--sysconfdir=DIR      #apache配置脚本的位置

--libdir=DIR          #库文件目录

--includedir=DIR       #头文件目录

可选指令:

--enable-cgi            #支持cgi的动态页面

--enable-rewrite         #支持URL的重定向

--enable-so            #动态的共享对象,动态链接库

--enable-ssl            #支持加密加密访问的https

包的可选项:

--with-mpm=MPM     #多进程处理机制

--with-z=DIR              #支持在线压缩,提高网站访问速度

检测预编译环境

[root@localhost httpd-2.2.19]# ./configure --prefix=/usr/local/apache  --sysconfdir=/etc/httpd  --enable-so --enable-ssl   --with-z

一切正常的话,就可以进行编译了

[root@localhost httpd-2.2.19]# make

把相应的文件放到各自的目录

[root@localhost httpd-2.2.19]# make install

cd /usr/local/apache/

cd  bin/

./apachertl start               #启动apache服务

写到开机脚本

vim /etc/rc.local

/usr/local/apache/bin/apachectl start

类似mysqlapache的头文件和库文件也是非标准路径,需要指出头文件和库文件的位置来让系统调用

cd /etc/ld.so.conf.d/

vim httpd.conf

/usr/local/apache/lib            #httpd.conf中指出apache的库文件的位置

库文件已经加载

[root@localhost ld.so.conf.d]# ldconfig -pv | grep apr

        libgstdataprotocol-0.10.so.0 (libc6) => /usr/lib/libgstdataprotocol-0.10.so.0

        libaprutil-1.so.0 (libc6) => /usr/local/apache/lib/libaprutil-1.so.0

        libaprutil-1.so.0 (libc6) => /usr/lib/libaprutil-1.so.0

        libaprutil-1.so (libc6) => /usr/local/apache/lib/libaprutil-1.so

        libapr-1.so.0 (libc6) => /usr/local/apache/lib/libapr-1.so.0

        libapr-1.so.0 (libc6) => /usr/lib/libapr-1.so.0

        libapr-1.so (libc6) => /usr/local/apache/lib/libapr-1.so

调用apache头文件

[root@localhost ld.so.conf.d]# ln -s /usr/local/apache/include/ apache

 

PHP的架设

tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src

cd /usr/local/src/php-5.3.7/

./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all

编译

[root@localhost php-5.3.7]# make

把编译文件放在各自的目录下

make install

测试LAMP环境是否正常工作

重启apache服务

/usr/local/apache/bin/apachectl restart

http方式访问192.168.10.10

 

测试PHP是否正常

cd /usr/local/apache/htdocs/

vim index.php

<html><body><h1>It works!</h1></body></html>

<?php

 phpinfo();                 #调用PHP的模块

?>

vim /etc/httpd               #编辑apache配置脚本

166  AddType application/x-httpd-php.php#添加此内容

167 <IfModule dir_module>

168     DirectoryIndex index.html index.php #index.php也加入主目录

169 </IfModule>                              

重启apache服务

/usr/local/apache/bin/apachectl start  

http方式访问192.168.10.10,可以调用PHP版本5.3.7

测试PHP是否可以连接到mysql

 

[root@localhost htdocs]# vim index.php

<html><body><h1>It works!</h1></body></html>

<?php

  $link=mysql_connect('127.0.0.1','root','');

 if ($link)

echo "It is connected!";

else

echo "It is wrong";

?>

 

 

至此,linux环境下的LAMP已经搭建完毕,至于怎么创建论坛,可以看看我写的上一篇博客http://myheart.blog.51cto.com/5635718/976057  深表感谢!

如果对数据库进行操作

[root@localhost bin]# /usr/local/mysql/bin/mysql

mysql>