1、何为httpdphp
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会创建一个处理请求的子进程或线程的池。html
Apache是世界使用排名第一的Web服务器软件。它能够运行在几乎全部普遍使用的计算机平台上,因为其跨平台和安全性被普遍使用,是最流行的Web服务器端软件之一。它快速、可靠而且可经过简单的API扩充,将Perl/Python等解释器编译到服务器中。mysql
2、httpd-2.4较httpd-2.2sql
新特性:数据库
(1) MPM支持运行DSO机制;以模块形式按需加载;apache
(2) 支持event MPM;vim
(3) 支持异步读写;后端
(4) 支持每模块及每一个目录分别使用各自的日志级别;浏览器
(5) 每请求配置;<If>安全
(6) 加强版的表达式分析器;
(7) 支持毫秒级的keepalive timeout;
(8) 基于FQDN的虚拟主机再也不须要NameVirtualHost指令;
(9) 支持用户自定义变量
(10)再也不支持使用Order, Deny, Allow来作基于IP的访问控制机制
新增的模块:
(1) mod_proxy_fcgi: 支持用fastcgi的方式链接后端的php
(2) mode_ratelimit: 速率限定,限制用户访问时传输的速率
(3) mod_request: 对用户请求作更强的过滤功能
(4) mod_remoteip: 对用户访问的IP地址有更强的控制能力
apache portable runtime(Apache可移植运行库):
(1) httpd-2.4需求apr-1.4以上的版本
(2) httpd-2.4需求apr-util-1.4以上的版本
3、httpd-2.4的配置文件
主配置文件:
/etc/httpd/conf/httpd.conf
服务脚本:
/usr/lib/systemd/system/httpd.service
模块配置文件:
/etc/httpd/conf.modules.d/*.conf
辅助配置文件:
/etc/httpd/conf.d/*.conf
日志文件目录:
/var/log/httpd
access_log: 访问日志
error_log:错误日志
4、httpd-2.4的经常使用配置
①、切换使用MPM
vim /etc/httpd/conf.modules.d/00-mpm.conf LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #LoadModule mpm_worker_module modules/mod_mpm_worker.so #LoadModule mpm_event_module modules/mod_mpm_event.so #httpd2.4把对应的功能的配置文件模块化管理。这样既简洁又方便。须要使用那个MPM直接开启对应的便可
②、基于IP的访问控制法则(再也不支持使用Order, Deny, Allow来作基于IP的访问控制机制)
容许全部主机访问:Require all granted
拒绝全部主机访问:Require all denied
<Directory /> AllowOverride none Require all denied # Require all granted </Directory>
控制特定IP访问:
Require ip IPADDR:受权指定来源地址的主机访问
Require not ip IPADDR:拒绝指定来源地址的主机访问
IPADDR:(1)IP: 192.168.0.113,(2) Network: 172.16.0.0/16
<Directory /> <RequireAll> Require all granted Require not ip 192.168.0.113 Require not ip 192.168.1.0/24 </RequireAll> </Directory> #这个须要特别注意,在控制特定的IP或主机时候。若是定义了Require not ip/host的时候须要用<RequireAll>Require not ip/host</RequireAll>标签,否则会报错。
控制特定主机(HOSTNAME)访问
Require host HOSTNAME
Require not host HOSTNAME
HOSTNAME:(1)FQDN: 特定主机,(2)DOMAIN:指定域内的全部主机
<Directory /> <RequireAll> Require all granted Require not host wlw.com Require not host www.wlwtest.com </RequireAll> </Directory>
④、虚拟主机
基于IP、Port和FQDN都支持;基于FQDN的再也不须要NameVirtualHost指令;
为了之后的扩展和模块化管理,咱们能够在/etc/httpd/conf.d/建立一个VirtualHost目录,固然,目录名你能够本身起,我这里建立一个VirtualHost之后再里面建立一个又一个单独的虚拟主机,命令为host.conf。而后在/etc/httpd/conf/httpd.conf中添加IncludeOptional conf.d/VirtualHost/*.conf。而后重启服务器。这样的话就能够每一个虚拟主机建立一个配置文件,之后须要删除某个虚拟主机直接更名或删除便可。这个在之后的自动化运维有很好的做用。
⑤、启用模块:
LoadModule ssl_module modules/mod_ssl.so #LoadModule asis_module modules/mod_asis.so #须要开启某个模块只须要把注释的#号去掉而后从新加载配置文件便可。这里咱们能够看到,模块路径使用的是相对路径, #相对于ServerRoot(/etc/httpd)指向的路径而言。
这里只列出有别与httpd-2.2的一些配置项目,其余的配置基本与httpd-2.2同样,若是须要跟多的详细配置,能够查看另外一篇博客:Linux服务管理之httpd-2.2经常使用配置文件
接下来咱们开始安装phpMyAdmin、wordpress、Discuz,由于上面的程序包都是基于lamp环境运行的。因此请自行搭建好lamp环境。LAMP组合的编译安装(httpd 2.4+mysql 5.5+php 5.4)。并下载相关的源代码,下面是个源代码官网连接。
phpMyAdmin: http://www.phpmyadmin.net/
wordpress : https://cn.wordpress.org/
Discuz : http://www.discuz.net/forum-10-1.html
5、phpMyAdmin的安装
①、phpMyAdmin简介
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口能够成为一个简易方式输入繁杂SQL语法的较佳途径,尤为要处理大量资料的汇入及汇出更为方便。其中一个更大的优点在于因为phpMyAdmin跟其余PHP程式同样在网页服务器上执行,可是您能够在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的创建、修改、删除数据库及资料表。也可借由phpMyAdmin创建经常使用的php语法,方便编写网页时所须要的sql语法正确性。
②、phpMyAdmin的搭建
(1) 由于使用虚拟主机,因此注释主配置文件中的#DocumentRoot
#DocumentRoot "/var/www/html"
(2) 为了模块化管理,我这里使用独立的目录来存放虚拟主机的配置
vim /etc/httpd/conf/httpd.conf IncludeOptional conf.d/VirtualHost/*.conf #在主配置文件中添加上面语句。而后在/etc/httpd/conf.d/建立VirtualHost来存放个人虚拟主机文件
(3) 建立并配置虚拟主机,并把代码copy到对应的虚拟主机目录中
vim /etc/httpd/conf.d/VirtualHost/wlw.com.conf <VirtualHost 192.168.0.108:80> ServerName pma.wlw.com DocumentRoot "/var/www/html/phpMyAdmin" DirectoryIndex index.php <Directory "/var/www/html/phpMyAdmin"> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost>
(4) 修改phpMyAdmin的配置文件和初始化配置
[root@localhost ~]# cd /var/www/html/phpMyAdmin/ [root@localhost phpMyAdmin]# cp config.sample.inc.php config.inc.php #默认状况下配置文件为重命名的,因此咱们把名字改会phpmyadmin识别的配置文件config.inc.php [root@localhost phpMyAdmin]# tr -dc A-Za-z0-9_</dev/urandom | head -c 30 | xargs BrsXH6_YnXbm1pDazDYOsHzQv2WnD1 #由于在配置文件中等一下要用到随机数,咱们使用此命令先生成一个随机数 [root@localhost phpMyAdmin]# vim config.inc.php $cfg['blowfish_secret'] = 'BrsXH6_YnXbm1pDazDYOsHzQv2WnD1'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ #将随机数填入便可,其余暂时保持默认 [root@localhost phpMyAdmin]# mysql MariaDB [(none)]> SET PASSWORD FOR 'root'@'127.0.0.1'=PASSWORD('wlw'); MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('wlw'); FLUSH PRIVILEGES; #默认安装完的mysql,默认是没有密码的,若是建议为配置数据库密码
(5) 万事俱备只欠东风,如今咱们在浏览器中输入http://pma.wlw.com/测试
打开后发现登陆框没有了。千万不要有奔溃的心,其实IT不少东西都是这样,你照着别人作,别人成功了,你失败了。并且仍是各类缘由的失败。幸福的家庭老是类似的,不幸的家庭各有各的不幸。其实这些问题大多数在谷歌都能找到解决方法。因此。不要谷歌走起。
[root@localhost phpMyAdmin]# vim libraries/plugins/auth/AuthenticationCookie.class.php <!-- Login form --> <form method="post" action="index.php" name="login_form"' . $autocomplete . ' class="disableAjax login hide js-show"> #打开此配置文件后把hide去掉便可。
输入帐号密码,登陆成功,为了安全,建议root管理员不要容许远程登陆,由于管理员权限之大,是很危险的。这里咱们还能够基于用户的访问控制的basic认证添加多一层认证。Linux服务管理之httpd-2.2经常使用配置文件 ,中有详细配置,能够参考,这里不作详细说明
双重认证后咱们进入了phpMyAdmin,虽然有双重认证,可是重要事情说三遍,root管理员不建议开启远程。