@[toc]
1.HTML
1.了解HTML
HTML叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。 HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为”.html”或“.htm”即可。2.HTML 基本标签
(1)HTML 语法规则HTML标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标记符中间的内容被标签描述。前标记符由“<XXX>”表示,结尾标记符多了一个“/”,由“</XXX>”表示。
(2)HTML 文件结构HTML文件最外层由<html></html>表示,说明该文件是用HTML语言描述的。在它里面是并列的头标签(<head>)和内容标签(<body>)
●HTML 文件结构如下:
<html><head>网页的内容描述信息<head><body>网页显示的内容</body></html>●头标签中常用标签:
标签 描述 <title> 定义了文档的标题 <base> 定义了页面链接标签的默认链接地址 <link> 定义了一个文档和外部资源之间的关系 <meta> 定义了 HTML 文档中的元数据 <script> 定义了客户端的脚本文件 <style> 定义了 HTML 文档的样式文件●内容标签中常用标签
标签 描述 <table> 定义一个表格 <tr> 定义了表格中的一行 <td> 定义了表格中某一行的一列 <img> 定义了一个图像 <a> 定义了一个超链接 <p> 定义了一行 <p> 定义了换行 <p> 定义了字体3.了解静态网页与动态网页
1.静态网页
在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,静态网页是标准的HTML文件,它的文件扩展名是.htm、.html。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。
2.动态网页
所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。目前常用的动态网页编程语言
●PHP即 Hypertext Preprocessor(超文本预处理器),它是当今 Internet 上最为火热的脚本语言,其语法借鉴了 C、Java、PERL 等语言,但只需要很少的编程知识你就能使用 PHP 建立一个真正交互的 Web 站点。
●JSP即 Java Server Pages(Java 服务器页面),它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技术,是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术。
●Python 是一种面向对象、跨平台的动态类计算机程序设计语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的大型项目开发。
●Ruby是一种简单快捷的面向对象(面向对象程序设计)脚本语言,在 20 世纪 90年代由日本人松本行弘(Yukihiro Matsumoto) 开发,遵守GPL 协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。
2.HTTP
1.HTTP 协议概述
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。
2.HTTP 方法
HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST。
HTTP方法 描述 GET 请求获取 Request-URI 所标识的资源 PUT 请求服务器存储一个资源,并用 Request-URI 作为其标识 DELETE 请求服务器删除 Request-URI 所标识的资源 POST 在 Request-URI 所标识的资源后附加新的数据 HEAD 请求获取由 Request-URI所标识的资源的响应消息报头 GET 方法和POST方法的比较 <p> 定义了换行 <p> 定义了字体==GET 方法和POST方法的比较==
3.HTTP状态码
HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。==状态码范围==
状态码首位 已定义范围 分类 1xx 100-101 信息提示 2xx 200-206 成功 3xx 300-305 重定向 4xx 400-415 客户端错误 5xx 500-505 服务器错误==HTTP 常见状态码==
状态码 功能描述 200 一切正常 301 永久重定向 302 临时重定向 401 用户名或密码错误 403 禁止访问(客户端IP地址被拒绝) 404 文件不存在 414 请求URI头部过长 500 服务器内部错误 502 无效网关 503 当前服务不可用 504 网关请求超时4.HTTP请求流程分析
(1)请求报文请求行:请求行由请求方法、URL 以及协议版本三部分组成。
请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用 冒号分隔。
空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要, 必不可少。
请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST方法提交的参数在请求体中。
==常见的请求头:==
请求头 描述 Host 接受请求的服务器地址,可以是 IP:端口号,也可以是域名 User-Agent 发送请求的应用程序名称 Connection 指定与连接相关的属性,如 Connection:Keep-Alive Accept-Charset 通知服务端可以发送的编码格式 Accept-Encoding 通知服务端可以发送的数据压缩格式 Accept-Language 通知服务端可以发送的语言(2)响应报文状态行:状态行由协议版本,状态码,状态码描述三部分组成。
响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。
空行:响应头部的最后会有一个空行,表示响应头部结束。
响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。
常见响应头:
响应头 描述 Server 服务器应用程序软件的名称和版本 Content-Type 响应正文的类型(是图片还是二进制字符串) Content-Length 响应正文长度 Content-Charset 响应正文使用的编码 Content-Encoding 响应正文使用的数据压缩格式 Content-Language 响应正文使用的语言3.部署LAMP平台
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。
各组件的主要作用如下
(平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。
(前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。
(后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。
(中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。
在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般放到最后安装,负责沟通 Web 服务器和数据库系统以协同工作。
4、Apache服务
1.关闭防火墙,将安装Apache所需软件包传到/opt目录下
```apr-1.6.2.tar.gzapr-util-1.6.0.tar.gzhttpd-2.4.29.tar.gzsystemctl stop firewalldsetenforce 0systemctl disable firewalld
**apr组件包用于支持Apache上层应用跨平台,提供底层接口库,能有效的降低并发连接数、降低进程和减少访问堵塞。** ![8.png](https://s2.51cto.com/images/20220105/1641375542660622.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 2.安装环境依赖包 ```yum -y install \ gcc \ #C语言的编译器 gcc-c++ \ #C++的编译器 make \ #源代码编译器(源代码转换成二进制文件) pcre \ #pcre是一个Perl函数库,包括perl 兼容的正则表达式库 pcre-devel \ #perl的接口开发包 expat-devel \ #用于支持网站解析HTML、XML文件 perl #perl语言编译器3.配置软件模块
```tar zxvf apr-1.6.2.tar.gztar zxvf apr-util-1.6.0.tar.gztar jxvf httpd-2.4.29.tar.bz2
将apr的2个文件移动到httpd-2.4.29/srclib目录中mv apr-1.6.2 httpd-2.4.29/srclib/aprmv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
cd /opt/httpd-2.4.29/./configure \--prefix=/usr/local/httpd \ #指定将 httpd 服务程序的安装路径--enable-so \ #启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力--enable-rewrite \ #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护--enable-charset-lite \ #启动字符集支持,以便支持使用各种字符集编码的页面--enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
**解压目录后要更改名字** ![10.png](https://s2.51cto.com/images/20220105/1641377999419164.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) **==将apr的2个文件移动到httpd-2.4.29/srclib目录中==** ![8.png](https://s2.51cto.com/images/20220105/1641378297284142.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![9.png](https://s2.51cto.com/images/20220105/1641378524335463.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![10.png](https://s2.51cto.com/images/20220105/1641378763324680.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) **==4.编译及安装==** ![8.png](https://s2.51cto.com/images/20220105/1641378934168419.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 5.优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别 ![8.png](https://s2.51cto.com/images/20220105/1641378982301794.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![10.png](https://s2.51cto.com/images/20220105/1641379232296427.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 6.添加httpd系统服务 **方法一** ```cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #用于service服务管理 chmod +x /etc/init.d/httpd vi /etc/init.d/httpd #!/bin/bash #在第一行前插入新行,添加此三行内容 # chkconfig: 35 85 21 #35级别自动运行 第85个启动 第21个关闭 # description: Apache is a World Wide Web server chkconfig --add httpd #将httpd服务加入到service管理器 systemctl start httpd.service 或 service httpd start方法二```vim /lib/systemd/system/httpd.service[Unit]Description=The Apache HTTP Server #描述After=network.target #描述服务类别[Service]Type=forking #后台运行方式PIDFile=/usr/local/httpd/logs/httpd.pid #PID文件位置ExecStart=/usr/local/bin/apachectl $OPTIONS #启动服务ExecReload=/bin/kill -HUP $MAINPID #根据PID重载配置[Install]WantedBy=multi-user.target
systemctl start httpd.servicesystemctl enable httpd.service
![8.png](https://s2.51cto.com/images/20220105/1641380137251281.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![8.png](https://s2.51cto.com/images/20220105/1641380250329355.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### **7.修改httpd 服务配置文件**vim /etc/httpd.conf--52行--修改Listen 192.198.184.10:80--197行--取消注释,修改ServerName www.lic.com:80
--221行--默认首页存放路径DocumentRoot "/usr/local/httpd/htdocs"--255行--默认首页文件名设置DirectoryIndex index.html
httpd -t 或 apachectl -t #检查配置文件的配置项是否有误cat /usr/local/httpd/htdocs/index.htmlsystemctl restart httpd.service
![9.png](https://s2.51cto.com/images/20220105/1641388763113887.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![8.png](https://s2.51cto.com/images/20220105/1641388935543590.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) **==取消注释 修改域名==** ![9.png](https://s2.51cto.com/images/20220105/1641388936942680.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![10.png](https://s2.51cto.com/images/20220105/1641389144111035.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 8.浏览器访问验证echo "192.168.184.10 www.lic.com" >> /etc/hostshttp://192.168.184.10http://www.lic.com
![8.png](https://s2.51cto.com/images/20220105/1641389383395577.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![9.png](https://s2.51cto.com/images/20220105/1641389426378222.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ## 5、编译安装mysqld 服务 ### 1.将安装mysql 所需软件包传到/opt目录下 ![8.png](https://s2.51cto.com/images/20220105/1641389556195940.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)mysql-5.7.17.tar.gzboost_1_59_0.tar.gz #支持c++的运行库
### 2.安装环境依赖包yum -y install \gcc \gcc-c++ \ncurses \ #字符终端下图形互动功能的动态库ncurses-devel \ #ncurses开发包bison \ #语法分析器cmake #mysql需要用cmake编译安装
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
![8.png](https://s2.51cto.com/images/20220105/1641389698970304.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![9.png](https://s2.51cto.com/images/20220105/1641389701826926.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 3.配置软件模块tar zxvf mysql-5.7.17.tar.gztar zxvf boost_1_59_0.tar.gz
cd /optmv boost_1_59_0 /usr/local/boost #重命名
cd /opt/mysql-5.7.17/cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \-DWITH_BOOST=/usr/local/boost \-DWITH_SYSTEMD=1
![10.png](https://s2.51cto.com/images/20220105/1641389887596936.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![8.png](https://s2.51cto.com/images/20220105/1641389893162990.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) **==存储引擎选项:==** **MYISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。 静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1 可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)** **==注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧==** ### 4.编译及安装make -j 2 && make install
![10.png](https://s2.51cto.com/images/20220105/1641392978615655.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 5.创建mysql用户useradd -M -s /sbin/nologin mysql
### 6.修改mysql 配置文件vim /etc/my.cnf #删除原配置项,再重新添加下面内容[client] #客户端设置port = 3306socket=/usr/local/mysql/mysql.sock
[mysqld] #服务全局设置user = mysql #设置管理用户basedir=/usr/local/mysql #指定数据库的安装目录datadir=/usr/local/mysql/data #指定数据库文件的存储路径port = 3306 #指定端口character-set-server=utf8 #设置服务器字符集编码格式为utf8pid-file = /usr/local/mysql/mysqld.pid #指定pid 进程文件路径socket=/usr/local/mysql/mysql.sock #指定数据库连接文件bind-address = 0.0.0.0 #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开skip-name-resolve #禁用DNS解析max_connections=2048 #设置mysql的最大连接数default-storage-engine=INNODB #指定默认存储引擎max_allowed_packet=16M #设置数据库接收的数据包大小的最大值server-id = 1 #指定服务ID号sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
**==sql_mode常用值如下:==** **NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常 STRICT_TRANS_TABLES 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_AUTO_CREATE_USER 禁止GRANT创建密码为空的用户 NO_AUTO_VALUE_ON_ZERO mysql中的自增长列可以从0开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错 NO_ZERO_IN_DATE 不允许日期和月份为零 NO_ZERO_DATE mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告 ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MySQL返回NULL PIPES_AS_CONCAT 将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似 ANSI_QUOTES 启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符** ![8.png](https://s2.51cto.com/images/20220105/1641393565392340.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 7.更改mysql安装目录和配置文件的属主属组chown -R mysql:mysql /usr/local/mysqlchown mysql:mysql /etc/my.cnf
### 8.设置路径环境变量echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile
![8.png](https://s2.51cto.com/images/20220105/1641393903299393.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 9.初始化数据库cd /usr/local/mysql/bin/./mysqld \--initialize-insecure \ #生成初始化密码为空--user=mysql \ #指定管理用户--basedir=/usr/local/mysql \ #指定数据库的安装目录--datadir=/usr/local/mysql/data #指定数据库文件的存储路径
./mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/data
![9.png](https://s2.51cto.com/images/20220105/1641393992613547.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 10.添加mysqld系统服务cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #用于systemctl服务管理systemctl daemon-reload #刷新识别 systemctl start mysqld.service #开启服务systemctl enable mysqld #开机自启动netstat -anpt | grep 3306 #查看端口
![9.png](https://s2.51cto.com/images/20220105/1641394293493906.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 11.修改mysql 的登录密码mysqladmin -u root -p password "abc123" #给root账号设置密码为abc123,提示输入的是原始密码(为空)
### 12.授权远程登录mysql -u root -pgrant all privileges on . to 'root'@'%' identified by 'abc123';#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限
show databases; #查看当前已有的数据库
![10.png](https://s2.51cto.com/images/20220105/1641394697324561.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ## 6、编译安装PHP 解析环境 ### 1.将安装PHP 所需软件包传到/opt目录下 **==php-7.1.10.tar.bz2==** ![9.png](https://s2.51cto.com/images/20220105/1641394830103650.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 2.安装GD库和GD库关联程序,用来处理和生成图片yum -y install \gd \libjpeg libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel
![8.png](https://s2.51cto.com/images/20220105/1641394921568507.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 3.配置软件模块cd /opttar jxvf php-7.1.10.tar.bz2cd /opt/php-7.1.10/
![9.png](https://s2.51cto.com/images/20220105/1641395031959943.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)./configure \--prefix=/usr/local/php7 \ #指定将 PHP 程序的安装路径--with-apxs2=/usr/local/httpd/bin/apxs \ #指定Apache httpd服务提供的apxs 模块支持程序的文件位置--with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql 数据库连接文件的存储路径--with-config-file-path=/usr/local/php7 #设置 PHP 的配置文件 php.ini 将要存放的位置--with-mysqli \ #添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定--with-zlib \ #支持zlib功能,提供数据压缩--with-curl \ #开启curl扩展功能,实现HTTP的Get下载和Post请求的方法--with-gd \ #激活gd 库的支持--with-jpeg-dir \ #激活jpeg 的支持--with-png-dir \ #激活png 的支持--with-freetype-dir \--with-openssl \--enable-mbstring \ #启用多字节字符串功能,以便支持中文等代码--enable-xml \ #开启扩展性标记语言模块--enable-session \ #会话--enable-ftp \ #文本传输协议--enable-pdo \ #函数库--enable-tokenizer \ #令牌解释器--enable-zip #ZIP压缩格式
./configure \--prefix=/usr/local/php7 \--with-apxs2=/usr/local/httpd/bin/apxs \--with-mysql-sock=/usr/local/mysql/mysql.sock \--with-config-file-path=/usr/local/php7 \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zip
![10.png](https://s2.51cto.com/images/20220105/1641395161373699.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 4.编译及安装 **==make && make install==** ### 5.复制模版文件作为PHP 的主配置文件,并进行修改cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini #在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件
vim /usr/local/php7/php.ini--1170行--修改mysqli.default_socket = /usr/local/mysql/mysql.sock--939行--取消注释,修改date.timezone = Asia/Shanghai
![8.png](https://s2.51cto.com/images/20220105/1641395549351259.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 6.优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别ln -s /usr/local/php7/bin/* /usr/local/bin/php -m #查看PHP 加载了哪些模块
![9.png](https://s2.51cto.com/images/20220105/1641395558873927.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 7.修改httpd服务的配置文件,让apache支持PHPvim /etc/httpd.conf --393行--插入以下内容AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps--256行--修改首页文件名设置DirectoryIndex index.html index.php
---检查支持php7的模块是否存在------LoadModule php7_module modules/libphp7.so
![8.png](https://s2.51cto.com/images/20220105/1641395931192220.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![9.png](https://s2.51cto.com/images/20220105/1641395936135286.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 8.验证PHP测试页rm -rf /usr/local/httpd/htdocs/index.htmlvim /usr/local/httpd/htdocs/index.php<?phpphpinfo();?>
systemctl restart httpd.service
浏览器访问http://192.168.184.10
![10.png](https://s2.51cto.com/images/20220105/1641396072681652.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) **==systemctl restart httpd.service==** 重启httpd服务 ![9.png](https://s2.51cto.com/images/20220105/1641396264455361.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ## 7、LAMP应用 ### 1.创建数据库,并进行授权mysql -u root -p
CREATE DATABASE bbs;#创建一个数据库
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123
flush privileges;#刷新数据库
show databases;
![9.png](https://s2.51cto.com/images/20220105/1641396690215261.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 2.解压论坛压缩包unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/discd /opt/dis/dir_SC_UTF8/cp -r upload/ /usr/local/httpd/htdocs/bbs #上传站点更新包
![10.png](https://s2.51cto.com/images/20220105/1641396836667513.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 3.更改论坛目录的属主ps aux #查看发现论坛进程的用户名是daemoncd /usr/local/httpd/htdocs/bbschown -R daemon ./configchown -R daemon ./datachown -R daemon ./uc_clientchown -R daemon ./uc_server/data
![8.png](https://s2.51cto.com/images/20220105/1641396989320368.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![9.png](https://s2.51cto.com/images/20220105/1641396993910111.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 4.浏览器访问验证 **==论坛页面访问 http://192.168.19.18/bbs==** ![8.png](https://s2.51cto.com/images/20220105/1641397455639667.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号 数据库名字:bbs 数据库用户名:bbsuser 数据库密码:admin123 管理员账号:admin 管理员密码:admin123 论坛后台管理员页面 ![9.png](https://s2.51cto.com/images/20220105/1641397600208586.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![8.png](https://s2.51cto.com/images/20220105/1641397769940399.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![9.png](https://s2.51cto.com/images/20220105/1641397775606588.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)