web 服务概述
Web 服务器也称为 WWW(World Wide Web,万维网)服务器,主要功能是提供网上信息浏览服务。
LAMP = Linux Apache Mysql PHP 中的 Apache ( HTTPD ).
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的 LAMP 已经与 J2EE和 .NET 商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个 IT 界的关注,从网站的流量上来说, 50%以上的访问量 是 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 公司开发,目前属于Orale旗下公司,他也是最流行的关系型数据库管理系统,特别是在Web y应用方面。
关系型数据库:它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。
官方网站: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 服务器安装好之后,升级切记注意,不要盲目升级!因为它会废弃很多低效的语法!
LAMP 工作原理
Web 服务器和工作模式和端口
- 工作模式:B/S模式
- 工作端口是:80/http 正常端口 443/https SSL端口
安装服务端:httpd
yum -y install httpd
或者
yum -y install httpd-devel
httpd-2.4.6-67.el7.centos.x86_64.rpm:Apache 服务的主程序包,服务器端必须安装该软件包
httpd-devel-2.4.6-67.el7.centos.x86_64.rpm:Apache 开发程序包
httpd-manual-2.4.6-67.el7.centos.noarch.rpm:Apache手册文档,包含HTML 格式的Apache 计划的Apache User's Guide 说明指南
安装字符界面下浏览器客户端:elinks
[root@python ~]# yum -y install elinks
浏览器可以看到:
[root@python ~]# elinks 192.168.1.128
Apache 主配置文件
[root@python conf]# ll /etc/httpd/conf/httpd.conf
主配置文件介绍:
vim /etc/httpd/conf/httpd.conf
ServerName 192.168.1.235:80 #服务器主机名
PidFile run/httpd.pid #运行进程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 #运行以哪个身份运行
Group 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 #支持的语言,默认编码
#配置文件的最后是虚拟主机的字段,其中你大部分字段做个了解即可,用到的时候去查 即可
yum 的方式搭建 LAMP 环境
LAMP=Linux(存在)+Apache(HTTPD 已安装)+Mysql+PHP
#centos6
[root@xuegod67 ~]# yum -y install httpd mysql mysql-server php php-mysql
#centos7
[root@xuegod67~]#yum -y install httpd mariadb mariadb-server php php-mysql
测试数据库
[root@python ~]# systemctl start mysqld
[root@python ~]# systemctl enable mysqld
[root@python ~]# mysql -p1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| book |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.10 sec)
测试 apache 是否支持 php
[root@python ~]# yum -y install php*
[root@python html]# cat index.php
<?php
phpinfo();
?>
类似于 php 探针
扩展:探针;一个php 编写的文件,可以实时查看服务器硬盘资源、内存使用,网卡流量,系统负载,服务器时间等信息,定时刷新一次,以及包括服务器IP地址,Web服务器环境监测,php等信息。