ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

LAMP环境搭建,防火墙开启,数据库挂载在逻辑卷

2020-02-06 21:02:19  阅读:416  来源: 互联网

标签:5.6 jia 防火墙 LAMP usr mysql 挂载 php root


具体要求:

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/ total 110604 -rw-rw---- 1 mysql mysql 12582912 Sep 18 14:30 ibdata1 -rw-rw---- 1 mysql mysql 50331648 Sep 18 14:30 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Sep 18 14:29 ib_logfile 进入到 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 bin data include lib my.cnf README share support-files COPYING docs INSTALL-BINARY man mysql-test scripts sql-bench [root@jia mysql]# [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

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 [MySQL] mysql.default_port = 3306 改成对应的 mysql 的端口 mysql.default_socket = /tmp/mysql.sock 对应的 socket 文件地址 [MySQLi] mysqli.default_port = 3306 mysqli.default_socket = /tmp/mysql.sock <?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/ total 8 drwxr-xr-x 10 daemon daemon 4096 Sep 18 17:00 admin drwxr-xr-x 5 daemon daemon 4096 Sep 18 17:01 myblog

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

DocumentRoot "/www/myblog"
ServerName www.myblog.net
ErrorLog "logs/myblog-error_log"
CustomLog "logs/myblog-access_log" common
</VirtualHost>
...
// ** 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 再次在网页进行访问 访问成功

标签:5.6,jia,防火墙,LAMP,usr,mysql,挂载,php,root
来源: https://www.cnblogs.com/jiaxiaozia/p/12270839.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有