目录
一、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