LAMP平台搭建

来源:互联网 发布:域名访问量查询 编辑:程序博客网 时间:2024/05/17 04:16

LAMP平台搭建

LAMP简介

lamp架构是目前最为成熟的一种企业网站应用模式,指的是协同工作的一整套系统和相关软件。能够提供动态动态web站点服务及其应用开发环境。LAMP这个词是一个缩写,具体包括:linux操作系统,apache网站服务器,MYSQL数据库服务器,PHP编程语言。该平台具有成本低廉,可定制,易于开发,方便易用,安全稳定的特点。

安装步骤:

一.安装Mysql

一般我们平时安装mysql都是源码包安装的,但是由于它的编译需要很长时间,所以,建议安装二进制免编译包。可以到mysql官网上去下载:

http://www.mysql.com/downloads/

具体版本根据你的平台和需求而定,下面我们使用mysql-5.0.96.tar.gz进行安装,下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.96.tar.gz/from/http://cdn.mysql.com/

下载完成之后核对md5码是否与所下载文件md5码一样,不一样的可能下载过程中出现错误.

查看软件包的MD5值:

md5sum 软件包

下面是安装步骤:
首先查看系统中是否已经安装了MySQL,如果有卸载所有以mysql开头的包

rpm –qa | grep mysql //查看系统中是否已经安装了MySQL

rm –rf /etc/my.cnf //查找/etc/my.cnf,如果有删除它

安装过程如下:
#cd /usr/local/src

#tar zxvf mysql-5.0.96.tar.gz //解压mysql软件包
#mkdir -p /usr/local/mysql  //创建mysql所要安装的目录
# groupadd mysql //添加mysql用户及用户组
# useradd -g mysql mysql
# chown -R root /usr/local/mysql //修改mysql目录权限
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data //修改mysql目录的所有权
#cd mysql.5.0.96

#./configure --prefix=/usr/local/mysql \

--with-charser=gbk \

--with-collation=latin1_general_ci \

--with-extra-charsets=all \

--with-comment=Source \

--with-server-suffix=-Community \

--with-unix-socket-path=/tmp/mysql.sock \

--with-pthread \

--enable-static \

--enable-thread-safe-client \

--with-client-ldflags=-all-static \

--with-mysqld-ldflags=-all-static \

--enable-assembler \

--without-innodb \

--without-isam \

--without-ndb-debug \

--sysconfdir=/etc \

--localstatedir=/usr/local/mysql/data

【注:参数前“--”复制时可能出现错误,删除掉重新添加上就可以了;

参数解释:

--prefix=/usr/local/mysql,mysql数据库的存放目录;

--with-charser=gbk,默认字符集为gbk格式;

--with-collation=latin1_general_ci,默认字符序是一般;

--with-extra-charsets=all,使用数据集除了默认的;

--with-comment=Source,评论编译环境是源环境;

--with-server-suffix=-Community,附加价值的版本字符串;

--with-unix-socket-path=/tmp/mysql.sock,unix域套接字的存放位置;

--with-pthread,强制使用pthread库;

--enable-static,建立静态库;

--enable-thread-safe-client,编译客户端线程;

--with-client-ldflags=-all-static,额外的连接参数为客户;

--with-mysqld-ldflags=-all-static ,额外的连接参数为mysql;

--enable-assembler,使用汇编版本的语言字符串;

--without-innodb,不包括该表处理程序;

--without-ndb-debug,禁用特殊的ndb调试;

--sysconfdir=/etc,配置文件目录;】

#make  && make install //编译安装

//以上步骤可能需要花费一定时间

#cp support-files/my-medium.cnf /etc/my.cnf //copy配置文件

#cp /usr/local/src/mysql/support-files/mysql.server.sh /etc/rc.d/init.d/mysql  //copy启动脚本文件并修改其属性

# chmod 755 /etc/rc.d/init.d/mysql
#chkconfig --add mysql
chkconfig  mysql on  //修改mysql的权限,使之成为系统服务,这样mysql服务就能在系统启动的时候自己启动了,平时维护起来用service mysql start/stop/restart/status这样的命令就可以了
进入到目录 /usr/local/mysql/bin/

# ./mysql_install_db --user=mysql //初始化mysql,并生成mysql系统数据库

出现以下提示初始化成功

 

#chown -R mysql:mysql data/

