LAMP架构搭建!

Posted handsomeboy-东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP架构搭建!相关的知识,希望对你有一定的参考价值。

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务即其应用开发环境,LAMP包括了Linux系统、Apache网站服务器、mysql数据库、php网页编辑语言

Apache网站服务

Apache HTTP Server 是开源软件项目的杰出代表,支持多种网页编程语言,跨平台使用,模块化设计,运行稳定,且有良好的安全性,后面的PHP就需要在这上面才能运行

源码安装HTTP协议

  • 编译安装优点:具有较大的自由度,功能可定制,可及时获得最新的软件版本,普遍适用于大多数Linux版本,便于移植使用

准备工作

[root@localhost ~]# rpm -e httpd --nodeps          //为避免程序冲突,先删除rpm方式安装的httpd

准备好源码包并安装

[root@localhost opt]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.46.tar.gz  rh
[root@localhost opt]# tar xzf apr-1.7.0.tar.gz
[root@localhost opt]# ls
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.46.tar.gz  rh
[root@localhost opt]# tar xzf apr-util-1.6.1.tar.gz
[root@localhost opt]# tar xzf httpd-2.4.46.tar.gz
[root@localhost httpd-2.4.46]# yum install -y \\
> gcc gcc-c++ make \\               //安装需要的编译器
> pcre \\                           //pcre是一个perl函数库,
> pcre-devel \\                     //perl的接口开发包
> expat-devel \\                    //用于支持网站解析html、XML文件
> perl                             //perl语言编译器

将安装httpd所需的插件安装

[root@localhost opt]# mv apr-1.7.0 ./httpd-2.4.46/srclib/apr
[root@localhost opt]# mv apr-util-1.6.1 ./httpd-2.4.46/srclib/apr-util
[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/httpd \\
> --enable-so \\                   //启动动态加载核心模块支持,使httpd具备进一步扩展功能的能力      
> --enable-rewrite \\             //启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
> --enable-charset-lite \\        //启动字符集支持,以便支持使用各种字符集编码的页面
> --enable-cgi                   //启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力

优化执行路劲,将httpd服务设置软链接,使其使用时更加方便

[root@handsomeboy1 mysql-5.6.26]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@handsomeboy1 mysql-5.6.26]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

修改配置文件内容

[root@handsomeboy1 mysql-5.6.26]# vim /usr/local/httpd/conf/httpd.conf 

[root@handsomeboy1 mysql-5.6.26]# httpd -t           //查看修改结果,也可以用apachectl -t
Syntax OK

安装MySQL

MySQL是一个多线程、多用户的SQL数据库服务,拥有高性能、高可靠、易于使用的特性,在LAMP中MySQL数据库主要用来存储PHP的处理的动态页面的数据

