LAMP平台部署及应用

时间:2021-09-21 12:51:14

概述

         Lamp架构是目前成熟的网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。

组成:Linux 、Apache、MySQL、php/perl/pytho

优势:成本低廉、可定制、易于开发、方便易用、安全和稳定

 

1)准备工作

[root@crushlinux ~]# service  iptables stop               //关闭防火墙
[root@crushlinux ~]# setenforce 0 //关闭seLinux

(2)确认没有使用以rpm方式安装的httpd、MySQL及PHP

[root@crushlinux ~]# rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common php-mysql  mysql-server mysql dovecot –nodeps

安装

 

安装httpd

1、下载apache

wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz

2、解压压缩包

tar xf httpd-2.2.17.tar.gz

3、编译源码包,并且安装

(1)cd httpd-2.2.17
(
2)./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

LAMP平台部署及应用

编译完成后,如上图,说明已经编译成功

如果出现以下错误

则在编译时加入–with-included-apr即可。

--prefix=:指定安装目录

--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力

--enable-rewrite::启用网页地址重写功能,用于网站优化及目录迁移维护。(如果访问网站未找到,将自动跳转到其他网页)

--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。

--enable-cgi:启用CGI脚本程序支持,以便于网站的应用访问能力

--help:帮助信息

 

4.安装

make && make install

 

5.优化执行路径

[root@crushlinux local]# ln -s /usr/local/httpd/bin/*  /usr/local/bin/

注:在任意目录下。都可以使用httpd下的命令,为命令路径添加一条软连接。

 

添加httpd为系统服务并重命名为httpd

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd(将服务控制工具复制到init.d下)
vi
/etc/init.d/httpd #编辑启动脚本,增加红色部分内容,以便通过chkconfig管理
#
!/bin/sh
#chkconfig:
345 66 88
#description:Startup script
for the Apache HTTP Server

解释:

    345 66 88表示345运行级别是开启的,66为服务启动顺序,88服务为停止顺序。

 chmod +x /etc/init.d/httpd
chkconfig
--add httpd //将httpd服务添加为系统服务
chkconfig --list httpd
启动服务
service httpd start

报错1httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName    不能找到完全合格的域名

    解决:vim /usr/local/httpd/conf/httpd.conf

        97 #ServerName www.example.com:80

        98 ServerName localhost:80

   报错2

/usr/local/apache/bin/httpd: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

有很多so模块在/usr/local/lib目录下,所以在/etc/ld.so.conf中加入/usr/local/lib这一行

[root@crushlinux conf]# vi /etc/ld.so.conf
/usr/local/lib
[root@crushlinux conf]#
/sbin/ldconfig -v

现在您已经将 Apach源代码安装在 /usr/local/apache。本源代码安装支持可装载模块

和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器:

/usr/local/httpd/bin/apachectl start

.安装MySQL

1.准备工作

1)查看是否使用以rpm包安装的mysql-server-mysql软件,如果有,将其卸载。

[root@crushlinux ~]# rpm -qa | grep mysql
mysql
-libs-5.1.71-1.el6.x86_64
rpm
-ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm

2)mysql5.5以上的版本都需要cmake编译。而不是./configure

所以需要安装cmake

tar xf  cmake-2.8.6.tar.gz
cd cmake
-2.8.6
.
/configure
gmake
&& gmake install
或这是
yum
-y install cmake

2.源码编译及安装。

1)

[root@crushlinux ~]#groupadd mysql
[root@crushlinux
~]# useradd -M -s /sbin/nologin mysql -g mysql

2)解包

tar  xf mysql-5.5.22.tar.gz -C  /usr/src/
cd
/usr/src/mysql-5.5.22/

3)配置

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql   -DSYSCONFDIR=/etc
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all

-DCMAKE_INSTALL-PREFIX=/usr/local/mysql   :指定安装目录

-DSYSCONFDIR=/etc                                                       :指定初始化参数文件目录

-DDEFAULT_CHARSET=utf8                                :指定默认的字符编码集,如utf8

