web服务器群集-部署LAMP平台
LAMP平台:1、LAMP:目前最为成熟的一种企业网站应用模式,可提供动态Web站点及开发环境。2、构建组件:Linux、Apache、Mysql、php3、优势:成本低廉、可定制,易于开发、方便易用,安全和稳定一、Apache网站服务:1、Apache起源:源于A Pathy Server,著名的开源Web服务软件。1995年时,发布Apache服务程序的1.0版本由Apache软件基金会(AS
·
LAMP平台:
1、LAMP:
目前最为成熟的一种企业网站应用模式,可提供动态Web站点及开发环境。
2、构建组件:
Linux、Apache、Mysql、php
3、优势:
- 成本低廉、可定制,
- 易于开发、方便易用,
- 安全和稳定
一、Apache网站服务:
1、Apache起源:
- 源于A Pathy Server,著名的开源Web服务软件。
- 1995年时,发布Apache服务程序的1.0版本
- 由Apache软件基金会(ASF)负责维护
- 最新的名称为“Apache HTTP Server”
- 官方站点:http://httpd.apache.org/
2、主要的特点:
- 开放源代码、跨平台应用(apr、apr-until)
- 支持多种网页编程语言
- 模块化设计、运行稳定、良好的安全性
3、软件版本:
- 1.X
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏一些较新的功能 - 2.X
目前最高版本是2.4
具有更多的功能特性
与1.X相比,配置管理风格存在较大的差异
二、编译安装http服务器:
1、编译安装的优点:
- 具有较大的自由度,功能可定制
- 可及时获得最新的软件版本
- 普遍适用于大多数Linux版本,便于移植使用
2、获得Apache服务器的源码包:
- 参考地址:http://httpd.apache.orp/download.cgi
3、编译安装httpd服务器的具体过程:
(1)准备工作:卸载httpd及相关依赖包
[root@localhost ~]# rpm -e httpd --nodeps(忽略软件依赖包关系)
[root@localhost ~]# yum install -y apr-util-devel pcre-devel
(2)源码编译安装:
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src
[root@localhost ~]#cd /usr/src/httpd-2.4.25/
[root@localhost httpd-2.4.25]#
./congigure --prefix=/usr/local/httpd
--enables-so
--enabes-rewrite
--enables-charset-lite
--enables-cgi
[root@localhost httpd-2.4.25]# make&&make install
(3)确认安装结果:
[root@localhost ~]#ls /usr/local/httpd
(4)优化执行路径:
[root@localhost ~]#ln -s /usr/local/httpd/bin/* /usr/local/bin
(命令文件能被系统识别)
[root@localhost ~]#ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
(系统启动脚本文件)
4、主要的目录和文件:
- 服务目录:/usr/local/httpd/
- 主配置文件:/usr/local/httpd/conf/httpd.conf
- 网页目录:/usr/local/httpd/htdocs
- 服务脚本:/usr/local/httpd/bin/apachectl
- 执行程序:/usr/local/httpd/bin/httpd
- 访问日志:/usr/local/httpd/log/acess_log
- 错误日志:/usr/local/httpd/log/error_log
5、Web站点部署过程:
- 确定网站的名字、ip地址
- 配置并启动httpd服务
- 部署网页文档
- 在客户机中访问Web站点
- 查看Web站点访问情况
6、常用的全局配置项及参数:
- ServerRoot:服务目录
- Listen:监控的ip地址、端口号
- User:运行服务的用户身份
- Group:运行服务的组身份
- ServerAdmin:管理员邮箱
- ServerName:网站服务器的域名
- DocumentRoot:网页文档的根目录
- Diretoryindex:默认的索引页文件
- ErrorLog:设置错误日志文件的路径
- LogLevel:记录日志的级别,默认为warn
- CustomLog:访问日志文件的位置
- PidFile:保存httpd进程PID号的文件
- AddDefaultCharest:设置站点中网页默认的字符集编码utf-8
- Timeout:网络连接超时,默认为300秒
- KeepAlive:是否保持连接,可选on或off
- MaxKeepAliveRequests:每次连接最多请求文件数
- KeepAliveTimeout:保持连接状态时的超时时间
- Include:需要包含进来的其他配置文件
7、常用的区域配置项及参数:
- 使用一对组合标记,限定了配置项的作用范围
<Directory />
Options FollowSymLinks
AllowOverride none
Require all denied
</Directory >
-------------------------------Apache------------------------------------------
[root@localhost ~]#iptables -F ###关闭一切防火墙等安全机制
[root@localhost ~]#setenforce 0
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir apache mysql php ####建立三个服务的站点 -C 安装到目标位置
[root@localhost opt]# cd apache/ ####将三个httpd相关的包直接通过xshell托进去
apr-util-1.6.0.tar.gz
apr-1.6.2.tar.gz
httpd-2.4.29.tar.bz2
[root@localhost apache]# tar xzvf apr-1.6.2.tar.gz
[root@localhost apache]# tar xzvf apr-util-1.6.0.tar.gz
[root@localhost apache]# tar xjvf httpd-2.4.29.tar.bz2
[root@localhost apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr ####将两个组件放到httpd的srclib里面支持httpd文件正常运行
[root@localhost apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost apache]# yum -y install \ ####安装环境
> gcc \
> gcc-c++ \
> make \
> pcre-devel \ 正则表达式
> expat-devel \ 解析xml格式文件
> perl perl语言
[root@localhost apache]# cd httpd-2.4.29/ 重要两个文件:主配置文件、启动文件
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \ 指定安装路径
> --enable-so \ 开启核心功能模块
> --enable-rewrite \ 重写功能(防盗链)
> --enable-charset-lite \ 字符集的设定
> --enable-cgi 编程语言的规范,通用网关接口
[root@localhost httpd-2.4.29]# make && make install
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd ap里面的命令启动脚本,让环境识别
[root@localhost init.d]#cd /etc/init.d
[root@localhost init.d]# vim /etc/init.d/httpd ###优化
# chkconfig: 35 85 21 ###在开头添加
# description: Apache is a World Wide Web server
[root@localhost init.d]# chkconfig --add httpd ###让server能够识别httpd里面的命令自动补全
[root@localhost init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
[root@localhost init.d]# vim /etc/httpd.conf
1、 #ServerName www.kgc.com:80
2、Listen 192.168.100.100:80
#Listen 80
[root@localhost init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ (系统环境变量$PATH) 为了让系统识别不用敲绝对路径
[root@localhost init.d]#ls /usr/local/httpd/bin/
[root@localhost init.d]#httpd -t >>>>Syntax OK既是成功
[root@localhost init.d]# service httpd start
[root@localhost init.d]#netstart -ntap | grep 80
三、安装数据库:
------------------------------------MySQL---------------------------------------
[root@localhost ~]# cd /opt/mysql/
[root@localhost mysql]# yum -y install ncurses-devel(终端包) autoconf(处理shell脚本包) cmake(configue)
mysql-5.6.26.tar.gz
[root@localhost mysql]# tar xzvf mysql-5.6.26.tar.gz
[root@localhost mysql]# cd mysql-5.6.26
[root@localhost mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ ###指定安装路径
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DEXTRA_CHARSETS=all \ ####上面字符集设置
> -DSYSCONFIDIR=/etc \ ###配置文件
> -DMYSQL_DATADIR=/home/mysql/ \ #### 数据文件
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock ####数据库的连接文件
[root@localhost mysql-5.6.26]# make && make install
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf #####系统配置文件
cp:是否覆盖"/etc/my.cnf"? yes
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld ####启动脚本
[root@localhost mysql-5.6.26]# chmod +x /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld ####让server管理
[root@localhost mysql-5.6.26]# chkconfig mysqld --level 35 on ###开机自启动
[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
[root@localhost mysql-5.6.26]# source /etc/profile
[root@localhost mysql-5.6.26]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@localhost mysql-5.6.26]# chown -R mysql.mysql /usr/local/mysql/
[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \ 数据库的初始化
> --user=mysql \
> --ldata=/var/lib/mysql \ 数据库的库文件
> --basedir=/usr/local/mysql \ 管理数据库服务的文件
> --datadir=/home/mysql 数据库数据文件
[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld
46 basedir=/usr/local/mysql
47 datadir=/home/mysql
[root@localhost mysql-5.6.26]# service mysqld start
[root@localhost mysql-5.6.26]# netstat -anpt | grep 3306
[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "abc123"
[root@localhost mysql-5.6.26]# mysql -u root -p
mysql>
mysql> show databases;
mysql> exit
四、安装php:
---------------------------------------php-------------------------------------
[root@localhost mysql-5.6.26]# cd /opt/php/
[root@localhost php]# yum -y install \
> gd \
> libpng \ 图片格式
> libpng-devel \
> pcre \
> pcre-devel \ 正则表达式
> libxml2-devel \ 识别xml
> libjpeg-devel
php-5.6.11.tar.bz2
[root@localhost php]# tar jxvf php-5.6.11.tar.bz2
[root@localhost php]# cd php-5.6.11/
[root@localhost php-5.6.11]# ./configure \
> --prefix=/usr/local/php5 \ 工作目录
> --with-gd \
> --with-zlib \
> --with-apxs2=/usr/local/httpd/bin/apxs \
> --with-mysql=/usr/local/mysql \ 连接数据库
> --with-config-file-path=/usr/local/php5 \ ap识别数据库
> --enable-mbstring 多字符串的处理
[root@localhost php-5.6.11]# make && make install
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini php配置文件
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/ 使命令让系统识别
[root@localhost php-5.6.11]# vim /etc/httpd.conf 使得httpd适合php
382 AddType application/x-httpd-php .php
383 AddType application/x-httpd-php-source .phps
256 DirectoryIndex index.php index.html 支持首页类型
[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.html
<?php
phpinfo();
?>
[root@localhost php-5.6.11]# mv /usr/local/httpd/htdocs/index.html /usr/local/httpd/htdocs/index.php 覆盖来换文件格式
[root@localhost php-5.6.11]#cd /opt 加入论坛系统文件
[root@localhost opt]# unzip Discuz_X2.5_SC_UTF8.zip
[root@localhost opt]#cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost bbs]# chown -R daemon ./config/
[root@localhost bbs]# chown -R daemon ./data/
[root@localhost bbs]# chown -R daemon ./uc_client/
[root@localhost bbs]# chown -R daemon ./uc_server/data/
[root@localhost bbs]# mysql -u root -p
mysql> create database bbs;
mysql> grant all on bbs.* to 'bbsuser'@'%' identified by '123';
mysql> flush privileges; #####刷新数据库
mysql> show databases;
mysql> quit
五、构建虚拟主机:
- 1、基于域名的虚拟主机:
实验1 基于域名的虚拟主机:
实验前期准备: 添加两张网卡ip:192.168.100.100 192.168.100. 200。网关:192.168.100.2。DNS1:192.168.100.2(做网站服务器) 192.168.100 .50(win10测试机)
[root@localhost ~]# yum -y install httpd bind
[root@localhost ~]# vim /etc/named.conf 修改any
[root@localhost ~]# vim /etc/named.rfc1912.zones 修改:kgc.com kgc.com.zone benet.com benet.com.zone
[root@localhost ~]# cd /var/named
[root@localhost ~]# cp -p named.localhost kgc.com.zone 两个网站的域名解析用的是同一个主机100. 100
[root@localhost ~]# vim kgc.com.zone
添加www IN A 192.168.100.100
[root@localhost ~]# cp -p kgc.com.zone benet.com.zone
[root@localhost ~]# systemctl start named 到win10上nslookup www.kgc.com nslookup www.benet.com (要在win10的网卡上修改DNS解析的地址)
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/httpd/ >>>conf conf.d logs
[root@localhost ~]# cd conf
[root@localhost ~]# mkdir extra >>>extra httpd.conf magic 自己创的文件后面要告诉httpd
[root@localhost ~]# cd extra/
[root@localhost ~]# vim vhost.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/kgc"
ServerName www.kgc.com
Errorlog "logs/www.kgc.com.error_log"
CustomLog "logs/www.kgc.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/benet"
ServerName www.benet.com
Errorlog "logs/www.benet.com.error_log"
CustomLog "logs/www.benet.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
[root@localhost ~]# cd /var/www/html/
[root@localhost ~]# mkdir kgc benet
[root@localhost ~]# cd benet/ kgc/ 给两个网站添加站点
[root@localhost ~]# vim index.html 自己添加相关文字
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
Include conf/extra/vhost.conf *********要对自己写的文件进行httpd的宣告!!!
Listen 192.168.100.100:80
#Listen 80
[root@localhost ~]# systemctl restart httpd 在浏览器上输入www.kgc.com www.benet.com
- 2、基于端口的虚拟主机:
实验2 基于端口的虚拟主机:
[root@localhost ~]# cd /etc/httpd/conf/extra
[root@localhost ~]# vim vhost.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/benet"
ServerName www.benet.com
Errorlog "logs/www.benet.com.error_log"
CustomLog "logs/www.benet.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "/var/www/html/benet02"
ServerName www.benet.com
Errorlog "logs/www.benet02.com.error_log"
CustomLog "logs/www.benet02.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
[root@localhost ~]# mkdir /var/www/html/benet02
[root@localhost ~]# vim /var/www/html/benet02/index.html 自己打字
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.100.100:80
Listen 192.168.100.200:8080 ******
#Listen 80
[root@localhost ~]# systemctl restart httpd 在浏览器上输入“www.benet.com:80 www.benet.com:8080 ”
- 3、基于地址的虚拟主机:
实验3 基于ip地址的虚拟主机:
[root@localhost ~]# cd /etc/httpd/conf/extra
[root@localhost ~]# vim vhost.conf
<VirtualHost 192.168.100.100:80>
DocumentRoot "/var/www/html/kgc"
Errorlog "logs/www.kgc.com.error_log"
CustomLog "logs/www.kgc.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.100.200:80>
DocumentRoot "/var/www/html/kgc02"
Errorlog "logs/www.kgc02.com.error_log"
CustomLog "logs/www.kgc02.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
[root@localhost ~]# mkdir /var/www/html/kgc02
[root@localhost ~]# vim /var/www/html/kgc02/index.html 自己敲字
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.100.100:80
Listen 192.168.100.200:80 ******
#Listen 80
[root@localhost ~]# systemctl restart httpd 在浏览器上输入“192.168.100.100 192.168.100. 200 ”
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)