千家信息网

LAMP架构 —(介绍及实战)

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,源码编译安装LAMP1.Apache网站服务2.MySQL服务3.LAMP架构应用实例Apache简介Apache起源:1.源于A Patchy Server,著名的开源Web服务软件2.1995年时
千家信息网最后更新 2026年11月01日LAMP架构 —(介绍及实战)

源码编译安装LAMP


1.Apache网站服务
2.MySQL服务
3.LAMP架构应用实例

Apache简介

Apache起源:

1.源于A Patchy Server,著名的开源Web服务软件
2.1995年时,发布Apache服务程序的1.0版本
3.由Apache软件基金会(ASF) 负责维护
4.最新的名称为"Apache HTTP Server"
5.官方站点: http://httpd.apache.org/

Apache简介

主要特点:

1.开放源代码、跨平台应用
2.支持多种网页编程语言
3.模块化设计、运行稳定、良好的安全性

软件版本:

1.X:

1.目前最高版本是1.3,运行稳定
2.向下兼容性较好,但缺乏一些较新的功能
2.X:
1.目前最高版本是2.4
2.具有更多的功能特性
3.与1.X相比,配置管理风格存在较大差异

编译安装httpd服务器

编译安装的优点

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

获得Apache服务器的源码包

1.参考地址: http://httpd.apache.org/download.cgi

编译安装httpd服务器

准备工作

1.卸载httpd及相关依赖包

[root@www~]# rpm -e httpd --nodeps

2.源码编译及安装

