LAMP架构编译及安装


*安装必备软件:

   Apach所需软件包

   apr-1.4.6.tar    apr-util-1.4.1.tar      httpd-2.4.4.tar

   Mysql所需软件包

   mysql-5.5.24.tar

   Php所需软件包

   gd-2.0.35.tar   php-5.4.5.tar

(一)Apach编译及安装(A)

1.在linux或windows平台共享apache安装软件,并挂载

yum install -y cifs-utils

mount //192.168.1.100/Apache /opt

2.解压文件

cd /opt

tar zxvf apr-1.4.6.tar.gz -C /usr/local

tar zxvf apr-util-1.4.1.tar.gz -C /usr/local

tar zxvf httpd-2.4.4.tar.gz -C /usr/local

3.复制解压文件,去掉版本号

cd  /usr/local

cp -r apr-1.4.6 httpd-2.4.4/srclib/apr

cp -r apr-util-1.4.1 httpd-2.4.4/srclib/apr-util

4.安装下面的三个必须安装的编译语言工具gcc、gcc-c++、make

安装过程出现的错误,要安装prce-devel这个开发包

yum -y install gcc

yum -y installgcc-c++

yum -y installmake

yum -y installpcre-devel

5.源码编译

cd  /usr/local/httpd-2.4.4

./configure \

--prefix=/usr/local/apache \

--enable-so \

--enable-rewrite \

--enable-mods-shared=most \

--with-mpm=worker \

--disable-cgid \

--disable-cgi

参数解释:

./configure \            //可执行配置程序

--prefix=                //指定将httpd服务程序安装到哪个目录

--enable-so              //该参数表示支持用mod_so模块提供的功能,用LoadModule在httpd.conf文件或包含的conf文件中动态加载某个模块。让 Apache 可以支持DSO模式

--enable-rewrite         //启用网页地址重启功能,用于网站优化及目录迁移维护

--enable-mods-shared=most//选项:告诉编译器将所有标准模块都动态编译为DSO模块。

--with-mpm=worker        // 让apache以worker方式运行

--with-mpm=worker        //该参数是配置apache将以何种模式编译的。Apache网站文档指出不同操作系统下的不同的默认模式.

--disable-cgid           //禁止用一个外部 CGI 守护进程执行CGI脚本

--disable-cgi            //禁止编译 CGI 版本的 PH,不便于扩展网站的应用访问能力

6.源码编译及安装

make                     把源代码转换为可执行程序

make install             拷贝过程:将/usr/local/httpd-2.4.4目录下编译完的http程序及相关目录,文件复制到预设的安装目录(及--prefix=/usr/local/apache指定的安装路径)

7.使httpd服务可以使用service管理

"service”管理的命令都在/etc/init.d/这个目录下

grep -v "#"/usr/local/apache/bin/apachectl> /etc/init.d/httpd

vi /etc/init.d/httpd

在文件最前面插入下面的三行,使其支持chkconfig命令

#!/bin/sh

             # chkconfig: 2345 85 15

             # description: Apache is a World Wide Web server.

第二行参数意义分别为:Linux2,3,4,5级别需要启动httpd服务,启动序号(85);关闭序号(15)

chmod+x /etc/init.d/httpd    //把httpd文件加上可执行权限

chkconfig --add httpd        //注如果在/etc/init.d/httpd不编辑这个# chkconfig: 2345 85 15内容的话,

就没法用chkconfig --add来添加apache这个服务的

8.修改主配置文件

