LAMP架构

1.LAMP架构

L:Linux
A:Apache
M:Mysql
P:PHP
即在Linux系统上部署三个服务配合搭建

2.Apache

起源:

  • 源于 A Patchy Server,著名的开源Web服务软件
  • 1995年时,发布Apache服务程序的1.0版本
  • 由Apache软件基金会(ASF)负责维护
  • 最新的名称为“Apache HTTP Server”
  • 官方站点:http://httpd.apache.org/
    主要特点:
  • 开放源代码、跨平台应用
  • 支持多种网页编程语言
  • 模块化设计、运行稳定、良好的安全性
    软件版本:
    1.x:
  • 目前最高版本1.3,运行稳定
  • 向下兼容性较好,但缺乏一些较新功能
    2.x:
  • 目前最高版本2.4
  • 具有更多功能特性
  • 与1.x相比,配置管理风格存在较大差异

2.1Apache部署

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

2.1.1编译安装及环境准备

安装主程序

tar -jxvf httpd-2.4.29.tar.bz2

安装apr依赖包并放入主程序内

tar -zxvf apr-1.6.2.tar.gz
tar -zxvf apr-util-1.6.0.tar.gz
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

apr、apr-util:为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库

安装其他依赖包

yum -y install \
gcc \		
gcc-c++ \
make \                
pcre-devel \       ##为了支持正则表达式 
expat-devel \    	##用于解析XML文档的开发库
perl             	##内部集成了正则表达式和第三方代码库CPAN,且和pcre-devel支持的正则表达式不一样

配置功能模块并安装

cd httpd-2.4.29
./configure \
 --prefix=/usr/local/httpd \	##指定apache程序安装目录
 --enable-so \    	##启动动态加载模块支持,使httpd具备进一步扩展功能的能力
 --enable-rewrite \		##启用网页地址重写功能,用于网站优化及目录迁移          
 --enable-charset-lite \	##启用字符集支持,以便支持使用字符集编码的网页   
 --enable-cgi   	##启用CGI脚本程序支持,便于扩展网站的应用访问能力 
make && make install	##编译安装

将httpd加入系统服务并开启

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
# chkconfig: 35 85 21		##35级别自动运行,第85个启动,第21个关闭
# description: Apache HTTP Server  ##服务描述

chkconfig --add httpd	##将httpd加入到SERVICE管理器
systemctl start httpd  ##开启httpd服务

修改主机域名(hosts域名方式)

vi /etc/hosts
192.168.20.10 www.aa.com

2.1.2优化,便于操作

