LAMP的配置和应用

目录

一,LAMP简述

1,LAMP平台概述

2,构建LAMP平台顺序

3,各组件的主要作用

二,安装 

1,安装Apache

2,安装数据库(mysql)

3,安装PHP

三,应用安装论坛


一,LAMP简述

1,LAMP平台概述

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

LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言
 

2,构建LAMP平台顺序

在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作
 

3,各组件的主要作用

平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

(前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。

(后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。

(中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

LAMP工作的过程

 

工作过程

1、当客户端请求的是静态资源时,web服务器会直接把静态资源返回客户端

2、当客户端请求的是动态资源时。httpd的PHP模块会进行相应的动态资源运算,如果此过程还需要数据库作为运算参数时,PHP会连接MySQL取得数据,然后进行运算,运算的结果转为静态资源由web服务器返回到客户端

apache主要实现如下功能

1、处理HTTP的请求,构建响应报文等自身服务

2、配置让apache支持PHP程序的响应(通过PHP模块或fpm)

3、配置Apache具体处理PHP程序的方法,如通过反向代理将PHP程序交给fcgi处理。

MySQL主要实现如下功能:

1、提供PHP程序对数据的存储

2、提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)

PHP主要实现如下功能

1、提供apache的访问接口,即CGI或Fast CGI(FPM)

2、提供PHP程序的解释器

3、提供MySQL数据库的连接函数的基本环境
 

二,安装 

编译安装的优点

1、具有较大的自由度,功能可定制
2、可及时获得最新的软件版本
3、普遍适用于大多数Linux版本,便于一直使用

1,安装Apache

解压软件包

[root@localhost opt]# tar zxf apr-1.6.2.tar.gz 
[root@localhost opt]# tar zxf apr-util-1.6.0.tar.gz 
[root@localhost opt]# tar jxf httpd-2.4.29.tar.bz2 
[root@localhost opt]# ls
apr-1.6.2         apr-util-1.6.0         httpd-2.4.29          mysql-5.6.26.tar.gz
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2  php-5.6.11.tar.bz2

将安装包移动到httpd-2.4.29并改名

[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost opt]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ls
ABOUT_APACHE     buildconf       httpd.dsp       libhttpd.mak   README.cmake
acinclude.m4     CHANGES         httpd.mak       LICENSE        README.platforms
Apache-apr2.dsw  CMakeLists.txt  httpd.spec      Makefile.in    ROADMAP
Apache.dsw       config.layout   include         Makefile.win   server
apache_probes.d  configure       INSTALL         modules        srclib
ap.d             configure.in    InstallBin.dsp  NOTICE         support
build            docs            LAYOUT          NWGNUmakefile  test
BuildAll.dsp     emacs-style     libhttpd.dep    os             VERSIONING
BuildBin.dsp     httpd.dep       libhttpd.dsp    README

安装其他插件

 yum -y install \
gcc \                            #C语言的编译器
gcc-c++ \                        #C++的编译器
make \                            #源代码编译器(源代码转换成二进制文件)
pcre \                            #pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel \                    #perl的接口开发包
expat-devel \                   #用于支持网站解析HTML、XML文件
perl                            #perl语言编译器

 

[root@localhost httpd-2.4.29]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 1:make-3.82-23.el7.x86_64 已安装并且是最新版本
软件包 4:perl-5.16.3-292.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务

上传httpd

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \        #指定 httpd 服务程序的安装路径
--enable-so \        #启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \        #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \             #启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi        #启用CGI(通用网关接口)脚本程序支持,便于增强网站的外部扩展应用访问能力

[root@localhost httpd-2.4.29]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \
> --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi

编译安装

[root@localhost httpd-2.4.29]# make &&make install

优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

/etc/init.d/ : service 可以识别服务启动脚本的目录位置
/usr/lib/systemd/system/ :则是systemctl 命令可以识别的服务启动脚本的目录位置

便于service管理操作

[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

修改配置文件

[root@localhost httpd-2.4.29]# vim /etc/init.d/httpd

将httpd加入到系统管理器

[root@localhost httpd-2.4.29]# chkconfig --add httpd

修改配置文件

[root@localhost httpd-2.4.29]# vi /usr/local/httpd/conf/httpd.conf

 

 wq保存退出

检查语法

[root@localhost httpd-2.4.29]# httpd -t
Syntax OK

查看网页内容  开启服务 过滤端口

[root@localhost httpd-2.4.29]# cat /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1></body></html>
[root@localhost httpd-2.4.29]# service httpd restart
[root@localhost httpd-2.4.29]# netstat -anpt | grep 80
tcp        0      0 192.168.18.91:80        0.0.0.0:*               LISTEN      71593/httpd 

开启网页查看

2,安装数据库(mysql)

安装插件

yum -y install \
gcc \            #编译语言,翻译官
gcc-c++ \
ncurses \            #字符终端下图形互动功能的动态库
ncurses-devel \                    #ncurses开发包
bison \            #语法分析器
cmake \            #mysql需要用cmake编译安装
autoconf    #是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。

[root@localhost opt]# yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf

解压安装包

[root@localhost opt]# tar xzf mysql-5.6.26.tar.gz -C /opt
[root@localhost opt]# cd mysql-5.6.26/

安装环境

cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    
-DDEFAULT_CHARSET=utf8 \            #指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \    #指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \                     #指定支持其他字符集编码
-DSYSCONFIDIR=/etc \                
                                         #/etc/mysql --->系统中有一个默认的配置/etc/my.cnf
-DMYSQL_DATADIR=/home/mysql/ \                    #数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock  #指定连接数据库的通讯文件(启动数据库的时候会生成)

[root@localhost opt]# cd mysql-5.6.26/
[root@localhost mysql-5.6.26]# cmake  \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DEXTRA_CHARSETS=all \
> -DSYSCONFIDIR=/etc \
> -DMYSQL_DATADIR=/home/mysql/ \
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock

编译安装

[root@localhost mysql-5.6.26]# make  && make install

 安装时间可能有点长,与配置有关

复制库文件

[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld  #给权限     
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld  #将mycql加到系统中
[root@localhost mysql-5.6.26]# chkconfig  mysqld --level 35 on  #3和5开启
[root@localhost mysql-5.6.26]# systemctl enable mysqld

创建管理用户

[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql   #创建用户
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/ #更改管理主/组
[root@localhost mysql-5.6.26]# chown mysql:mysql /etc/my.cnf  #更改管理主/组

设置环境变量

[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.6.26]# source /etc/profile

初始化数据库

[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \
> --datadir=/home/mysql

 修改配置文件

[root@localhost mysql-5.6.26]# vi  /etc/init.d/mysqld

 

开启服务查看端口

[root@localhost mysql-5.6.26]# service mysqld start
Starting MySQL. SUCCESS! 
[root@localhost mysql-5.6.26]# netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      89831/mysqld      

给root账号设置密码

[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "admin123"

登录数据库查看

[root@localhost mysql-5.6.26]# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> 

3,安装PHP

安装PHP环境

yum -y install \
gd \            #图像化处理的库
libpng \            #png格式图片的库
libpng-devel \
pcre \            #PCRE库支持正则表达式
pcre-devel \        #pcre-devel是使用PCRE做二次开发时所需要的开发库,也是编译安装需要的
libxml2-devel \        #解析xml标记语言的库
libjpeg-devel        #jpeg格式图片的库

[root@localhost opt]# yum -y install gd libpng libpng-devel libxml2-devel libjpeg-devel

解压软件包并跳转目录

[root@localhost opt]# tar jxf php-5.6.11.tar.bz2 
[root@localhost opt]# ls
apr-1.6.2.tar.gz       httpd-2.4.29.tar.bz2  php-5.6.11
apr-util-1.6.0.tar.gz  mysql-5.6.26          php-5.6.11.tar.bz2
httpd-2.4.29           mysql-5.6.26.tar.gz
[root@localhost opt]# cd php-5.6.11/
[root@localhost php-5.6.11]# 

编译安装

./configure \
--prefix=/usr/local/php5 \
--with-gd \                                            #激活gd 库的支持
--with-zlib \                                        #支持zlib功能,提供数据压缩功能的函式库
--with-apxs2=/usr/local/httpd/bin/apxs \  #指定httpd服务提供的apxs模块支持程序的文件位置
#用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用
--with-mysql=/usr/local/mysql \       #关联数据库                    
--with-config-file-path=/usr/local/php5 \  #指定配置文件
--enable-mbstring                             #启用多字节字符串功能,以便支持中文等代码

为了可以httpd mysql 对接,为了可以更好的处理动态请求

[root@localhost php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring 
[root@localhost php-5.6.11]# make && make install

 安装需要一段时间,与配置有关

优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/

修改Apache配置文件让Apache支持PHP

[root@localhost php-5.6.11]# vi /etc/httpd.conf

 

 

 wq保存退出

创建、编辑php页面文件

[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>



:wq

重启服务

[root@localhost php-5.6.11]# service httpd stop 
[root@localhost php-5.6.11]# service httpd start

在网页测试

三,应用安装论坛

[root@localhost php-5.6.11]# mysql -u root -p   #登录数据库
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#/把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//  所有访问来源/渠道

Query OK, 0 rows affected (0.03 sec)

mysql> flush privileges; 刷新数据库
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;  
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)
mysql> select user,host from mysql.user;  #查看是否有空用户
+---------+-----------------------+
| user    | host                  |
+---------+-----------------------+
| bbsuser | %                     |
| root    | 127.0.0.1             |
| root    | ::1                   |
|         | localhost             |
| root    | localhost             |
|         | localhost.localdomain |
| root    | localhost.localdomain |
+---------+-----------------------+
7 rows in set (0.00 sec)

mysql> delete from mysql.user where user='';#删除空用户
Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;     #刷新数据库
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

解压软件包并装换目录

[root@localhost opt]#unzip /opt/Discuz_X2.5_SC_UTF8.zip -d /opt/dis
[root@localhost opt]# ls
apr-1.6.2.tar.gz         httpd-2.4.29          php-5.6.11
apr-util-1.6.0.tar.gz    httpd-2.4.29.tar.bz2  php-5.6.11.tar.bz2
dis                      mysql-5.6.26
Discuz_X2.5_SC_UTF8.zip  mysql-5.6.26.tar.gz
[root@localhost opt]# cd dis/
[root@localhost dis]# 

复制文件到指定位置(便于操作)更改文件属主

[root@localhost dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost dis]# cd /usr/local/httpd/htdocs/bbs
[root@localhost bbs]# chown -R daemon ./config
[root@localhost bbs]# chown -R daemon ./data
[root@localhost bbs]# chown -R daemon ./uc_client
[root@localhost bbs]# chown -R daemon ./uc_server/data

网页测试

 

 

 

 

 

论坛创建完成可以创建用户发帖了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值