HTTP服务基础及安全配置——HTTP基础、LAMP部署
HTTP基础
WEB概念:
WEB是一种交互式图形界面的Internet服务,具有强大的信息连接功能,通过超文本链接( HyperText ) 的方式,将信息通过 Internet 传递到全球每个角落。 一般情况下,终端用户通过浏览器输入比较完整的URL即可以完成访问。
URL概念:
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
基本URL包含:模式(或称协议)、服务器名称(或IP地址)、路径和文件名。如“协议://授权/路径?查询”
完整的、带有授权部分的普通统一资源标志符语法如下:
协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
HTTP协议:
HTTP(HyperText Transfer Protocol),是目前WWW传递数据的主流协议!网站上的网页,则需要符合HyperText Markup Language(HTML)的语法。
HTTP服务原理:当我们在网址栏输入网址之后:
1)Client经过DNS解析得到WWW主机的IP,会发出一个数据包,以http协议联接WWW主机,通知WWW主机要以http的方法来取得数据。
2)WWW主机收到数据包后,根据Client的要求,提供相关的讯息来响应,大部分情况下用http的协议传送用HTML 语法的网页数据到Client端的浏览器;
3)最后Client端的浏览器将 HTML的语法解析后,显示网页内容。
安装httpd服务器——LAMP环境配置
优点:
- 具有较大的自由度,功能可定制
- 可及时获得最新的软件版本
- 普遍适用于大多数Linux版本,便于移植使用获得Apache服务器的源码包:http://httpd.apache.org/download.cgi
1.编译安装Apache
卸载默认的相关软件包
解压源码包
配置命令如下:
#cd /usr/src
#cd `ls -d */ | grep httpd`
#./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-chareset-lite --enable-cgi
配置选项含义如下:
- --prefix:指定将httpd服务程序安装到哪个目录,如/usr/local/httpd。
- --enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
- --enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
- --enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。
- --enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。
编译及安装
#make && make install
优化Apache命令的执行路径
生成Apache的启动脚本
修改Apache启动脚本,使系统能识别Apache服务:在第2行处,插入2行
添加Apache服务到系统,使其开机后自动运行
修改Apache配置文件,添加Apache服务器名称为:www.topsec.com(举例)
#vim /usr/local/httpd/conf/httpd.conf
启动Apache服务、查看服务状态
测试
2.编译安装MySQL数据库
卸载Linux系统自带的mysql软件包
安装支持包
#yum -y install ncurses-devel
安装cmake工具
执行后结果
#gmake && gmake install
创建mysql用户
解压mysql源码包
配置mysql
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
选项含义如下
- -DCMAKE_INSTALL_PREFIX= 指定mysql的安装路径
- -DSYSCONFDIR= 指定mysql配置文件的所在目录
- -DDEFAULT_CHARSET 指定默认的字符集
- -DDEFAULT_COLLATION= 指定字符集的默认排序
- -DWITH_EXTRA_CHARSETS= 支持扩展字符集
编译及安装mysql
#make && make install
修改mysql安装目录的所有者权限
删除默认的mysql配置文件,拷贝生成新的配置文件
初始化mysql数据库
#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
修改环境变量PATH的值,将mysql命令追加到默认搜索路径中
.重新加载环境变量
优化mysql执行路径
生成mysql启动脚本,并赋予执行权
将mysql服务添加到开机自启动中
启动mysql服务,并查看运行端口
测试
3.编译安装PHP
卸载默认的php相关软件包
安装支持包:
#yum -y install zlib-devel
#yum -y install libxml2-devel
安装扩展工具库(libmcrypt、mhash、mcrypt)
#./configure
make && make install
优化链接库
./configure
make && make install
定义变量LD_LIBRARY_PATH,并提升为全局变量
./configure
make && make install
安装php
配置
选项含义如下:
- --prefix:指定将php程序安装到哪个目录,如/usr/local/php5。
- --with-mcrypt:加载数据加密等扩展工具支持。
- --with-apxs2:设置Apache HTTP Server提供的apxs模块支持程序的文件位置。
- --with-mysql:设置MySQL数据库服务程序的安装位置。
- --with-config-file-path:设置PHP的配置文件php.ini将要存放的位置。
- --enable-mbstring:启用多字节字符串功能,以便支持中文等代码。
编译:make
安装:make install
拷贝生成php配置文件php.ini
优化php的执行命令
修改php.ini文件
启用默认字符集“default_charset = "iso-8859-1”,并修改默认字符集为:utf-8,如下所示:
开启short_open_tag功能,修改其值为:On
解压ZendGuardLoader文件
在php.ini文件中增加Zend功能(PHP加速)
vim /usr/local/php5/php.ini
修改Apache配置文件,使其支持php动态网站功能
在httpd.conf文件的54行插入:
修改DirectoryIndex行,并添加index.php
vim /usr/local/httpd/conf/httpd.conf
重新启动Apache服务
建立PHP功能测试网页test1.php
vim /usr/local/httpd/htdocs/test1.php
建立PHP连接MySQL的测试网页test2.php
修改mysql管理员用户root的密码为:123456
建立test2.php页面文件
vim /usr/local/httpd/htdocs/test2.php
测试问题
4.部署PhpMySQL站点包
解压phpMyAdmin网页文件
建立配置文件config.inc.php
访问phpMyAdmin站点
1)打开火狐浏览器在地址栏中输入:http://站点服务器IP/bbs/install/index.php
2)在登录页面中输入:mysql管理员用户:root;密码:123456
3)在图形界面下,实现数据库的基本操作(增、删、查、改)
部署Discuz论坛BBS站点包
创建Discuz论坛BBS站点数据库bbsdb
以mysql管理员root身份登录mysql,并创建数据库bbsdb
创建runbbs数据库用户有,并授权其对bbsdb库拥有所有权限
解压Discuz站点包
unzip /root/lamp/web/Discuz_7.2_FULL_SC_UTF8.zip -d DiscuzPkg
修改相关站点目录的所有者为daemon
请注意:
1)论坛站点部署成功后,请打开火狐浏览器
在地址栏中输入:http://站点服务器IP/bbs/install/index.php进行论坛安装
2)安装界面中,数据库用户名为:runbbs;数据库为:bbsdb;数据库类型为:mysql
3)安装界面中,管理员用户名、密码、邮箱可任意指定。
例如:管理员用户名:admin,密码:123456,邮箱:[email protected]
4)测试bbs站点功能正常,请将/usr/local/httpd/htdocs/bbs下的install移除或修改install目录权限为:600,以防止他人再次访问install目录,进行二次安装"