-DDEFAULT_COLLATION=utf8_general_ci      :指定默认使用的字符集校对规则。Utf8_general_ci是适用于utf-8字符集的通用规则

-DWITH_EXTRA_CHARSETS=all                :指定额外支持的其他字符集编码(默认支持所有)

如报以下错误:解决方法如下:

rpm -ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
[root@crushlinux mysql
-5.5.22]# rm CMakeCache.txt

4)安装

make && make install

5).安装后的其他调整

chown -R  mysql:mysql /usr/local/mysql/

6)建立配置文件

[root@crushlinux mysql]#rm -fr /etc/my.cnf
[root@crushlinux mysql]#cp support
-files/my-medium.cnf /etc/my.cnf

7)初始化数据库

/usr/local/mysql/scripts/mysql_install_db --user=mysql  --basedir=/usr/local/mysql  
--datadir=/usr/local/mysql/data/

8)设置环境变量

[root@crushlinux mysql]# ln -s  /usr/local/mysql/bin/*  /usr/local/bin/

9)添加系统服务

[root@crushlinux mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
[root@crushlinux mysql]# chmod
+x /etc/init.d/mysqld

启动服务

[root@crushlinux mysql]# service mysqld start
Starting MySQL.. [ OK ]

5.登录验证

[root@crushlinux mysql] mysql

三.安装PHP

1.源码包安装libmcript

[root@crushlinux ~]# tar zxf libmcrypt-2.5.8.tar.gz [root@crushlinux ~]# cd libmcrypt-2.5.8/
[root@crushlinux libmcrypt
-2.5.8]# ./configure
[root@crushlinux libmcrypt
-2.5.8]# make && make install
[root@crushlinuxlibmcrypt
-2.5.8]#ln -s /usr/local/lib/libmcrypt.* /usr/lib/

2.源代码安装mhash

[root@crushlinux ~]# tar zxf mhash-0.9.9.9.tar.gz 
[root@crushlinux
~]# cd mhash-0.9.9.9/
[root@crushlinux mhash
-0.9.9.9]# ./configure
[root@crushlinux mhash
-0.9.9.9]# make && make install
[root@crushlinux mhash
-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/

3、源代码安装mcrypt

[root@crushlinux ~]# tar zxf mcrypt-2.6.8.tar.gz
[root@crushlinux
~]# cd mcrypt-2.6.8/
[root@crushlinux mcrypt
-2.6.8]# ./configure
[root@crushlinux mcrypt
-2.6.8]# make && make install

编译时候报错:

configure: error: *** libmcrypt was not found

解决办法:

第一步ln -s   

/usr/local/bin/libmcrypt_config   /usr/bin/libmcrypt_config

 

第二步:

export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH

 

4、编译php

[root@crushlinux ~]# tar zxf php-5.3.6.tar.gz 
[root@crushlinux
~]# cd /php-5.3.6
[root@crushlinux php
-5.3.6]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring

编译参数解释:

--prefix=/usr/local/php5                  //指定安装目录

--with-mcrypt                             //加载扩展工具支持

--with-apxs2=/usr/local/httpd/bin/apxs //设置Apache提供的apxs模块                                               程序文件位置

--with-mysql=/usr/local/mysql              //指定mysql服务的安装路径

--with-config-file-path=/usr/local/php5 //指定php配置文件“php.ini”                                              的存放路径

--enable-mbstring                      //启用多字节字符串功能

如报以上错误,解决方法如下

[root@crushlinux php-5.6.30]# rpm -ivh /media/cdrom/Packages/libxml2-2.7.6-14.el6.x86_64.rpm

[root@crushlinux php-5.6.30]# rpm -ivh /media/cdrom/Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm

[root@crushlinux php-5.6.30]# rpm -ivh /media/cdrom/Packages/libxml2-devel-2.7.6-14.el6.x86_64.rpm

5.安装

make &&  make install

.整合lamp组件环境

php.ini配置文件

安装好PHP软件包以后,服务器并不会自动创建php.ini配置文件,在源码包目录下提供了两个样例配置文件。

[root@crushlinux php-5.3.6]# cd php-5.3.6
[root@crushlinux php
-5.3.6]# ls php.ini-*
/usr/src/php-5.3.6/php.ini-development //开发版样例文件,用户学习,测试
/usr/src/php-5.3.6/php.ini-production//生产版样例文件,用户实际运用

1复制样例文件

[root@crushlinux php-5.3.6]# 
cp php.ini
-development /usr/local/php5/php.ini

2php.ini配置调整

[root@crushlinux php-5.3.6]# vi /usr/local/php5/php.ini
773 default_charset = "utf-8" //设置默认字符集为utf-8
871 file_uploads = On //允许通过PHP网页上传文件
880 upload_max_filesize = 2M //允许上传的文件大小限制
883 max_file_uploads = 20 //每个HTTP请求最多允许上传的文件数
728 post_max_size = 8M //每次通过表单POST提交的数据量限制
226 short_open_tag = On //允许识别PHP短语法标记,即<? … ?>

3)调整Apache配置

[root@crushlinux ~]# vim /usr/local/httpd/conf/httpd.conf
53 LoadModule php5_module modules/libphp5.so
配置加载PHP程序的模块文件php5_module模块名称
modules
/libphp5.so 模块位置

54 AddType application/x-httpd-php .php .phtml
添加对“.php”类型网页支持
169 DirectoryIndex index.php index.html
识别常见的php首页文件
[root@crushlinux
~]# /usr/local/httpd/bin/apachectl restart

五、测试

1)测试PHP能否正常提供服务