[root@localhost opt]# tar zxf mysql-5.6.26.tar.gz    //先下载好MySQL软件包并解压
/etc/my.cnf :MySQL的配置文件
/var/lib/mysql/:MySQL数据库文件存储的所在,需要备份时此文件最好记得备份
[root@localhost opt]# yum install -y nvurses \\      //下载字符终端下图形互动功能的动态库
> ncurses-devel \\                                   //ncurses开发包
> bison \\                                           //语法分析器
> cmake \\                                           //mysql安装时需要的解译器
> autoconf                                          
[root@localhost opt]#cd mysql-5.6.26/
[root@handsomeboy1 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@handsomeboy1 mysql-5.6.26]#make && make install
[root@handsomeboy1 opt]# cd mysql-5.6.26/
[root@handsomeboy1 mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@handsomeboy1 mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
cp:是否覆盖"/etc/init.d/mysqld"? y
[root@handsomeboy1 mysql-5.6.26]# chmod 755 /etc/init.d/mysqld 
[root@handsomeboy1 mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld
[root@handsomeboy1 mysql-5.6.26]# chkconfig  mysqld --level 35 on
[root@handsomeboy1 mysql-5.6.26]# systemctl enbale mysqld 
Unknown operation 'enbale'.
[root@handsomeboy1 mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@handsomeboy1 mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/
[root@handsomeboy1 mysql-5.6.26]# chown mysql:mysql /etc/my.cnf
[root@handsomeboy1 mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@handsomeboy1 mysql-5.6.26]# source /etc/profile
[root@handsomeboy1 mysql-5.6.26]# cd /usr/local/mysql/
[root@handsomeboy1 mysql]# /usr/local/mysql/scripts/mysql_install_db \\       #初始化数据库
--user=mysql \\
--ldata=/var/lib/mysql \\
--basedir=/usr/local/mysql \\
--datadir=/home/mysql
[root@handsomeboy1 mysql]# vim  /etc/init.d/mysqld

在这里插入图片描述

[root@handsomeboy1 mysql]# service mysqld start
Starting MySQL.. SUCCESS! 
[root@handsomeboy1 mysql]# netstat -antp | grep 3306 
tcp6       0      0 :::3306                 :::*                    LISTEN      95830/mysqld  
[root@handsomeboy1 mysql]# mysqladmin -u root -p password "abc123"   #数据库的root用户设置密码
Enter password:               //直接回车
Warning: Using a password on the command line interface can be insecure.
[root@handsomeboy1 mysql]# mysql -u root -p          进入MySQL数据库
Enter password:                //输入刚刚设置的密码
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 6
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;             //查看mysql的目录
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit                    //exit或者直接Ctrl+c退出
Bye

安装PHP

PHP就是一个用来建立动态网页的工具,

[root@handsomeboy1 mysql]# yum install -y gd \\            #图像化处理的库
> libpng \\					#png格式图片的库
> libpng-devel \\
> pcre \\
> pcre-devel \\
> libxml2-devel \\			#解析xml标记语言的库
> libjpeg-devel				#jpeg格式图片的库
[root@handsomeboy1 opt]# cd /opt
[root@handsomeboy1 opt]# tar xjvf php-5.6.11.tar.bz2 
[root@handsomeboy1 opt]# cd php-5.6.11/
[root@handsomeboy1 php-5.6.11]# ./configure \\
> --prefix=/usr/local/php5 \\
> --with-gd \\                    				#机括gd库的支持
> --with-zlib \\									#提供数据压缩功能的函数库
> --with-apxs2=/usr/local/httpd/bin/apxs \\		#指定httpd服务提供的apxs模块支持程序的文件位置
> --with-mysql=/usr/local/mysql \\				#关联数据库
> --with-config-file-path=/usr/local/php5 \\		#指定配置文件
> --enable-mbstring 							#启用多字节字符串功能,以便支持中文等代码
[root@handsomeboy1 php-5.6.11]# make && make install
[root@handsomeboy1 php-5.6.11]# vim /etc/httpd.conf 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在页面进行测试
在这里插入图片描述

安装论坛

[root@handsomeboy1 php-5.6.11]# mysql -u root -p
Enter password: 
mysql> create database bbs;                       //添加一个数据库
Query OK, 1 row affected (0.00 sec) 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |                  //查看数据库添加成功
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on bbs.* to 'bbsuser '@'%' identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit                  
Bye
[root@handsomeboy1 opt]# [root@handsomeboy1 opt]# unzip Discuz_X2.5_SC_UTF8.zip -d ./dis
[root@handsomeboy1 opt]# cd dis
[root@handsomeboy1 dis]# ls
readme  upload  utility
[root@handsomeboy1 dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@handsomeboy1 dis]# cd /usr/local/httpd/htdocs/bbs
[root@handsomeboy1 bbs]# chown -R daemon ./config
[root@handsomeboy1 bbs]# chown -R daemon ./data
[root@handsomeboy1 bbs]# chown -R daemon ./uc_client
[root@handsomeboy1 bbs]# chown -R daemon ./uc_server/data

在网页上测试
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结:

  • LAMP架构主要有Linux操作系统、Apache网站服务、MySQL数据库、PHP网页编辑语言组成
  • Apache网住服务主要用来提供静态页面请求,PHP主要用来处理动态页面的请求,MySQL数据库主要用来持久化保存数据/状态信息(主要存储PHP的数据信息)
  • 安装PHP软件包时,要通过–with-apxs2、–with-mysql配置选项来指定httpd、mysql的相关路劲
  • 要使httpd服务支持PHP网页,应编辑httpd.conf文件,确认加载libphp5.so模块,并在其存放网页目录下添加“.php”类型文件

以上是关于LAMP架构搭建!的主要内容,如果未能解决你的问题,请参考以下文章

ansible roles详解+搭建LAMP架构

linux架构学习第二十六天之LAMP架构原理及搭建详解

搭建LAMP架构

Web服务器群集之LAMP平台部署(LAMP架构搭建)

lamp源码搭建详解及wordpress搭建

lamp源码搭建详解及wordpress搭建