编译部署LAMP平台

一、LAMP平台概述

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

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

LAMP的优势

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

LAMP平台构建顺序

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

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

源代码编译安装的优点

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

二、Apache简介及源代码安装Apache

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相比,配置管理风格存在较大差异

apache编译过程

注意:如果之前使用yum安装过,需要先卸载
yum -y remove httpd
获得Apache服务器的源码包
参考地址: http://httpd.apache.org/download.cgi
1.将三个源码文件添加到/opt目录下

[root@server opt]# ls -lh
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2

2.解压apr跨平台组件包和httpd源码包到当前目录下;并将跨平台组件包移动到源码包srclib目录下

[root@server opt]# tar zxvf apr-1.6.2.tar.gz
[root@server opt]# tar zxvf apr-util-1.6.0.tar.gz
[root@server opt]# tar jxvf httpd-2.4.29.tar.bz2
[root@server opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@server opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

3.安装编译器和其他工具

[root@server opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \                ##gcc、gcc-c++、make为编译工具
> pcre-devel \        ##支持正则表达式的工具
> expat-devel \      ##使网站能解析xml标记语言的工具
> perl                     ##perl语言工具

4.configure配置

[root@server opt]# cd httpd-2.4.29/
[root@server httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \		##指定路径
> --enable-so \					##开启核心功能模块(Web服务)
> --enable-rewrite \			        ##开启重写功能,如防盗链保护
> --enable-charset-lite \			##字符集设定
> --enable-cgi           ##开启通用网关接口,它定义了web服务器运行时外部程序的规范

5.make编译和make install安装

[root@server httpd-2.4.29]# make 	##编译,将源码转换成计算机可以识别的二进制文件
[root@server httpd-2.4.29]# make install	##安装

6.配置启动脚本

[root@server bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd	 ##将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd
[root@server bin]# cd /etc/init.d/
[root@server init.d]# ls
functions  httpd  netconsole  network  README
[root@server init.d]# vim httpd 
#!/bin/sh	  ##在行首插入下两行内容(前面就是有#的),并保存退出
#chkconfig: 35 85 21 	##3(字符界面)和5(图形化界面)级别自动运行  第85个启动 第21个关闭
#description: Apache is a World Wide Web server  ##描述信息,可不加
#
#...省略内容

[root@server init.d]# chkconfig --add httpd    ##将httpd加入到service管理器

7.编辑配置文件

[root@server ~]# vim /usr/local/httpd/conf/httpd.conf 
...省略内容
Listen 192.168.10.50:80   ##设置ipv4监听地址和端口
#Listen 80                 ##将ipv6格式的监听端口注释掉
#
ServerName www.test.com:80   ##设置域名地址
...省略内容

8.设置配置文件的软链接和httpd命令的软链接

[root@server bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf  
                       ##设置配置文件的软链接,便于修改(原文件位置太长了)
[root@server bin]# httpd -t          ##未设置命令的软链接时
bash: httpd: 未找到命令...
[root@server bin]# ls /usr/local/httpd/bin/
ab            apxs       envvars-std   htdigest   logresolve
apachectl     checkgid   fcgistarter   htpasswd   rotatelogs
apr-1-config  dbmmanage  htcacheclean  httpd
apu-1-config  envvars    htdbm         httxt2dbm
[root@server bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    ##设置httpd命令的软链接
[root@server bin]# httpd -t    ##这时可以使用httpd命令了(httpd -t:检查配置文件语法)
Syntax OK
[root@server bin]# apachectl -t
Syntax OK

9.开启apache服务

[root@server bin]# iptables -F      ##清空防火墙规则
[root@server bin]# setenforce 0   ##关闭核心防护
[root@server bin]# service httpd start   ##利用service启动apache服务
[root@server bin]# netstat -napt |grep 80  ##查看httpd 80端口,开启成功
tcp        0      0 14.0.0.30:80            0.0.0.0:*               LISTEN      44819/httpd 

10.在浏览器中输入服务器地址验证。
http://192.168.10.50
在这里插入图片描述
11.可以修改网页中显示的内容

[root@server ~]# vi /usr/local/httpd/htdocs/index.html          #页面配置文件
<html><body><h1>It works!</h1></body></html>

12.域名绑定IP

[root@server ~]# vi /etc/hosts            #域名绑定IP
......
192.168.10.50   www.aa.com

可以通过域名访问
在这里插入图片描述

源码编译安装mysql

1.准备安装环境

[root@server ~]# yum -y install \
> ncurses \
> ncurses-devel \		##字符终端下屏幕控制的基本库
> bison \
> cmake					##跨平台编译安装工具
[root@server opt]# tar zxvf mysql-boost-5.7.20.tar.gz

2.cmake配置

[root@server opt]# cd mysql-5.7.20
[root@server mysql-5.7.20]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定将mysql数据库安装到某目录下
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \	#指定套接字文件的存储路径,数据库连接的文件
-DSYSCONFDIR=/etc \			#指定初始化参数文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \	#数据安装路径 
-DDEFAULT_CHARSET=utf8  \		#指定默认使用的字符集编码,如 utf8。
-DDEFAULT_COLLATION=utf8_general_ci \	#指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 \		#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \		#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \		#安装ARCHIVE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \	#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

3.编译并且安装

[root@server mysql-5.7.20]# make && make install

4.建立调整配置文件

[root@server mysql-5.7.20]# 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]
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

5.设置环境变量

[root@server ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@server ~]# echo 'export PATH' >> /etc/profile
[root@server ~]# source /etc/profile

6.添加用户mysql,专门用来管理进程(程序型用户,禁止登录shell)

[root@server ~]# useradd -M -s /sbin/nologin mysql	  ##添加用户mysql,禁止用户登录系统
[root@server ~]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
[root@server ~]# chown -R mysql:mysql /usr/local/mysql	##设置属主和数组

7.初始化数据库

[root@server ~]# cd /usr/local/mysql/
[root@server mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

8.启动,设置密码

[root@server ~]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@server ~]# systemctl enable mysqld
[root@server ~]# systemctl start mysqld
[root@server ~]# systemctl status mysqld
[root@server ~]# netstat -anpt | grep 3306

设置密码

设置密码
[root@server ~]# mysqladmin -u root -p password "666666" //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

修改mysql密码

初次密码是空的
修改mysql密码
方法一:用set password命令
首先登录mysql
mysql> set password for 用户名@localhost = password('新密码')
方法二:用mysqlamin
格式:mysqlamin -u 用户名 -p旧密码 passwor新密码
方法三:用update直接编辑user表
首先登录mysql
mysql> use mysql
mysql> update mysql.user set authentication_string=password('666666') where user='root' and host='localhost'

登录mysql

登录mysql
[root@server ~]# mysql -uroot -p666666

忘记密码

忘记密码:
[root@server ~]# vi /etc/my.cnf
[mysqld]
末尾添加
skip_name_resolve
skin_grant_tables
bind-address=0.0.0.0
systemctl restart mysqld

编译安装PHP

1.配置安装环境

[root@server ~]# yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

2.编译安装

[root@server ~]# cd /opt
[root@server opt]# tar xjvf php-7.1.10.tar.bz2
[root@server opt]# cd php-7.1.10
[root@server ~php-7.1.10]# ./configure \
--prefix=/usr/local/php \			#指定将 PHP 程序安装到哪个目录下
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql的mysql.sock位置
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
[root@server php-7.1.10]# make && make install

3.将php.ini-development开发样板,复制到生产环境中去

[root@server ~]# cp php.ini-development /usr/local/php/lib/php.ini
[root@server ~]# vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

[root@server ~]# /usr/local/php/bin/php -m //验证安装的模块

[root@server ~]# vi /etc/httpd.conf 			####在合适位置新增

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndex index.php index.html

[root@server ~]# rm -f /usr/local/httpd/htdocs/index.html    #可以不删
[root@server ~]# vi /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>

[root@server ~]# systemctl restart httpd

4.在浏览器中输入服务器地址验证
http://192.168.10.50/ #默认优先访问php界面,可以加index.php进行访问
http://192.168.10.50/index.html #访问html界面
在这里插入图片描述

5.mysql授权

mysqladmin -uroot -p password '666666'   
这个地方回车后,输入是初始密码,我们这边安装的初始密码是空的。回车即可

--------下面测试数据库工作是否正常-----
[root@server ~]# mysql -uroot -p666666

CREATE DATABASE myadm;
GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY '666666';
GRANT all ON myadm.* TO 'myadm'@'192.168.10.50' IDENTIFIED BY '666666';
flush privileges;
exit

[root@server ~]# vi /usr/local/httpd/htdocs/index.php

<?php
$link=mysqli_connect('192.168.10.50','myadm','666666');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

http://192.168.10.50/       #测试
Success!!         #成功则会显示Success!!

6.安装MySQL管理工具
先把压缩包导入/opt目录

---以下安装phpMyadmin------
[root@server ~]# cd /opt
[root@server opt]# unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/
[root@server opt]# mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
[root@server opt]# cd /usr/local/httpd/htdocs/myadm
[root@server opt]# cp config.sample.inc.php config.inc.php

[root@server opt]# vi config.inc.php

$cfg['Servers'][$i]['host'] = '192.168.10.50'; //把localhost 改成IP 31行

---测试---
http://192.168.32.21/myadm
使用root 以及前面为root配置的密码登录管理系统。可以对数据库进行管理操作了
经过以下操作才能用root登录
[root@server ~]# mysql -uroot -padmin123
grant all privileges on *.* to 'root'@'192.168.10.50' identified by '666666';
flush privileges;
exit

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值