#./mysqld_safe --user=mysql& //在该目录下启动mysql

如出现 Starting mysqld daemon with databases from /usr/local/mysql/data 代表正常启动mysql服务了,按ctrl+c跳出

修改mysql的root密码

#/usr/local/mysql/bin/mysqladmin -u root -p password 123456

回车出现enter password:最开始密码默认为空,继续回车就可以了,123456就是你的新密码

【或者/usr/local/mysql/bin/mysqladmin -u root -p旧密码 password 新密码(不会出现交互式,直接就可以修改了、、、、)】
查看mysql进程使用ps命令:ps aux | grep mysql
登录mysql服务器中
#mysql -u 用户名(此处是root) -p

Password:键入之前设置的密码123456

Mysql>

这样你就进入服务器中了。

可以在服务器中进行一些简单的命令操作,如:show,select,drop,create,insert.....

二、安装apache

使用wget工具去下面网站下载所需软件包

http://archive.apache.org/dist/httpd/

#cd /usr/local/src
解压并释放源码包,并执行“cd”命令切换到展开的源码环境

tar zxvf httpd-2.2.23.tar.gz

cd /usr/local/src/httpd-2.2.23

配置编译选项;

./configure --prefix=/usr/local/apache --enable-so

【参数解释:(这些参数可以根据个人需要添加),如:

--prefix:用于指定httpd服务程序将要安装到的系统目录;

--enable-module=so:使httpd服务能够动态加载模块功能;

--enable-rewrite:使httpd服务具有rewrite网页地址重写功能;

--enable-so:会使用dso处理文件】

编译安装

#make && make install

此过程可能需要花费一定时间,apache安装完成;

检查httpd.conf主配置文件是否存在语法错误

/usr/local/apache/bin/httpd -t

syntax ok 表示语法设置正常

下面我们启动apache

/usr/local/apache/bin/apachectl -k start
netstat -anpt | grep :80
**如果希望再开机时自动运行httpd服务,可以将启动命令写入/etc/rc.d/rc.local文件中
eg: vi /etc/rc.d/rc.local

/usr/local/apache/bin/apachectl  -k start

【注:如果启动过程中出现如下错误信息,说明80端口被占用,可以使用如下命令 pgrep httpd | xargs kill -9 ,之后再次启动就可以了】

 

 

三、安装GD库必备的软件包

GD库其实是由5个组件组成的。哪5个呢(已经去掉了GIF了,不然是6个)?

zlib    jpeg6    libpng     freetype     libxml2这5个组件组成。下面是每个组件的详细介绍:

zlib其实和上面的gzip有关,就是说,想完全使用deflate的功能,并启用gzip,必须要zlib库的支持;

jpeg6跟验证码生成的jpeg图片有关;

libpng跟验证码生成的pnp图片有关;

libxml2就是负责解析XML标准和XML文件的;

freetype就是验证码生成图片上字体。如果想让验证码图片上支持更多的字体,需要安装freetype;

好了,我们讲完了5个组件的作用。

下面才开始是整体如何安装。

linux下的安装需要注意的细节比较多,一定要注意编译后面的参数

我们需要提前去该网站【下载地址:http://down1.chinaunix.net/distfiles/

下载这些软件包:

zlib-1.2.3.tar.gz 

jpegsrc.v6b.tar.gz

libpng-1.2.42.tar.bz2

freetype-2.3.5.tar.bz2

libxml2-2.6.30.tar.gz

gd-2.0.33.tar.gz

请一定按顺序来装,比如,一定要先装zlib,不然装libpng的时候就会出问题。

A:安装zlib-1.2.3

tar zxvf zlib-1.2.3.tar.gz     

cd zlib-1.2.3

./configure    

我操作的过程中只要是指定--prefix路径的,基本上到后面安装GD库的都无法正常编译,此处选择默认的安装路径进行安装。

make

make install

B:安装 jpeg6

建立目录:

mkdir /usr/local/jpeg6/

mkdir /usr/local//jpeg6/bin/

mkdir /usr/local/jpeg6/lib/

mkdir /usr/local/jpeg6/include/

mkdir /usr/local/jpeg6/man/

mkdir /usr/local/jpeg6/man1/

mkdir /usr/local/jpeg6/man/man1/    

