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
在自己的虚拟机上清空环境, 把 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
准备相应的软件: 将所需要的软件包放到虚拟机里。 自己创建一个目录, 放在里面。
准备相应的软件: 将所需要的软件包放到虚拟机里。 自己创建一个目录, 放在里面。
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 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
前期工作:
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 的环境变量设置一下, 添加到系统的环境变量中
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
解压: [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 和本地数据库之间建立联系
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
[root@jia~]#vim /usr/local/apache2/conf/extra/httpd-languages.conf DefaultLanguage zh-CN 打开#注释 LanguagePriority zh-CN en ca cs da 添加 zh-CN
[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
[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(); ?>
[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 就不会报错了。
在浏览器里输入: 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>
[root@jia ~]# mkdir /www/{admin,myblog} -p
[root@jia ~]# cd /www/
[root@jia www]# ls admin myblog
[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/
[root@jia soft]# chown -R daemon. /www/
[root@jia soft]# ll /www/
在主配置文件进行修改:
# 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>
?
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‘, ‘‘);
[root@jia myblog]# service apache restart [root@jia myblog]# netstat -nltp |grep 80
在 windows 下输入 ip 地址, 或者网址, 如果不行在 linux 下进行测试
[root@jia ~]# lsblk
[root@jia ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
[root@jia ~]# vgcreate vg 01 /dev/sdb
[root@jia ~]# lvcreate -n lv-mysql -l 100%free vg01
[root@jia ~]# mkfs.ext4 /dev/vg01/lv-mysql
[root@jia init.d]# umount /u01/
[root@jia ~]# mount /dev/vg01/lv-mysql /u01/
[root@jia ~]# lsblk
[root@jia init.d]# service apache start
[root@jia init.d]# service mysql25 start
Starting MySQL. SUCCESS!
[root@jia init.d]# rsync -av/usr/local/mysql/192.168.5.1: /myysql-backup
[root@jia init.d]# rsync -av/usr/local/mysql/ /u01
检查同步是否完成:
[root@jia init.d]# du -sh /u01
[root@jia init.d]# umount /u01/
[root@jia init.d]# rm -rf /usr/local/mysql/*
[root@jia init.d]#mount /dev/vg01/lv-mysql /usr/local/mysql/
[root@jia init.d]#service apache start
[root@jia init.d]#service mysql25 start
在浏览器输入 ip 地址, 或者网站即可访问
开启防火墙, 看是否能够访问网页
[root@jia ~]#service iptables start
在网页访问测试, 访问不了
添加防火墙规则
开启防火墙后, 默认规则, 额外添加下面的规则
[root@jia ~]# iptables -I INPUT -p tcp --dport 80 -jACCEPT
原文:https://www.cnblogs.com/jiaxiaozia/p/12270839.html