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/ 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