[root@crushlinux ~]# vim /usr/local/httpd/htdocs/test1.php
<?php
phpinfo(); 内建函数用于显示PHP环境信息
?>
[root@crushlinux
~]# /usr/local/httpd/bin/apachectl restart

浏览器输入:http://10.3.0.209/test1.php

LAMP平台部署及应用

有如上信息为正确

 

2)测试PHP能否正常访问mysql数据库

[root@crushlinux ~]# vi /usr/local/httpd/htdocs/test2.php

<?php
$link
=mysql_connect('localhost','root',''); //连接的数据库
if($link) echo "OK!!"; // 连接成功时的反馈
else echo "FAILD!!"; // 失败时的反馈
?>

.Lamp架构应用实例

部署phpMyAdmin系统

  • phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统。
  • 通过该套件的网页界面对MySQL数据库进行管理和维护。 

实验环境依托于:http://www.linuxidc.com/Linux/2013-07/87644.htm

1.解包并复制到网站目录:

Eg:将phpMyAdmin套件部署到网站根目录下,以便通过地址http://www.benet.com/phpMyAdmin/访问:

[root@crushlinux~]# tar zxf phpMyAdmin-3.3.10-all-languages.tar.gz

[root@crushlinux~]# mv phpMyAdmin-3.3.10-all-languages/ /usr/local/httpd/htdocs/phpMyAdmin

2.建立配置文件config.inc.php:

默认提供的样例配置文件为config.sample.inc,以此建立config.inc.php配置文件,查找并修改配置文件中的“blowfish_secret”行,并设置一个短语密钥(此密钥用于网页cookie认证,不需要用户记忆)

[root@crushlinux~]# cd /usr/local/httpd/htdocs/phpMyAdmin/
[root@crushlinuxphpMyAdmin]# cp config.sample.inc.phpconfig.inc.php

[root@crushlinuxphpMyAdmin]# vim config.inc.php
$cfg[
'blowfish_secret'] = '123.asd';

3.访问phpMyAdmin的Web管理界面:

在浏览器中访问http://www.benet.com/phpMyAdmin/:

LAMP平台部署及应用

授权配置操作:

LAMP平台部署及应用

phpMyAdmin主页面:

LAMP平台部署及应用

 

phpMyAdmin系统默认使用cookie认证方式,在首次访问时页面下方会提示“必须启用Cookies才能登录”,要求在客户机的浏览器启用cookies机制。【直接F5刷新就ok了】