##Linux运维笔记(就老男孩运维28期、马哥教育、学神IT、老段带你学Linux、Linux-Cast整理而来)
##声明
- “-“ 后面接的是段落小节标题
- 笔记按照服务一般配置整理
- 本文采用软件为 MarkdownPad2进行编辑
- 本文记录时间 2/27/2017 5:38:32 PM
- 请将本文ip替换成自己的ip
- 本文内容如有不当之处,欢迎批评指正
- 文档书写风格 章节内的小节缩进2个tab,小节内容在章节的基础上缩进1个tab
本文大纲
1.开篇的话
2.Apache 服务
3.案例
1.开篇的话
学习Linux服务的大体流程如下
了解服务的作用:名称,功能,特点
安装
配置文件位置,端口
服务启动关闭的脚本
此服务的使用方法
修改配置文件,实战举例
排错(从下到上,从内到外)
2.Apache 服务
简介
web服务概述:
WEB服务器也称为WWW(WORLD WIDE WEB,万维网)服务器,主要功能是提供网上信息浏览服务。
常见web服务器(web):
httpd(apache)、nginx +PHP
tomcat: jsp + html
win:IIS
客户端:IE 、firefox、chrome 、手机(浏览器)Browser
今天的主角:LAMP=Linux Apache Mysql PHP 中的 Apache(HTTPD)
类 LINUX 系统
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 一组常用来搭建动态网站或者服务器 的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼 容度,共同组成了一个强大的 Web 应用程序平台。随着开源潮流的蓬勃发展,开放源代码 的 LAMP 已经与 J2EE 和.Net 商业软件形成三足鼎立之势,并且该软件开发的项目在软件方 面的投资成本较低,因此受到整个 IT 界的关注。从网站的流量上来说,70%以上的访问流量 是 LAMP 来提供的,LAMP 是最强大的网站解决方案
什么是 Apache
Apache HTTPD Server 简称 Apache,是 Apache 软件基金会的一个开源的网页服务器, 可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编 译到服务器中!Apache HTTP 服务器是一个模块化的服务器,各个功能使用模块化进行插拔! 目前支持 Windows,Linux,Unix 等平台!
Apache 软件基金会(也就是 Apache Software Foundation,简称为 ASF),是专门为运 作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是 Apache 项目!那么我们的 HTTPD 也只是 Apache 的开源项目之一!
主要的开源项目:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts, Tomcat,Tapestry,Hadoop 等等。只是最有名的是 HTTP Server,所以现在所说的 Apache 已 经就是 HTTPD Server 的代号了! 我们还见的比较多的是 Tomcat,Hadoop 等项目
官方网站:http://www.apache.org/httpd:http://httpd.apache.org/
什么是 Mysql
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司,他也是最流行的关系型数据库管理系统!特别是在 WEB 应用方面!
关系型数据库:它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数
据
官方网站:http://www.mysql.com/
什么是 PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通 用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适 用于 Web 开发领域。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。它可以 比 CGI 或者 Perl 更快速地执行动态网页。用 PHP 做出的动态页面与其他的编程语言相比, PHP 是将程序嵌入到 HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比 完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和 优化代码运行,使代码运行更快。
简单的说,PHP 就是一个脚本解释器! 官方网站:http://php.net/
PHP 服务器安装好之后,升级切记注意,不要盲目升级!因为它会废弃很多废弃低效的语法!
工作原理
服务安装、启动和配置
服务安装
yum install -y httpd #安装服务器端:httpd
yum install elinks #安装字符界面的下浏览器客户端
服务启动、端口检测和加入开机启动项
service httpd restart
netstat -anutp | grep 80
chkconfig httpd on
服务配置
vim /etc/httpd/conf/httpd.conf #配置文件的位置
配置参数
ServerName 192.168.1.235:80 #服务器主机名
PidFile run/httpd.pid#apache #运行进程 ID 存放
Timeout 60 #超时时间,多少 s 没有反应就超时
KeepAlive Off #是否允许一个永久的链接,设置为 OFF 的时候,不 能保持连接功能,传输效率比较低,设置为 ON 时,可以提高服务器传输文件的效率,建议开启
MaxKeepAliveRequests 100 #设置 KeepAlive 为 ON 时,设置客户端每次连接允许 请求相应最大文件数,默认 100 个
KeepAliveTimeout 15 #超时时间,同一个客户端下一个请求 15s 没收到就 超时
Listen 80#监听端口,默认本地 IP,如果指定 ip 写上 IP:80
<IfModule prefork.c>
StartServers8 #服务开始起启动 8 个进程
MinSpareServers5 #最小空闲 5 个进程
MaxSpareServers20 #最多空闲 20 个进程
ServerLimit256 #服务器允许配置进程数上线
MaxClients256 #最大连接数 256,超过要进入等候队列
MaxRequestsPerChild4000 #每个进程生存期内服务最大的请求数量,0 表示用不 结束
</IfModule>
<Directory />
Options FollowSymLinks #Options Indexes 目录浏览FollowSymLinks 用连接
浏览
AllowOverride None #设置为 none,忽略.htaccess
</Directory>
LoadModule auth_basic_module modules/mod_auth_basic.so #载入的库,模块
● ● ● ● ● ●
Include conf.d/*.conf #conf.d 里面的 conf 文件也属有效配置文件
User apache#apache #运行以哪个身份运行
Group apache#apache #运行以哪个组的身份运行
ServerAdmin root@localhost #管理员邮箱
DocumentRoot "/var/www/html" #默认的主目录,如果改动要改动两处,Directory
<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None
Order allow,deny #这里默认后者生效,也就是 deny 生效
Allow from all #这里说允许所有
</Directory>
LogLevel warn #日志等级
DirectoryIndex index.html index.html.var #首页
AccessFileName .htaccess #access 文件名
AddDefaultCharset UTF-8 #支持的语言,默认编码
#配置文件的最后是虚拟主机的字段,其中你大部分字段做个了解即可,用到的时候去查 即可
3.案例
例1:搭建一台测试web服务器
分析:
部门内部搭建一台WEB服务器,采用的IP地址和端口为192.168.0.63:80,首页采用index.html文件。
管理员E-mail地址为 cat@xuegod.cn,网页的编码类型采用UTF-8,所有网站资源都存放在/var/www/html目录下并将Apache的配置文件根目录设置为/etc/httpd目录。
方案:
vim /etc/httpd/conf/httpd.conf
设置Apache 的根目录为/etc/httpd
设置httpd 监听端口80
设置管理员E-mail地址为 cat@xuegod.cn
设置WEB 服务器的主机名和监听端口为192.168.0.63:80
设置Apache 文档目录为/var/www/html
设置主页文件为 index.html
改配置文件之前,记得先备份一份,以便恢复。
修改配置文件相关参数:
[root@xuegod63 chroot]# vim /etc/httpd/conf/httpd.conf #以下参数需要我们掌握
ServerRoot "/etc/httpd" #apache配置文件的根目录
Timeout 60 #超时时间
Listen 80 监听的端口
ServerAdmin cat@xuegod.cn #设置管理员,e-mail 地址
ServerName 192.168.0.63:80 #服务器主机名
DocumentRoot "/var/www/html" #网站页面根目录
Options Indexes FollowSymLinks #当一个目录没有默认首页时,允许显示此目录列表
DirectoryIndex index.html index.php #指定默认首页
编码:
AddDefaultCharset UTF-8 # 设置服务器的默认编码为: UTF-8
取消apache默认欢迎页:
[root@xuegod63 ~]# vim /etc/httpd/conf.d/welcome.conf
#
# This configuration file enables the default "Welcome"
# page if there is no default index page present for
# the root URL. To disable the Welcome page, comment
# out all the lines below.
#
#<LocationMatch "^/+$"> #把红色内容注释
# Options -Indexes
# ErrorDocument 403 /error/noindex.html
#</LocationMatch>
重启:
[root@xuegod63 ~]# service httpd restart
创建首页:
# echo 'welcome to www.xuegod.cn!' > /var/www/html/index.html
例2:使用yum搭建LAMP环境
yum install httpd mysql mysql-server php php-mysql –y
service mysqld start
chkconfig mysqld on
安装完成之后首先要测试一下Mysql,在终端输入mysql如果出现mysql的提示符号那么代表Mysql安装成功
测试apache是否支持php
cd /var/www/html/
[root@xuegod63 html]# vim index.php
<?php
phpinfo();
?>
配置apache虚拟主机,实现在一台服务器上运行多个网站
apache虚拟主机实现有三种方法:
1、通过不同的IP地址
2、通过不同的域名
3、通过不同的端口号
配置文件可以修改为如下:
修改httpd.conf
#vim httpd.conf 在文件的最后,添加以下内容
<VirtualHost 192.168.0.63:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.0.56:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/bbs/
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>