ln -s /usr/local/httpd/conf/httpd.conf /etc
##将主配置文件链接至etc目录便于管理
ln -s /usr/local/httpd/bin/* /usr/bin/
##将httpd的bin目录下所有命令链接至/usr/bin下使用户可直接使用

2.1.3修改配置文件

主配置文件:

ServerRoot "/usr/local/httpd"	##apache的默认根目录
Listen 80	#监听的网络端口号
User daemon		#设置运行httpd进程时的用户身份,daemon为守护进程
Group daemon	#设置运行httpd进程时的组身份
ServerAdmin webmaster@qq.com	#设置httpd服务器管理员的邮箱
ServerName www.aa.com	#设置web站点的完整主机名(域名)
DocumentRoot "/usr/local/httpd/htdocs"	#设置网站根目录,网页所在地
DirectoryIndex index.html index.php		#设置网站的默认索引页,可以设置多个首页文件
ErrorLog "logs/error_log" Loglevel warn		#设置错误日志路径,错误日志的级别
CustomLog "logs/access_log" common		#设置访问日志的路径、日志类型,使用类型为common
PidFile logs/httpd.pid	#设置用于保存httpd进程号的文件
AddDefaultCharset UTF-8		#设置站点中的网页默认使用的字符集编码
#Include conf/extra/httpd-default.conf	#包含另一个配置文件内容,可以实现一些特殊功能的配置放到一个单独的文件夹中,这样便于独立配置功能的维护而不影响主配置文件(区域配置文件可不开,在需要时可去掉前方#打开)

2.2虚拟web主机

虚拟web主机指在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”主机
httpd服务支持的虚拟主机类型包括以下三种:
1.基于域名:为每个虚拟主机使用不同域名,但各自对应的IP是相同的
2.基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不同
3.基于端口:这种方式并不使用域名、IP地址来区分不同站点的内容,而是使用了不同的TCP端口号

2.2.1构建多个虚拟web主机

1.分别为多个虚拟主机准备不同的测试主页
2.添加虚拟主机配置

mkdir /opt/aa1
mkdir /opt/aa2
mkdir /opt/aa8080
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
##基于域名的虚拟主机
<VirtuaHost 192.168.20.10:80>
	DocumentRoot "/opt/aa1"
	ServerName www.aa1.com
	ErrorLog "logs/www.aa1.com._error_log"
	Customlog "logs/www.aa1.com.access_log" common
</VirtuaHost>
<Directory "/opt/aa1">
	Options Indexes MuliViews FollowSymlinks  #控制选项,允许使用符号链接
	AllowOverride None	#不允许隐含控制文件中的覆盖配置
	Order allow,deny	
	Allow from all
	Require all granted	#允许任何人访问此区域
</Directory>
##基于IP地址的虚拟主机
<VirtuaHost 192.168.20.11:80>
	DocumentRoot "/opt/aa2"
	ServerName www.aa2.com
	ErrorLog "logs/www.aa2.com._error_log"
	Customlog "logs/www.aa2.com.access_log" common
</VirtuaHost>
<Directory "/opt/aa2">
	Options Indexes MuliViews FollowSymlinks
	AllowOverride None
	Order allow,deny
	Allow from all
	Require all granted
</Directory>
##基于端口号的虚拟主机
<VirtuaHost 192.168.20.10:8080>
	DocumentRoot "/opt/aa8080"
	ServerName www.aa.com
	ErrorLog "logs/www.aa.com:8080_error_log"
	Customlog "logs/www.aa.com:8080_access_log" common
</VirtuaHost>
<Directory "/opt/aa8080">
	Options Indexes MuliViews FollowSymlinks
	AllowOverride None
	Order allow,deny
	Allow from all
	Require all granted
</Directory>

3.Mysql部署

3.1编译安装及环境准备

安装依赖包

yum -y install \
ncurses \	
ncurses-devel \
##以上两种是字符终端下屏幕控制的基本库
bison \		#用于自动生成语法分析器程序
cmake		跨平台安装(编译)工具,可用简单的语句来描述所有平台的安装(编译过程)

创建用于控制mysql的程序用户

useradd -s /sbin/nologin mysql

安装mysql

tar -zxvf mysql-boost-5.7.20.tar.gz

cmake编译安装mysql功能模块配置

cd mysql-5.7.20
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
##安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql.sock \
##指定套接字文件的存储路径
-DSYSCONFDIR=/etc \
##指定my.cnf主配置文件的目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \
##指定主服务进程所在的路径
-DDEFAULT_CHARSET=utf8 \
##默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \
##默认编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
##启用InnoDB引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
##启用ARCHIVE引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
##启用BLACKHOLE引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
##启用perfschema引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
##数据存储路径
-DWITH_BOOST=boost \
##boost库是为C++语言标准库提供扩展的一些C++程序库的总称
-DWITH_SYSTEMD=1
##Mysql5.7原生支持systemd的选项,如果要是用systemctl启动,就必须开启
make && make install

3.2修改配置文件

设置mysql应用程序及主配置文件属主属组

chown -R mysql:mysql /usr/local/mysql
chown mysql:mysql /etc/my.cnf

修改主配置文件

vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]y
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
##将模式配置写入配置文件
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

3.3初始化

将mysql程序加入服务并启动

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl daemon-reload		##重启其守护进程才能重启主程序
systemctl start mysqld

将mysql命令加入环境变量以便于操作

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >>/etc/profile
echo 'export PATH' >> /etc/profile	#设为全局变量
source /etc/profile

初始化

##若将命令加入环境变量,便可直接使用
mysqld \
--initialize-insecure \		
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

初始化密码

mysqladmin -u root -p password 123456

登录mysql

mysql -uroot -p123456

3.4修改密码及忘记密码操作

修改密码

方法一:
先登录mysql
mysql> set password=password('新密码');
方法二:
mysqladmin -u用户名 -p旧密码 password 新密码
方法三:
首先登录mysql
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('新密码') where user='用户名' and host='localhost';
mysql> flush privileges;

忘记密码

vi /etc/my.cnf
[mysqld]
##末尾添加
skip_name_resolve
skip_grant_tables
bind-address=0.0.0.0

systemctl restart mysqld 

3.5基本数据库管理命令

查看已存在数据库

mysql> SHOW DATABASES;

查看当前数据库中有哪些表

mysql> USE mysql;
mysql> SHOW TABLES;

查看表的结构

mysql> USE mysql;
mysql> DESCRIBE user;	##user为表

4.PHP部署

4.1编译安装及环境准备

安装依赖包

yum -y install \
libjpeg libjpeg-devel \
##jpeg图像压缩库
libpng libpng-devel \
##png图像压缩库
freetype freetype-devel \
##字体引擎,统一的接口访问多种字体格式文件
libxml2 libxml2-devel \
##xml程序库,用来对xml文件进行分析
zlib zlib-devel \
##数据压缩用的函式库,可相当轻松的通过把压缩数据写入到有gzip头的文件中
curl curl-devel \
##利用URL规则在命令行下工作的文件传输工具
openssl openssl-devel
##OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛应用在互联网的网页服务器上

安装主程序

tar -jxvf php-7.1.10.tar.bz2

开启配置功能并安装

cd php-7.1.10
./configure \
--prefix=/usr/local/php \	#安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \	#让apache支持php
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指明mysql的套接字路径
--with-mysqli \		#调用mysql的存储过程、处理mysql事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \	#打开zlib函式库
--with-curl \	#调用curl规则
--with-gd \		#打开gd库,gd库使为了创建新图像或处理已有的图像
--with-jpeg-dir \		#让gd库支持jpeg格式
--with-png-dir \		#让gd库支持png格式
--with-freetype-dir \	#打开字体引擎
--with-openssl \		#打开ssl安全套接字功能
--enable-mbstring \		#开启mbstring扩展,有了这个功能可设置其支持utf-8编码
--enable-xml \		#支持XML文件格式
--enable-session \	#开启会话保持功能
--enable-ftp \		#开启ftp扩展
--enable-pdo \		#PDO作用是统一各种数据库的访问接口
--enable-tokenizer \	#分词器,Tokenizer实际上只是生成了一个字典,并且统计了词频等信息
--enable-zip		#打开对zip文件的支持
make && make install

4.2配置php

配置mysqli用于调用mysql

cd php-7.1.10
cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

验证php安装的模块完整

/usr/local/php/bin/php -m

配置apache配置用于使apache支持php模块

vi /etc/httpd.conf
##在合适位置新增
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##添加php格式主页,写在前面的打开网页默认打开,后面的打开网页时需添加格式后缀,如:/php
DirectoryIndex index.php index.html

4.2.1测验apache支持php

配置php格式网页主页

cd /usr/local/httpd/htdocs
vi index.php
<?php
phpinfo()	##php默认主页
?>

4.2.2测验php可以调用mysql

配置mysql数据库内容

登录mysql
mysql> CREATE DATABASE myadm;	##添加数据库命名myadm
mysql> GRANT all privileges ON myadm.* TO 'myadm'@'%' IDENTIFIED BY ‘admin123’;
mysql> GRANT all privileges ON myadm.* TO 'root'@'www.aa.com' IDENTIFIED BY123456;
mysql> flush privileges;

配置php格式网页主页

vi /usr/local/httpd/htdocs/index.php
<?php
$link=mysqli_connect('192.168.20.10','myadm','admin123');
if($link) echo "<h1>Success!</h1>";
else echo "Fail!";
?>

4.3图形化界面管理mysql数据库

安装phpMyadmin软件

unzip phpMyAdmin-4.7.6-all-languages.zip 

配置

mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
cd /usr/local/httpd/htdocs/myadm
cp config.sample.inc.php config.inc.php
vi config.inc.php
$cfg['Servers'][$i]['host'] = '192.168.20.10';

4.3.1登录图形化界面mysql数据库

http://192.168.20.10/myadm

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值