【注意:文件最后那个"/"符号千万别忘记了,否则就不是建立目录了,或者是在mkdir命令后面加-p参数。(**-p是可以逐级创建目录、/表述“*/”/下面,如:/usr/local/jpeg6/man1/表示 man1下,/usr/local/jpeg6/man1表示和man1目录同级、、)】

cd /usr/local/src

tar -zvxf jpegsrc.v6b.tar.gz

cd jpeg-6b/

./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static 

一定要加后面的参数,不然没办法生成共享库。

make && make install

make install-lib    //最后一步不可以忽视。

C:安装libpng

tar -jvxf libpng-1.2.42.tar.bz2  //解压

cd libpng-1.2.42

./configure       //跟zlib一样,不能指定目录,要不然编译就会出问题,我们选择默认安装

make && make install

D:安装 freetype

cd /usr/local/src

tar jvxf freetype-2.3.5.tar.bz2

cd freetype-2.3.5

mkdir /usr/local/freetype/

./configure --prefix=/usr/local/freetype/

make && make install

E:安装libxml2-2.6.30

tar -zvxf libxml2-2.6.30.tar.gz

cd libxml2-2.6.30

./configure

make && make install

cp xml2-config /usr/bin

F:安装GD-2.0.33库

tar -zvxf gd-2.0.33.tar.gz

mkdir -p /usr/local/gd

cd gd-2.0.33

./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6/ 

--with-png-dir=/usr/local/lib/ --with-zlib --with-freetype=/usr/local/freetype/ 

--with-libxml-dir=/usr/local/lib/     //这里一个字符都不能错的。

直到报出下列消息,你再进行下一步的操作。

#** Configuration summary for gd 2.0.35:

   Support for PNG library:          yes

   Support for JPEG library:         yes

   Support for Fontconfig library:   yes

   Support for Xpm library:          yes

   Support for pthreads:             yes

##########################################

 

make && make install

cp gd.h /usr/local/lib             //将生成的头文件拷贝到lib目录下,否则会出错

最后,GD库安装完毕,下面开始编译php了。

四、安装PHP

cd /usr/local/src

tar zxvf php-5.4.8.tar.gz

配置php是用来连接httpdmysql的,所以别的选项可以不写,但下面这两个选项应该写上,这一步会花费一定时间并有大量信息出现

Cd php-5.4.8

./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql

编译并安装

make

make install

拷贝php的配置文件:

cp php.ini-development /usr/local/lib/php/php.ini

修改mysql.default_port = 3306
mysql.default_host = localhost
mysql.default_user = root

五、修改apache主配置文件

tar包安装的apache主配置文件位置与rpm包不太一样

vi /usr/local/apache/conf/httpd.conf  //进入配置文件httpd.conf修改
找到”AddType application/x-gzip .tgz”,在它的下面添加
“AddType application/x-httpd-php .php”和”AddType application/x-httpd-php-source .phps”
找到DirectoryIndex index.html在index.html 后添加 index.php

重新启动apache服务

/usr/local/apache/bin/apachectl start

如果重新起动APACHE出现:
Syntax error . line 232 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server:
/usr/local/apache2/modules/libphp4.so: cannot restore segment prot after reloc: Permission

denied
那就要按照下面的方法解决:

.编辑/etc/selinux/config,找到这段:
# This file controls the state of SELinux . the system.
# SELINUX= can take .e of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
SELINUX=enforcing

把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:
SELINUX=disabled
保存,关闭。

如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:
SELINUX=disabled
保存,退出。

重新启动apache

/usr/local/apache/bin/apachectl start

查看apache是否启动成功:

ps -ef | grep apache

Netstat -anp | grep 80

 

六、测试php页面和mysql数据库

(1)编写phpinfo:

Vi /usr/local/apache/htdocs/index.php  

<?php
phpinfo();
?>

以http://ip/index.php的方式访问php页面,访问成功会出现如下页面

 

(2)编写mysql的测试文件:

vim /usr/local/apache/htdocs/testdb.php 

<?php 

$link=mysql_connect('localhost','root','123456'); 

if(!$link) echo "fail"; 

else echo "success"; 

mysql_close(); 

?>

测试,在浏览器中输入http://ip/testdb.php,出现“success”表示mysql和php连接成功

 

 

测试过程中可能会出现启动不了mysql。

报错信息:

 

解决办法:

Cd /usr/local/mysql/bin/

执行./mysqld_safe --user=mysql &就可以了













 

 

0 0