LAMP环境搭建,防火墙开启,数据库挂载在逻辑卷
具体要求:
1、 源码部署 LAMP 环境, 和生产保持一致 2、 静态资源文件同步生产环境 3、 需要同时部署 2 个 web 网站
步骤:
一、 需要的安装包、 提前准备好。
apr-util-1.5.4.tar.bz2 httpd-2.4.12.tar.bz2 php-5.6.11.tar.xz mysql-5.6.25.tar.gz
二、 更改主机名和 IP 地址, 把主机名和 ip 地址绑定在一块, 关闭防火墙和 selinux
三、 安装前环境准备
在自己的虚拟机上清空环境, 把 mysql 和 httpd 等和此次 LAMP 环境的搭建不相关的软件 清空, 目的是为了后面相同的软件版本不同, 会造成冲突, 为了减少不必要的麻烦, 我们提 前清空这些软件。 由于整个环境会涉及比较多的依赖关系包, 所以我们先将一些依赖包装上。(根据不同的 环境可能不仅限于这些包。
清空环境、 安装相应的软件包
# yum groupinstall "Development tools" -y 开发工具包
# yum groupinstall "Desktop Platform Development" -y 桌面开发工具包(图
形化相关包)
# yum install cmake
# yum install ncurses-devel
# yum -y install pcre-devel
准备相应的软件: 将所需要的软件包放到虚拟机里。 自己创建一个目录, 放在里面。
准备相应的软件: 将所需要的软件包放到虚拟机里。 自己创建一个目录, 放在里面。
LAMP环境的搭建:
1、 安装 MYSQL:
1.1、官方网站下载相应的软件包
mysql-5.6.25.tar.gz
1.2、解压软件包
[root@jia soft]# tar xf mysql-5.6.25 mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz mysql-5.6.25.tar.gz
[root@jia soft]# tar xf mysql-5.6.25 mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz mysql-5.6.25.tar.gz
[root@jia soft]# tar xf mysql-5.6.25.tar.gz -C /usr/src/
[root@jia soft]# cd /usr/src/mysql-5.6.25/
[root@jia mysql-5.6.25]# ls
3、安装
前期工作:
1) 创建相应的用户。
[root@jia mysql-5.6.25]# useradd mysql -r -s /sbin/nologin
[root@jia mysql-5.6.25]# id mysql uid=496(mysql) gid=493(mysql) groups=493(mysql)
2) 根据需求配置
[root@jia mysql-5.6.25]# vim cmake.sh
[root@jia mysql-5.6.25]# chmod +x cmake.sh
[root@jia mysql-5.6.25]# ./cmake.sh
不要直接./configure 而是要根据需求写出一个 cmake.sh 的脚本文件来执行它。 在执行 之前对脚本进行一个权限设置, 让它有执行权限, 指令: chmod +x cmake.sh, 再去执行 它指令: ./cmake.sh
如若在执行 cmake.sh 的脚本时有报错, 要分析原因, 是不是还有依赖关系的软件包没 有安装, 或者脚本写错还是别的什么原因, 分析问题后再去解决。
3) 编译, 安装 [root@jia mysql-5.6.25]# make && make install
后期配置:
初始化 mysql 数据库
[root@jia mysql-5.6.25]# cd /usr/local/mysql/
[root@jia mysql]# scripts/mysql_install_db --user=mysql
Installing MySQL system tables...2018-09-18 14:29:58 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timesta
[root@jia mysql]# ll data/
进入到 mysql 的安装路径里, 执行指令: scripts/mysql_install_db --user=mysql 切换 到 mysql 的数据目录里会有一些文档出来, 如: ibdata1、 ib_logfile0、 ib_logfile1、 mysql、performance_schema、 test 这样就说明初始化成功了。
1) 把 mysql 的启动脚本, 拷贝到/etc/init.d 这个目录里
[root@jia mysql]# cd /usr/local/mysql/
[root@jia mysql]# ls
[root@jia mysql]# cp support-files/mysql.server /etc/init.d/mysql25 源码安装的启动脚本和我们平时启动 mysql 的启动脚本不一样, 我们需要找 mysql 的启 动脚本, 把它的启动脚本拷贝到, 系统的启动脚本中。
2) 启动 mysql 服务
[root@jia mysql]# cp support-files/mysql.server /etc/init.d/mysql25 [root@jia mysql]# service mysql25 start Starting MySQL. SUCCESS!
1) 在启动服务时, 可能会有报错, 如以下内容 : Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/lamp.itcast.cc.pid). 分 析 : 根 据 mysql 的 错 误 日 志 来 分 析 问 题 。 在 错 误 日 志 里 发 现 /usr/local/mysql/bin/mysqld: Can't create/write to file '/tmp/ibvzrCcS' (Errcode: 13 - Permission denied) 解决: 考虑可能是/tmp 目录权限不够导致, 查看/tmp 的目录权限, 给/tmp/目录进行 权限修改, 给它全部权限 777。
2) 再次启动服务, 如若没有报错怎成功
3) 给 mysql 数据库的管理员 root 设置密码。
[root@jia mysql]# ./bin/mysqladmin -u root -h jia password '123'
4) 登录 mysql 的数据库
[root@jia mysql]# /usr/local/mysql/bin/mysql -uroot -p123 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g.
[root@jia mysql]# source /etc/profile
[root@jia mysql]# . /etc/profile
登录之前把 mysql 的环境变量设置一下, 添加到系统的环境变量中
2、 Apache 的安装:
1、 在安装 Apache 之前先安装一些 Apache 的依赖包 apr(官方文档查询得知)。
安装 apr 软件:
[root@jia soft]tar xf apr-1.5.2.tar.bz2 -C /usr/src/
[root@jia apr-1.5.2]cd /usr/src/apr-1.5.2
[root@jia apr-1.5.2] ./configure
[root@jia apr-1.5.2]make && make instaall
安装 apr-util 软件:
[root@jia soft]# tar xf apr-util-1.5.4.tar.bz2 -C /usr/src/
[root@jia soft]# cd /usr/src/apr-util-1.5.4/
[root@jia apr-util-1.5.4]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config
[root@jia apr-util-1.5.4]# make && make install
2、 将库文件的指定安装路径加入到 ldconfig 命令的搜索列表 [root@jia apr-util-1.5.4]# echo "/usr/local/apr/lib/" >> /etc/ld.so.conf
[root@jia apr-util-1.5.4]# ldconfig
编译安装 httpd:
[root@jia soft]# tar xf httpd-2.4.12.tar.bz2
[root@jia soft]# cd httpd-2.4.12
[root@jia httpd-2.4.12]# vim apache.sh
[root@jia httpd-2.4.12]# chmod +x apache.sh 确认安装成功 [root@jia httpd-2.4.12]# ls /usr/local/apache2/
bin build cgi-bin conf error htdocs icons include logs man manual modules
3、 安装 php:
解压: [root@jia httpd-2.4.12]# cd /soft/
[root@jia soft]# tar xf php-5.6.11.tar.xz
配置:
[root@jia soft]# cd php-5.6.11
[root@jia php-5.6.11]# vim php.sh
[root@jia php-5.6.11]# chmod +x php.sh
[root@jia php-5.6.11]# ./php.sh
报错:
configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/ [root@jia php-5.6.11]# make && make install make: *** No targets specified and no makefile found. Stop.
解决:
[root@jia php-5.6.11]# yum -y install libcurl-devel
编译、 安装:
[root@jia php-5.6.11]# make && make install
确认安装 PHP 成功:
[root@jia php-5.6.11]# ls /usr/local/apache2/modules/libphp5.so /usr/local/apache2/modules/libphp5.so
对 apache 和 php php 和本地数据库之间建立联系
3.1、 配置 apache 和 PhP 之间的联系
1) 在 apache 的主配置文件中修改以下内容
[root@jia ~]# vim /usr/local/apache2/conf/httpd.conf
//语言配置 LoadModule negotiation_module modules/mod_negotiation.so 此模块打开# 注释 Include conf/extra/httpd-languages.conf 打开此选项 //打开对虚拟主机的支持 Include conf/extra/httpd-vhosts.conf 打开#注释 //加载 php 模块解析 php 页面,添加两行, 告诉 httpd 把.php 文件交给模块 去编译 LoadModule php5_module modules/libphp5.so 找到这一句, 在这 句下面加上两句 //添加以下两行意思是以.php 结尾的文件都认为是 php 程序文件, 注意两句 话的.php 前面都是有一个空格的 AddHandler php5-script .php AddType text/html .php
3.2、 打开 apache 的子配置文件
[root@jia~]#vim /usr/local/apache2/conf/extra/httpd-languages.conf DefaultLanguage zh-CN 打开#注释 LanguagePriority zh-CN en ca cs da 添加 zh-CN
3.3、 php 支持连接本地数据
[root@jia ~]# cd /soft/php-5.6.11
[root@jia php-5.6.11]# cp php.ini-production /usr/local/lib/php.ini [root@jia php-5.6.11]# vim /usr/local/lib/php.ini
[MySQL]
mysql.default_port = 3306 改成对应的 mysql 的端口
mysql.default_socket = /tmp/mysql.sock 对应的 socket 文件地址
[MySQLi]
mysqli.default_port = 3306
mysqli.default_socket = /tmp/mysql.sock
3.4、 测试是否支持 PHP
[root@jia php-5.6.11]# cd /usr/local/apache2/htdocs/
[root@jia htdocs]# ls
index.html
[root@jia htdocs]# rm -f index.html
[root@jia htdocs]# vim /usr/local/apache2/htdocs/index.php [root@jia htdocs]# cat /usr/local/apache2/htdocs/index.php
<?php phpinfo(); ?>
3.5、 启动 apache
[root@jia docs]# service apache restart AH00112:Warning:DocumentRoot[/usr/local/apache2/docs/dummy-host.example.com] does not exist AH00112:Warning:DocumentRoot[/usr/local/apache2/docs/dummy-host2.example.com] does not exist AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.5.2. Set the 'ServerName' directive globally to suppress this message
解决办法:
在apacehe 的主配置文件中修改之前打开对虚拟主机的注释, 重新添加上#注释, 此操作会 把前两个问题解决掉; 对于最后一个问题需要在 apache 的主配置文件中修改#ServerName www.example.com:80 修改为自己主机名和 ip 绑定的 ip 地址, 即: ServerName 192.168.5.2:80 并且前面的注释 # 打开, 再次重启 apache 就不会报错了。
3.6、 测试验证:
在浏览器里输入: http://192.168.5.2.就会看到 PHP 的测试页 当最测试的时候在网页上出现, Forbidden You don't have permission to access / on this server.
解决办法:
需要修改以下内容:
[root@lamp myblog]# /usr/local/apache2/conf/httpd.conf
<Directory /> 目录
AllowOverride none
# Require all denied
Require all granted 要求所有人都同意
</Directory>
根据需求部署 web 应用:
1、 创建相应的数据目录
[root@jia ~]# mkdir /www/{admin,myblog} -p
[root@jia ~]# cd /www/
[root@jia www]# ls admin myblog
2、 将两个网站相关的程序文件解压拷贝到指定的目录里
[root@jia soft]# unzip phpMyAdmin-4.4.11-all-languages.zip [root@jia soft]# cp -a phpMyAdmin-4.4.11-all-languages/* /www/admin/
[root@jia soft]# tar xf wordpress-4.7.3-zh_CN.tar.gz
[root@jia soft]# cp -a wordpress/* /www/myblog/
3、 修改网站数据所在目录的属主和属组
[root@jia soft]# chown -R daemon. /www/
[root@jia soft]# ll /www/
4、 配置虚拟机
在主配置文件进行修改:
# Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts
Include conf/extra/httpd-vhosts.conf 打开对虚拟主机的支持 打开#注释 在配置文件的最后面, 多添加以下内容:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/www/admin"
ServerName www.admin.cc 要发布的网站
ServerAlias www.admin.cc
ErrorLog "logs/admin-error_log" 错误日志
CustomLog "logs/admin-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com5、 修改每个网站各自连接 mysql 数据库的配置文件
DocumentRoot "/www/myblog"
ServerName www.myblog.net
ErrorLog "logs/myblog-error_log"
CustomLog "logs/myblog-access_log" common
</VirtualHost>
5、 修改每个网站各自连接 mysql 数据库的配置文件
1) mysql 的 web 管理网站 phpMyAdmin 相关文件
[root@jia extra]# cd /www/admin/
[root@jia admin]# cp config.sample.inc.php config.inc.php
2) myblog 网站 wordpress 进入到 myblog 数据库里创建一个 myblog 库
[root@jia myblog]# cd /usr/local/apache2/conf/extra/
[root@jia myblog]# mysql -uroot -p123 mysql> create database myblog; Query OK, 1 row affected (0.00 sec)
[root@jia myblog]#cp wp-config-sample.php wp-config.php [root@jia myblog]#vim wp-config.php
...
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress 数据库的名称 */
define('DB_NAME', 'myblog');
/** MySQL 数据库用户名 */
define('DB_USER', 'root');
/** MySQL 数据库密码 */
define('DB_PASSWORD', '123');
/** MySQL 主机 */
define('DB_HOST', '127.0.0.1');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。 如不确定请勿更改 */
define('DB_COLLATE', '');
6、 启动 apache 服务
[root@jia myblog]# service apache restart [root@jia myblog]# netstat -nltp |grep 80
7、测试验证:
在 windows 下输入 ip 地址, 或者网址, 如果不行在 linux 下进行测试
迁移 mysql 数据库:
1) 添加一块硬盘
[root@jia ~]# lsblk
2) 创建物理卷
[root@jia ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
3) 创建卷组
[root@jia ~]# vgcreate vg 01 /dev/sdb
4) 创建逻辑卷
[root@jia ~]# lvcreate -n lv-mysql -l 100%free vg01
5) 格式化 ext4 文件系统
[root@jia ~]# mkfs.ext4 /dev/vg01/lv-mysql
6) 把逻辑卷挂载到 u01 下
a、创建一个空的挂载点/u01
[root@jia init.d]# umount /u01/
b 、把/dev/vg01/lv-mysql 挂载到/u01 下
[root@jia ~]# mount /dev/vg01/lv-mysql /u01/
[root@jia ~]# lsblk
7) 停止前端的 web 服务
[root@jia init.d]# service apache start
[root@jia init.d]# service mysql25 start
Starting MySQL. SUCCESS!
8) 把 mysql 的数据库本份一份到另一台备份机上
[root@jia init.d]# rsync -av/usr/local/mysql/192.168.5.1: /myysql-backup
9) 将 mysql 数据库里的文件同步到逻辑卷上, 即/u01 目录里
[root@jia init.d]# rsync -av/usr/local/mysql/ /u01
检查同步是否完成:
[root@jia init.d]# du -sh /u01
10) 卸载逻辑卷
[root@jia init.d]# umount /u01/
11) 删除 MYSQL 数据库里的所有文件
[root@jia init.d]# rm -rf /usr/local/mysql/*
12) 挂载逻辑卷到 mysql 的安装目录里
[root@jia init.d]#mount /dev/vg01/lv-mysql /usr/local/mysql/
13) 启动数据库, 启动 web 服务
[root@jia init.d]#service apache start
[root@jia init.d]#service mysql25 start
14) 测试验证
在浏览器输入 ip 地址, 或者网站即可访问
开启防火墙, 看是否能够访问网页
[root@jia ~]#service iptables start
在网页访问测试, 访问不了
添加防火墙规则
开启防火墙后, 默认规则, 额外添加下面的规则
[root@jia ~]# iptables -I INPUT -p tcp --dport 80 -jACCEPT
再次在网页进行访问 访问成功
LAMP环境搭建,防火墙开启,数据库挂载在逻辑卷的更多相关文章
- LAMP环境搭建教程(原创)
学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我介绍一下LAMP环境的搭建,即Linux.Apache.MySQL.PHP环境. 一. ...
- LAMP环境搭建教程
原文:LAMP环境搭建教程 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我介绍一下LAMP环境的搭建,即Linux.Apache.M ...
- LAMP 环境搭建之源码包编译安装
mysql用的二进制包安装. Apache php 用的源码包 mysql版本5.5.46 Apache版本2.4.7 PHP版本:5.5 mysql安装部分参考了阿铭linux的内容. 这是 ...
- linux下LAMP环境搭建
++++++++++++++++++++++++++++++++++++++++++++++ linux下LAMP环境搭建 ++++++++++++++++++++++++++++++++++++++ ...
- 转载自php100中文网 centos下lamp 环境搭建
学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我介绍一下LAMP环境的搭建,即Linux.Apache.MySQL.PHP环境. 一. ...
- ubuntu上lamp环境搭建
首先,介绍个彻底删除linux已经安装的软件的方法. sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-5. ...
- 笔记:Linux下软件的安装、CentOS更新yum源、LAMP环境搭建、kali软件管理
一.Linux下软件的安装 方式:yum源 / rpm /源码安装 1.yum:(帮助管理员解决依赖关系) yum是通过分析rpm的包头数据后,根据各种软件的相关性质做出属性相对应的解决方案,然后可以 ...
- lamp环境搭建(ubuntu)
系统:Ubuntu14.04 方法一.最简单的在线安装 (参考网址:http://os.51cto.com/art/201307/405333.htm) 具体过程: [1]打开终端,执行命令 # su ...
- linux的基本操作(LAMP环境搭建)
LAMP 环境搭建 经过前部分章节的学习,你已经掌握了linux的基础知识了.但是想成为一名系统管理员恐怕还有点难度,因为好多单位招聘这个职位的时候都要求有一定的工作经验.然而真正的经验一天两天是学不 ...
随机推荐
- VNC连接桌面
1.#yum -y install vnc *vnc-server* 2.修改VNCServer主配置文件 #vim /etc/sysconfig/vncservers 复制最后两行并去掉行首注释符, ...
- ACM蒟蒻防bug专用 ( •̀ ω •́ )✧
/*********************************************** * _ooOoo_ * * o8888888o * * 88" . "88 * * ...
- ACM&OI 基础数学算法专题
[前言] 本人学习了一定时间的算法,主要精力都花在数学类的算法上面 而数学类的算法中,本人的大部分精力也花费在了数论算法上 此类算法相对抽象,证明过程比较复杂 网络上的博客有写得非常好的,但也有写得不 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:变量
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- iOS基础——通过案例学知识之xib、plist、mvc
透过案例学习xib的使用.plist的使用.mvc在iOS的使用,今天要做的案例效果图 1.xib和nib xib文件可以被XCode编译成nib文件,xib文件本质上是一个xml文件,而nib文件就 ...
- day26(026-网络编程)
###26.02_网络编程(网络编程三要素之IP概述) IPv6:8组,每组4个16进制数. 1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f ###26.03_网络编程 ...
- 线程与进程 concurrent.futures模块
https://docs.python.org/3/library/concurrent.futures.html 17.4.1 Executor Objects class concurrent.f ...
- Spring最基础使用1
1. 导入Spring等jar包 2. 配置文件 applicationContext.xml <?xml version="1.0" encoding="UTF- ...
- git push的时候.gitignore不起作用的解决方法
问题的原因 这是因为在你添加.gitignore之前已经进行过push操作,有些文件已经纳入版本管理了. 解决方法 我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了. ...
- 题解 P4317 【花神的数论题】
题目 可能跟某位大佬有点类似,不过我的应该跑得比他快那么一点点......虽然应该没什么关系...... [分析] 假设一个对于一个数 \(N\) ,最高位为第 \(n\) 位 那么,显然有 \(2^ ...