LAMP框架搭建

LAMP框架是由Linux、Apache+Mysql+PHP组成的框架,一一对应首字母。
Linux:提供操作系统支持/提供一个环境支持
Apache:提供的是静态页面的请求
PHP:处理动态页面的请求
MySQL:持久化保存数据/状态信息
Apache主要特点:开放源代码、跨平台应用,支持多种网页编程语言HTML、HTML5,模块化设计、运行稳定、良好的安全性。

搭建LAMP架构

第一步、安装apache

1、卸载httpd及相关依赖包

rpm -e httpd --nodeps      //消除残存文件,避免程序冲突

2、安装Apache
准备好源码包
在这里插入图片描述

[root@localhost ~]# cd /opt
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2   //安装apache
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr     //把这两个工具放在apache目录底下可以让apache识别,提供底层环境
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

3、安装依赖包


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

4、配置apache编译

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

5、把配置编译(翻译给系统)

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

看看安装路径有没有生成文件 ,有代表成功
在这里插入图片描述

文件夹 用途
bin 存放httpd服务的执行文件
conf 存放httpd服务的配置文件
extra 子配置文件
htdocs 存放网页文件
logs 存放httpd服务的日志文件
modules 存放httpd服务的日志文件
cgi-bin 存放CGI程序文件

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

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/   优化管理  可以缩短路径直接到/etc里面看conf配置文件
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    把命令直接做软链接到系统可以识别的命令存放路径

/bin和/sbin 系统所能识别的内部命令
/usr/local/bin 和 /usr/local/sbin 系统所能识别外部命令

默认注释掉的内容主要分为两块:1、描述性信息,描述我的这个服务能干什么,一些介绍性信息,介绍怎么使用等等 2、模板

7、在配置文件中加入监听地址

 vim /usr/local/httpd/conf/httpd.conf

LAMP框架搭建_第1张图片

LAMP框架搭建_第2张图片
LAMP框架搭建_第3张图片
LAMP框架搭建_第4张图片
LAMP框架搭建_第5张图片

LAMP框架搭建_第6张图片
LAMP框架搭建_第7张图片

LAMP框架搭建_第8张图片
LAMP框架搭建_第9张图片
LAMP框架搭建_第10张图片

httpd -t 检测语法(前提在init.d添加了httpd)或者  apachectl -t

8、便于系统管理
也就是可以通过service或者systemctl命令管理,start stop restart reload 等等。
**/etc/init.d/ :service可以识别服务启动脚本的目录位置
/usr/lib/systemd/system/ :是systemctl命令可以识别的服务启动脚本的目录位置 **
此处就用便于service管理

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   把命令绝对路名复制到init.d目录下 以便用service管理

设置httpd服务开机自启

vim /etc/init.d/httpd
# chkconfig: 35 85 21       35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server

LAMP框架搭建_第11张图片
让系统识别添加到init.d里的httpd命令

chkconfig --add httpd

然后就可以使用service进行管理了
在这里插入图片描述
** service 和 systemctl 区别:
centos 6中自带service ,centos7加入了一外部管理服务的工具(systemctl) **

第二步、安装mysql

提供持久化存储
1、安装环境

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

2、解压mysql包

tar xzvf mysql-5.6.26.tar.gz -C /opt

3、cmake 编译配置

cd /opt/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		#指定连接数据库的通讯文件(启动数据库的时候会生成)

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

4、make 编译

make && make install

看是否生成文件
在这里插入图片描述
scripts 里有一个默认安装脚本
在这里插入图片描述

data/test/里存放一个默认基本库的文件
LAMP框架搭建_第12张图片

5、到mysql里复制模板文件

[root@localhost data]# cd /opt/mysql-5.6.26/
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf    #my-default.cnf mysql配置文件的模板       /etc/my.cnf  系统默认的mysql默认配置文件 

6、便于服务器管理
此处用service

cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld        给予执行权限
chkconfig --add /etc/init.d/mysqld      让service识别这个命令
chkconfig  mysqld --level 35 on         设置成开机自启
systemctl enbale mysqld 

7、添加mysql管理用户

useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/    没有-M指定家目录   给予/usr/local/mysql下文件管理mysql的权限
chown mysql:mysql /etc/my.cnf     #更改管理主和组

8、设置环境变量,申明/宣告mysql命令便于系统识别

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

另一种方式就是ln -r

9、初始化数据库

/usr/local/mysql/scripts/mysql_install_db \   #要初始化的脚本
--user=mysql \               	#管理的用户
--ldata=/var/lib/mysql \     	#函数库
--basedir=/usr/local/mysql \	#工作路径
--datadir=/home/mysql			#存放数据路径

10、修改启动脚本文件配置

vim /etc/init.d/mysqld
#46-47行
basedir=/usr/local/mysql      #写上工作文件路径
datadir=/home/mysql           #写上数据存放路径


service mysqld start   启动
netstat -anpt | grep 3306      #3306是mysql服务端口

11、设置密码用户 登录数据库

mysqladmin -u root -p password "abc123" 
————》直接回车
mysql -u root -pabc123    #登录用户

LAMP框架搭建_第13张图片
在这里插入图片描述
LAMP框架搭建_第14张图片

第三步、安装PHP

php 处理动态请求,在此处他是一个后台的代码程序,不是一个服务(所以不需要启动脚本)
1、安装依赖环境

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

2、解压php包

cd /opt
tar xjvf php-5.6.11.tar.bz2

3、配置PHP编译配置

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

4、make编译

make && make install

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

ln -s /usr/local/php5/bin/* /usr/local/bin/

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

vim /etc/httpd.conf 
#添加index.php
255 <IfModule dir_module>
256     DirectoryIndex index.html index.php
257 </IfModule>
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php5的模块是否存在
---->wq

LAMP框架搭建_第15张图片
LAMP框架搭建_第16张图片
LAMP框架搭建_第17张图片
应该是 php5_module文件是否存在 上图画错。
7、创建、编辑php页面文件

vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

8、重启服务

service httpd stop 
service httpd start

在网页测试“http://192.168.100.22/index.php”
LAMP框架搭建_第18张图片

安装论坛

mysql -u root -pabc123
mysql> CREATE DATABASE bbs;     #创建一个数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';      #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//  所有访问来源/渠道  (%标识所有)

mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';        #再给本地授予权限
mysql>flush privileges;    #刷新数据库

cd /opt
把Discuz文件拖进来
unzip /opt/Discuz_X2.5_SC_UTF8.zip -d /opt/dis   解压论坛文件
cd /opt/dis/
cp -r upload/ /usr/local/httpd/htdocs/bbs   把安装论坛的配置复制到htdocs里
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config             #给予apache授权
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

LAMP框架搭建_第19张图片
rLAMP框架搭建_第20张图片

小结

L :linux平台上
A:静态页面处理使用了Apache
P:动态处理——》后台程序
M:MySQL 数据库 存储PHP数据信息

Apache 怎么和PHP对接支持
1、支持php 网页文件的格式 index.php
2、开启识别index.php网页格式文件的支持
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

PHP 如何和Apache去做对接
./configure
–with-apxs2=/usr/local/httpd/bin/apxs
#可以让php服务模块直接提供给apache加载使用

php 如何与mysql 对接
–with-mysql=/usr/local/mysql
对接mysql

MySQL为PHP 提供了哪些支持
1、给php动态处理的一些数据,提供了一个数据库(bbs) 和访问的用户权限@登陆方式
2、给bbsuser 进行了提权 grant all

你可能感兴趣的:(LAMP框架搭建)