[root@www ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src[root@www ~]# cd /usr/src/httpd[root@www httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi[root@www httpd-2.4.25]# make && make install 
确认安装结果:
[root@www ~]# Is /usr/local/httpdbin cgi-bin error   icons   logs    manualbuild   conf    htdocs  include man modules
优化执行路径:
[root@www ~]# In -S /usr/local/httpd/bin/* /usr/local/bin[root@www ~]# Is -I /usr/local/bin/httpd /usr/local/bin/apachectlIrwxrwxrwx 1 root root 30 5月10 06:20 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectlIrwxrwxrwx 1 root root 26 5月10 06:20 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
添加httpd系统服务

1.通过chkconfig进行管理系统服务
2.通过systemctl进行管理系统服务

[root@www ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd[root@www ~]# vim /etc/init.d/httpd#!/bin/bash#chkconfig: 35 85 21#description: Startup script for the Apache HTTP Server[root@www ~]# chkconfig --add httpd[root@www ~]# chkconfig --list httpdhttpd   0:关 1:关 2:关 3:开 4:关 5:开 6:关

httpd服务的目录结构

主要目录和文件:

1.服务目录: /usr/local/httpd/
2.主配置文件: /usr/local/httpd/conf/httpd.conf
3.网页目录: /usr/local/httpd/htdocs/
4.服务脚本: /usr/local/httpd/bin/apachectl
5.执行程序: /usr/localhttpd/bin/httpd
6.访问日志: /usr/local/httpd/log/access log
7.错误日志: /usr/localhttpd/log/error
log

httpd服务器基本配置

Web站点部署过程:

1.确定网站名字、IP地址
2.配置并启动httpd服务
3.部署网页文档s
4.在客户机中访问Web站点
5.查看Web站点访问情况

httpd.conf配置文件

全局配置项:决定httpd服务器的全局运行参数:
ServerRoot "/usr/local/httpd"Listen 80User daemonGroup daemonServerAdmin webmaster@kgc.comServerName www.kqc.comDocumentRoot"/usr/local/httpd/htdocs."DirectoryIndex index.html index.phpErrorLog logs/error logLogLevel warn1 CustomLog logs/access_ logcommonPidFile logs/httpd.pidCharsetDefault UTF-8Include conf/extra/httpd-default.conf......
常用的全局配置参数

1.ServerRoot:服务目录
2.Listen:监听的IP地址、端口号
3.User:运行服务的用户身份
4.Group:运行服务的组身份
5.ServerAdmin:管理员邮箱
6.ServerName:网站服务器的域名
7.DocumentRoot:网页文档的根目录
8.DirectoryIndex:默认的索引页文件
9.ErrorLog:设置错误日志文件的路径
10.LogLevel:记录日志的级别,默认为warn

常用的全局配置参数(续)

1.CustomLog:访问日志文件的位置
2.PidFile:保存httpd进程PID号的文件
3.AddDefaultCharset:设置站点中的网页默认使用的字符集编码
4.Timeout:网络连接超时,默认为300秒
5.KeepAlive:是否保持连接,可选On或Off
6.MaxKeepAliveRequests:每次连接最多请求文件数
7.KeepAlive' Timeout:保持连接状态时的超时时间
8.Include:需要包含进来的其他配置文件

MySQL的编译安装

MySQL 5.X系列版本的使用最为广泛,稳定性、兼容性都不错,此处选用mysql-5.6.36.tar.gz源码包
准备工作

1.确认没有使用RPM方式安装mysql-server、mysql ,
2.安装光盘自带的ncurses-devel包
3.安装cmake包

[root@www ~]# tar zxf cmake-2.8.6.tar.gz[root@www ~]# cd cmake-2.8.6 [root@www cmake-2.8.6]# ./configure[root@www cmake-2.8.6]# gmake && gmake install
源码编译及安装
[root@www ~]# groupadd mysql[root@www ~ ]# useradd -M -S /sbin/nologin mysql -g mysql[root@www ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src[root@www ~]# cd /usr/src/mysql-5.6.36[root@www mysql-5.6.36]# cmake -DCMAKE INSTALL PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general ci -DWITH EXTRA CHARSETS=all[root@www mysql-5 6.36]# make && make install
安装后调整
[root@www ~]# chown -R mysql:mysql /usr/local/mysql[root@www mysql-5.6.36]# rm -rf 7etc/my.cnf[root@www mysql-5.6.36]# cp support- files/my-default.cnf /etc/my.cnf[root@www mysql-5.6.36]# /usr/local/mysql/scripts/mysql install db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/[root@www mysql-5.6.36]#echo"PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile[root@www mysql-5.6.36]# . /etc/ profile
添加系统服务
以便通过chkconfig进行管理

[root@www mysql-5.6.36]# cp support-files/mysql.server /etcfred/init.d/ mysqld
[root@www mysql-5.6.36]# chmod +X 7etc/rc.d/init.d/mysqld
[root@www mysql-5.6.36]# chkconfig --add mysqld

启动MySQL服务,并查看运行状态
[root@www mysql-5.6.36]# service mysqld startStarting MySQL.Logging to '/usr/local/mysql/data/www.err'.SUCCESS![root@www mysql-5.6.36]# /etc/init.d/mysqld statusSUCCESS! MySQL running (41548)[root@www mysql-5.6.36]# netstat -anpt | grep mysqldtcp6    0   0..3306     ...*    LISTEN  41 548/mysqld
以便通过chkconfig进行管理
[root@www mysql-5.6.36]# cp support-files/mysql.server /etcfred/init.d/ mysqld[root@www mysql-5.6.36]# chmod +X 7etc/rc.d/init.d/mysqld[root@www mysql-5.6.36]# chkconfig --add mysqld
启动MySQL服务,并查看运行状态

登录及退出MySQL环境

连接并登录到MySQL操作环境
mysql-u用户名_[-p]提示符: mysql>
设置数据库用户的密码
mysqladmin -u root _[-p] password 新密码
退出MySQL操作环境
mysql> exit

LAMP平台概述

什么是LAMP:

1.目前最为成熟的一种企业网站应用模式,可提供动态Web站点应
用及开发环境

构成组件:

1.Linux、 Apache、 MySQL、 PHP/Perl/Python

LAMP的优势

1.成本低廉
2.可定制、易于开发
3.方便易用、安全和稳定

Demo:完整LAMP架构,创建论坛

首先我们需要准备一台Linux主机,LAMP架构需要用到的压缩包(此处可在本人的百度网盘链接进行下载),还有最终我们准备搭建的bbs论坛的文件也在其中

百度网盘资源链接:https://pan.baidu.com/s/1dGbEwswQeej2qD_UTE-7rQ&shfl=sharepset
提取码:bjg6

第一步:打包的压缩文件解压到电脑中自行定义的文件夹中,把此文件夹进行共享

右键文件夹,选择属性,点击共享,选择共享,下拉选项中选择Everyone,点击添加,再点击右下方的共享,点击完成就可以了,集体操作如下图:

第二步:打开VMware中的CentOS 7虚拟机,查看共享文件夹并进行挂载

[root@localhost ~]# smbclient -L //192.168.10.13/       //此处输入自己宿主机的IP地址Enter SAMBA\root's password:                            //此处直接回车OS=[Windows 10 Home China 18362] Server=[Windows 10 Home China 6.3]    Sharename       Type      Comment    ---------       ----      -------    ADMIN$          Disk      远程管理    C$              Disk      默认共享    D$              Disk      默认共享    IPC$            IPC       远程 IPC    LAMP-test       Disk                                //此处可以看到共享出来的文件夹 Connection to 192.168.0.103 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)NetBIOS over TCP disabled -- no workgroup available[root@localhost ~]# ls /mnt/                            //此时我们查看挂载是空的[root@localhost ~]# mount.cifs //192.168.0.103/LAMP-test /mnt/ //把共享的文件挂载到mnt目录下Password for root@//192.168.0.103/LAMP-test:            //此处直接回车 [root@localhost ~]# cd /mnt/                            //进入mnt目录[root@localhost mnt]# ls                    //此时查看详情就可以看到所有我们需要用到的压缩包了apr-1.6.2.tar.gz       Discuz_X2.5_SC_UTF8.zip  mysql-5.6.26.tar.gzapr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2     php-5.6.11.tar.bz2

第三步:安装Apache

[root@localhost mnt]# yum install -y gcc gcc-c++ make pcre-devel expat-devel perl//安装必要组件[root@localhost mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/[root@localhost mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/[root@localhost mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt///解压缩以上文件到opt目录下[root@localhost mnt]# cd /opt/[root@localhost opt]# lsapr-1.6.2  apr-util-1.6.0  dis  httpd-2.4.29  rh[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 /opt/httpd-2.4.29/[root@localhost httpd-2.4.29]# lsABOUT_APACHE     buildconf       httpd.dsp       libhttpd.mak   README.cmakeacinclude.m4     CHANGES         httpd.mak       LICENSE        README.platformsApache-apr2.dsw  CMakeLists.txt  httpd.spec      Makefile.in    ROADMAPApache.dsw       config.layout   include         Makefile.win   serverapache_probes.d  configure       INSTALL         modules        srclibap.d             configure.in    InstallBin.dsp  NOTICE         supportbuild            docs            LAYOUT          NWGNUmakefile  testBuildAll.dsp     emacs-style     libhttpd.dep    os             VERSIONINGBuildBin.dsp     httpd.dep       libhttpd.dsp    README[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[root@localhost httpd-2.4.29]# make install[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpdcp:是否覆盖"/etc/init.d/httpd"? yes[root@localhost httpd-2.4.29]# vim /etc/init.d/httpd#!/bin/sh# chkconfig: 35 85 21# description: Apache is a World Wide Web server//在#!/bin/sh下行插入这两行内容,按Esc退出插入模式,按:wq保存退出[root@localhost httpd-2.4.29]# chkconfig --add httpd[root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf输入/Server,找到:ServerName www.example.com:80  把前面的#号注释删除输入/Listen,查找80端口监听,并开启监听本机的80端口:Listen 192.168.56.128: 80按Esc退出插入模式,按:wq保存退出[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///以上操作为创建软链接[root@localhost httpd-2.4.29]# systemctl stop firewalld.service[root@localhost httpd-2.4.29]# setenforce 0//关闭防火墙及增强型安全功能[root@localhost httpd-2.4.29]# httpd -tSyntax OK[root@localhost httpd-2.4.29]# service httpd start[root@localhost httpd-2.4.29]# netstat -ntuap | grep httpdtcp        0      0 192.168.56.128:80       0.0.0.0:*               LISTEN      22697/httpd 

第四步:安装MySQL

[root@localhost httpd-2.4.29]# cd ~[root@localhost ~]# yum install -y ncurses-devel autoconf cmake//安装必须组件[root@localhost ~]# tar zxvf mysql-5.6.26.tar.gz -C /opt/[root@localhost ~]# cd /opt/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 -DSYSCONFDIR=/etc/ -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock//安装必须组件[root@localhost mysql-5.6.26]# make[root@localhost mysql-5.6.26]# make install[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnfcp:是否覆盖"/etc/my.cnf"? yes[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqldcp:是否覆盖"/etc/init.d/mysqld"? yes[root@localhost mysql-5.6.26]# cd /etc/init.d[root@localhost init.d]# lsfunctions  httpd  mysqld  netconsole  network  README[root@localhost init.d]# chmod 755 mysqld[root@localhost init.d]# ls -ln总用量 56-rw-r--r--. 1 0 0 17500 5月   3 2017 functions-rwxr-xr-x. 1 0 0  3502 10月 18 22:45 httpd-rwxr-xr-x. 1 0 0 10870 10月 18 23:20 mysqld-rwxr-xr-x. 1 0 0  4334 5月   3 2017 netconsole-rwxr-xr-x. 1 0 0  7293 5月   3 2017 network-rw-r--r--. 1 0 0  1160 8月   5 2017 README[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld[root@localhost init.d]# chkconfig --level 235 mysqld on[root@localhost init.d]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile[root@localhost init.d]# source /etc/profile[root@localhost init.d]# echo $PATH/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:/usr/local/mysql/bin:/root/bin:/usr/local/mysql/bin[root@localhost init.d]# useradd -s /sbin/nologin mysql//创建用户"mysql"[root@localhost init.d]# chown -R mysql:mysql /usr/local/mysql/[root@localhost init.d]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql//安装必要组件[root@localhost init.d]# vim /etc/init.d/mysqld[root@localhost init.d]# service mysqld startStarting MySQL SUCCESS! [root@localhost init.d]# netstat -ntuap | grep mysqldtcp6       0      0 :::3306                 :::*                    LISTEN      1310/mysqld [root@localhost init.d]# mysqladmin -u root -p password "abc123"    //给root账号设置新密码

第五步:安装PHP

[root@localhost init.d]# cd ~[root@localhost ~]# yum install -y gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel[root@localhost ~]# tar jxvf php-5.6.11.tar.bz2 -C /opt/[root@localhost ~]# cd /opt/php-5.6.11/[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[root@localhost php-5.6.11]# make install[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.inicp:是否覆盖"/usr/local/php5/php.ini"? yes[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/[root@localhost php-5.6.11]# vim /etc/httpd.conf        AddType application/x-compress .Z        AddType application/x-gzip .gz .tgz        AddType application/x-httpd-php .php        AddType application/x-httpd-php-source .phps//在上两行下面插入下面两行内容DirectoryIndex index.php index.html//在DirectoryIndex和index.html中间添加index.php//按Esc退出插入模式,按:wq保存退出[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php//写入以上内容,按Esc退出插入模式,按:wq保存退出[root@localhost php-5.6.11]# service httpd restart

进入网页进行测试(此处IP地址填写的是安装服务的CentOS 7的IP地址):http://192.168.56.128/index.php,如果配置成功因该出现如下界面:

第六步:安装论坛组件并使用论坛

[root@localhost php-5.6.11]# cd ~[root@localhost ~]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/Discuz[root@localhost ~]#cp -r /opt/Discuz/upload/ /usr/local/httpd/htdocs/bbs[root@localhost ~]#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/data/cache/[root@localhost bbs]# chown -R daemon ./uc_server/data/[root@localhost bbs]# mysql -uroot -pabc123Warning: Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.26 Source distributionCopyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database zzz;Query OK, 1 row affected (0.00 sec)mysql> grant all privileges on bbs.* to 'zzz'@'localhost' identified by '123123';Query OK, 0 rows affected (0.01 sec)mysql> grant all privileges on bbs.* to 'zzz'@'%' identified by '123123';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> quitBye

下面论坛的安装步骤在网页中进行:

在宿主机的浏览器界面输入自己的虚拟机IP地址,例如:192.168.565.128/bbs进入如下界面:

点击同意进入下一步

点击下一步

选择全新安装,点击下一步

数据服务器:192.168.56.128(此处输入自己的虚拟机IP)

数据库名:bbs

数据库用户名:bbsuser(此处可在之前的命令中自行定义)

数据库密码:admin123(此处可在之前的命令中自行定义)

管理员账号:admin(默认)

密码:123123(可自行输入)

结束之后点击下一步,无故障则论坛安装完成!
可进入论坛的主页界面,大成功!
服务 文件 配置 目录 管理 地址 服务器 版本 组件 网页 论坛 编译 运行 站点 输入 数据 文件夹 日志 模式 源码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海卓越科技互联网 互联网科技行业发展 远信互联网科技 世界互联网领先科技成果 科技互联网公司logo 睿民互联网科技 互联网科技汛 武汉健翔互联网络科技有限公司 荆州市昕露互联网络科技有限公司 互联网科技公司有风险吗 杭州壁岐互联网科技有限公司 互联网科技和法律行业 高科技互联网套路 2021互联网科技公司排名 张召忠谈中国互联网科技 互联网科技股为什么大涨 新氧科技和美国互联网有关系吗 互联网科技创新方面的资料 互联网科技快速发展优美句子 如何强化互联网金融科技 涨乐互联网科技 互联网与科技发展 奇酷互联网科技 全球顶尖互联网科技公司 注册互联网科技公司经营范围大全 乌苏新华互联网科技做什么的 翼展科技 首家互联网医院 深圳市罗太互联网科技有限公司 广西科技产业互联网是什么 西安左小互联网科技有限公司
0