vi /etc/httpd.conf(# vi /usr/local/apache/conf/httpd.conf)

ServerName //设置成hostname显示的名称

Listen 192.168.1.20        //添加或修改监听本地的IPv4的地址的80端口

9.验证是否搭建成功

在游览器输入Apache服务器地址//192.168.1.20

It works!                 //It works! 为默认首页------搭建成功!

(二)Mysql编译及安装

1.在linux或windows平台共享mysql源码包,并挂载

yum install -y cifs-utils

mount //192.168.1.100/Mysql /opt

cd /opt

tar zxvfmysql-5.5.24.tar.gz-C /usr/local     //解压源码包

2.源码安装

useraddmysql -s /sbin/nologin//添加用户mysql,并不让mysql登陆系统

mkdir /usr/local/mysql       //建mysql安装目录

安装编译工具

yum -y install \

gcc \

gcc-c++ \

make \

pcre-devel \

ncurses-devel \

cmake

3.进配置文件目录编译安装

cd /usr/local/mysql-5.5.24

cmake\

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/home/mysql/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_SSL=system \

-DMYSQL_TCP_PORT=3306 \

-DENABLE_DOWNLOADS=1 \

-DWITH_SSL=bundled

make && make install        //编译安装一起执行

#rm CMakeCache.txt          //如果安装失败,删除缓存文件,尝试重新安装

chown -R mysql.mysql /usr/local/mysql       //改变这个目录的属主与属组

export PATH=$PATH:/usr/local/mysql/bin/     //初始化环境变量

cd /root

vi .bash_profile//编辑.bash_profile这个文件

PATH=$PATH:/usr/local/mysql/bin/            //设置开机自动运行mysql

cp /usr/local/mysql/support-files/my-medium.cnf/etc/my.cnf //建立主配置文件

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld//使mysql支持service命令

chmod 755 /etc/init.d/mysqld  使mysqld有执行权限

chkconfig --add /etc/init.d/mysqld          //添加/etc/init.d/myspld到chkconfig里,用service命令来管理

或直接用chkconfig --add mysqldchkconfig也是可以添加

chkconfig  mysqld --level 235 on            //设置mysqld在2,3,5级别启动

4.初始化脚本

cd /usr/local/mysql/scripts

./mysql_install_db \

--user=mysql \//指定用户为mysql

--ldata=/var/lib/mysql \                   //链接文件是/var/lib/mysql

--basedir=/usr/local/mysql \               //基本目录/usr/local/mysql

--datadir=/home/mysql                      //数据目录为/home/mysql

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock   //软连接

vi/etc/init.d/mysqld

basedir=/usr/local/mysql    

datadir=/home/mysql      

#source /root/.bash_profile               //重新加载初始脚本

service mysqld start

netstat -anpt | grep 3306

#mysql -u root //登录数据库                //Mysql编译安装成功

(三)Php编译及安装

1.在linux或windows平台共享apache安装软件,并挂载

yum install -y cifs-utils

mount //192.168.1.100/Php /opt

tar xjvf php-5.4.5.tar.bz2 /usr/local/

tar zxvf gd-2.0.35.tar.gz -C /usr/local/

2.安装GD库及GD库关联程序

yum -y install \

libjpeg-devel \

libpng-devel \

freetype-devel \

zlib-devel \

gettext-devel \

libXpm-devel \

libxml2-devel \

fontconfig-devel \

openssl-devel \

bzip2-devel

3.编译安装gd库

cd /usr/local/gd/2.0.35/

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

make && make install

4.编译安装Php 时,make过程中出错解决办法

vi /usr/local/gd/include/gd_io.h

typedef struct gdIOCtx

{

 int (*getC) (struct gdIOCtx *);

 int (*getBuf) (struct gdIOCtx *, void *, int);

 void (*putC) (struct gdIOCtx *, int);

 int (*putBuf) (struct gdIOCtx *, const void *, int);

 /* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */

 int (*seek) (struct gdIOCtx *, const int);

 long (*tell) (struct gdIOCtx *);

 void (*gd_free) (struct gdIOCtx *);

 void (*data);  //增加这行

}

gdIOCtx;

5.编译安装Php

cd /usr/local/php-5.4.5/

./configure \

--prefix=/usr/local/php \

--with-apxs2=/usr/local/apache/bin/apxs \

--with-gd=/usr/local/gd \

--with-mysql=/usr/local/mysql \

--with-config-file-path=/etc \

--enable-sqlite-utf8 \

--with-zlib-dir \

--with-libxml-dir \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-ttf \

--with-iconv \

--with-openssl \

--with-gettext \

--enable-mbstring \

--enable-gd-native-ttf \

--enable-gd-jis-conv \

--enable-static \

--enable-zend-multibyte \

--enable-inline-optimization \

--enable-sockets \

--enable-soap \

--enable-ftp \

--disable-ipv6

解释:

--prefix=/usr/local/php \                       //php安装目录

--with-apxs2=/usr/local/apache/bin/apxs \       //apache接口插件

--with-gd=/usr/local/gd \                       //gd安装目录

--disable-ipv6                                  //不启用ipv6

make && make install

typedef struct gdIOCtx

{

 int (*getC) (struct gdIOCtx *);

 int (*getBuf) (struct gdIOCtx *, void *, int);

 void (*putC) (struct gdIOCtx *, int);

 int (*putBuf) (struct gdIOCtx *, const void *, int);

 /* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */

 int (*seek) (struct gdIOCtx *, const int);

 long (*tell) (struct gdIOCtx *);

 void (*gd_free) (struct gdIOCtx *);

 void (*data);  //增加这行

}

gdIOCtx;

6.修改主配置文件

cd /usr/local/php-5.4.5     //cd到解压php目录路径

cp php.ini-production /etc/php.iniv     //复制主配置文件

(四)配置apache让他支持Php和Mysql

1.修改配置文件让apache支持PHP

vi /usr/local/apache/conf/httpd.conf

gg 369(找到AddType application/x-gzip .gz .tgz这一行,在其下添加如下内容)

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

LoadModule  php5_module modules/libphp5.so   //没有这行就增加,有就不用添加。

DirectoryIndex index.html  index.php          //调整首页文件设置      

service httpd restart    

2.更改默认首页,验证Php链接

cd /usr/local/apache/htdocs/

rm --f index.html

vi index.php  

phpinfo();

?>

service httpd restart              //在游览器输入Apache服务器地址,出现下面内容,即成功



3.验证数据库链接

#mysql -u root                      //登录数据库

mysql>CREATE DATABASE  xiaohang;    //创建数据库名为xioahang

mysql>use xiaohang;                 //进入xiaohang这个数据库

mysql> CREATE TABLE xiao (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));  

 //创建表(xiao)

mysql> grant all on xiaohang.* to 'tom'@'%'identified by '123456';        //授权tom用户

cd /usr/local/apache/htdocs/

rm --f index.html

vi index.php  

$link=mysql_connect('192.168.1.20','tom','123456');

if(!$link) echo "Fail !!";

else echo "Success !!成功啦";

mysql_close();

?>

service httpd restart             //在游览器输入Apache服务器地址,出现“Success !!成功啦”,即数据库链接成功!

RetHat 6.5 LAMP架构编译及安装_第1张图片

如果游览器识别乱码,请把游览器编码改为UTF-8