Linux操作篇之LAMP(一)

一、安装方式(centos7、apache、Mariadb、php、yum方式安装)

1、因为是实验,先将SELinux、防火墙关闭

 2、apache

yum -y install httpd httpd-devel (安装apache服务)

yum install mod_ssl openssl(安装openssl,以实现apache可以转为https传输)

systemctl start httpd(启动apache服务)

systemctl status httpd(查看apache服务状态)

 netstat -anlp | grep httpd(查看apache服务端口状态)

 3、Mariadb

yum  -y  install mariadb mariadb-server mariadb-libs mariadb-devel(安装)

systemctl start mariadb(启动Mariadb服务)

systemctl status mariadb(查看Mariadb服务状态)

netstat -anlp | grep mysql(查看Mariadb服务端口状态)

 

 mysql_secure_installation(因为是刚刚安装的Mariadb,本身自带有一些测试数据,所以需要进行重置一下)

4、安装php、php-mysql(关联php与mysql)以及php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath(php常用扩展)

yum -y install php

yum -y install php-mysql

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath

5、建立php测试网页,并重启apache服务,查看IP地址,登录测试网站

二、安装时所需要的模块及作用

1、Apache

apr、apr-util(为解决大量用户访问而造成的阻塞问题。socket调度)

pcre:用pcre来解决C语言中使用正则表达式的问题

2、Mariadb

 mariadb-libs mariadb-devel(一些数据库的动静态库文件)

3、PHP

php-gd(图片处理)

php-ldap(轻量级目录访问协议)

php-odbc(数据库连接器)

php-pear(PHP扩展和应用程序存储库)

php-curl(lib库。用以支持各种传输协议)

 

三、apache介绍

apache是以进程为基础的,这样比以线程为基础的消耗更多的开支,不太适合多处理器环境。

用户首先会通过自己PC的随机端口,访问apache服务器(如80、443)端口。服务器通过开启的子进程处理用户的访问请求,匹配用户的请求是动态还是静态请求(可以区分是否访问数据库来区别是否是静态访问请求)。

apache有三种工作模式

可以使用httpd -V查看

/etc/httpd/conf.modules.d/00-mpm.conf

1、prefork模式

在apache服务启动时,会先启动一些子进程,每个子进程只有一个线程,同一时间点,一个子进程只能处理一个请求。

优点:不需要担心线程问题。

缺点:不适合处理高并发请求。

2、worker模式

使用多线程和多进程混合模式。每个子进程会创建一些线程,同时包括一个监听(管理)线程。线程会共享父进程的内存空间。

优点:适用于高并发请求

缺点:需要考虑线程安全问题

3、event工作模式

和worker模式很像,加入了keep-alive。一般在TCP连接断开后,守护进程会关闭这个http连接。当设置了keep-alive_timeout时间后,断开TCP连接并不会立马关闭http连接,而是经过一段时间之后再关闭这个http连接,在这个时间段内,可以多次传输数据,减少连接时间。同时也会减少系统内核的调用。

但是,keep-alive_time如果配置不当,造成的损失更大,所以适当的配置keep-alive_time是非常重要的。

 

文件位置

/etc/httpd/conf/httpd.conf(主配置文件)

/var/www/html(网页文件位置)

/var/log/httpd/(日志文件)

 

主配置文件参数

ServerRoot(主目录)

Listen(监听端口,可以填写某一网卡IP)

LoadModule(加载的相关模块)

ServerAdmin(管理员邮箱)

ServerName(服务器名)

ErrorLog(服务器错误日志)

CustomLog(访问记录日志)

IncludeOptional conf.d/*.conf(子配置文件)

DirectoryIndex(默认访问的文件,按照前后顺序访问。不存在则跳过)

DocumentRoot(主目录位置)

Options Indexes FollowSymLinks(定义指定目录的权限,None没有任何额外的权限、All有所有权限)

Options -Indexes(没有权限访问目录结构。“+”可以添加访问目录结构的权限。)

FollowSymLinks(允许软连接到其他目录)

Require all granted(访问控制)

DirectoryIndex index.html(默认加载的页面)

 

四、小实验

1、目录别名、

vi /etc/httpd/conf/httpd.conf

 vi /etc/httpd/conf.d/autoindex.conf

 2、用户认证

需要启用.htaccess文件。

提示信息

加密方式

密码文件(名称可自定义,但路径需要填写绝对路径)

允许密码文件中的用户访问

 建立用户。(第一次建立使用-c选项,之后再建立用户使用-m选项,最后为密码文件,与.htaccess中的一致。)

重启Apache服务,访问测试。

 

3、虚拟主机(适用于一服务器部署多个网站的情况下)

a、基于不同的域名

httpd.conf文件,这里原本是index.html,我使用的是php环境,所以设置的为test.php

会加载conf.d目录下所有.conf结尾的文件。

 新建一VirtualHost.conf文件名的文件

 两个网站的目录位置与所绑定的域名。还可以添加相关网站管理员的邮箱地址;和访问时产生的正常与错误日志存放位置等信息。

 网站目录位置建立测试文件

 

 没有DNS服务器,修改hosts文件,添加域名解析。

 

 重启apache服务,进行测试,显示成功。

 

b、基于不同的端口号

httpd.conf文件

 VirtualHost.conf文件,重启服务即可。

 

 

 c、基于不同的IP地址

 

 

 

 

posted on 2020-10-19 18:44  沫仔  阅读(218)  评论(0编辑  收藏  举报

导航