Linux入门攻坚——27、httpd2.4配置使用、lamp基础

CentOS 7上,httpd已经到了2.4版本,新增了很多新特性:

(1)MPM支持运行DSO机制;以模块形式按需加载
(2)支持event MPM;
(3)支持异步读写;
(4)支持每模块及每个目录分别使用各自的日志级别;
(5)每请求配置:<If>
(6)增强版的表达式分析器;
(7)支持毫秒级的KeepAlive timeout;
(8)基于FQDN的虚拟主机不再需要NameVirtualHost指令;
(9)支持用户自定义变量;

新模块:
(1)mod_proxy_fcgi
(2)mod_ratelimit
(3)mod_remoteip

修改了一些配置机制:
  不再支持使用Order,Deny,Allow来做基于IP的访问控制;

安装httpd-2.4

httpd2.4依赖于apr-1.4+,apr-util-1.4+,[apr-icon],即对版本有要求,要求1.4及以上版本
  apr:apache portable runtime,类似虚拟机,隐藏底层操作系统的差异。

CentOS 6上编译安装步骤
  1.4+版本的apr和apr-util

前提:安装开发环境,安装pcre-devel
(1)apr
  # ./configure --prefix=/usr/localapr
  # make && make install

(2)apr-util
  # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  # make && make install

  # groupadd -r apache
  # useradd -r -g apache apache
  # ./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
  # make && make install

启动服务:apachectl

实操:
1)确保Development tools和Server Platform Development包组安装:

2)安装pcre-devel:

3)编译安装apr:
 # tar -xvf apr-1.7.4.tar.bz2 
 # ./configure --prefix=/usr/local/apr17
 # make && make install

4)编译安装apr-util:
 # tar -xvf 
 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr17
 # make && make install


make && make install时出现错误,大致是缺少xml解析器,安装expat-devel包
yum install expat-devel -y

 重新make && make install

5)编译安装httpd2.4
增加用户和组:
 # groupadd -r apache
 # useradd -r -g apache apache
 # ./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr17 --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
 # make && make install

安装时出现错误:

查找资料后,原因是CENTOS 是 64bit的,在编译配置中并没有指定 --with-included-apr的具体引用路径,导致找不到相应的库文件,而 --with-included-apr 默认是查找/usr/lib下的库文件,正确的引用应该是安装的apr的库文件,在第3步中安装的位置。这类情况在64bit下非常常见。

上面的方法还是不对,再次解决:
需要安装libxml2-devel
yum install -y libxml2-devel
然后删除apr-util重新编译安装,也需要重新编译安装httpd
rm -rf /usr/local/apr-util
cd ~/apr-util-1.6.3 
清缓存:make clean
然后重新配置安装
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr17
编译并安装:make && make install

然后重新安装httpd2.4成功。

6)启动服务
编译安装的服务,没有管理脚本,使用apache自己提供的管理器:
apachectl

注意,启动后测试,总也访问不到网页,需要关闭防火墙:service iptables stop

CentOS 7上安装httpd2.4

CentOS7默认的httpd就是2.4,所以使用yum安装即可
yum install httpd

配置文件多了conf.modules.d目录,用于模块的配置。

配置文件:
  主配置文件:/etc/httpd/conf/httpd.conf
  模块配置文件:/etc/httpd/conf.modules.d/*.conf
  辅助配置文件:/etc/httpd/conf.d/*.conf

mpm:以DSO机制提供,配置文件00-mpm.conf

启动:systemctl start httpd.service

启动出现错误:

原因:修改了00-mpm.conf中的配置,由默认的使用prefork改为使用event,就出错了,使用prefork没有问题。
网上解决方法是在主配置中加上LoadModule php5_module modules/libphp5.so
但是语法检查提示: 

php5不支持线程安全,而worker和event都是运行在线程模式下。所以,如果需要worker和event模式,需要升级php。

CentOS 7上安装httpd2.4

CentOS7默认就是安装httpd2.4,使用yum进行安装:
yum install httpd -y
服务控制:systemctl {start | stop | restart | status | reload } httpd.service

配置:
1)切换使用MPM
  LoadModule mpm_NAME_module modules/mod_mpm_NAME.so
    NAME:prefork、event、worker
2)修改‘Main’ server 的DocumentRoot
3)基于IP的访问控制法则
  允许所有主机访问:Require all granted
  拒绝所有主机访问:Require all deny
    控制特定IP访问:
      Require ip IPADDR:授权指定来源地址的主机访问
      Require not ip IPADDR:拒绝指定来源地址的主机访问
      IPADDR:
        IP:192.168.138.2
        Network/mask:192.168.138.0/255.255.255.0
        Network/length:192.168.138.0/24
        Net:192.168.138
    控制特定主机(HOSTNAME)访问
      Require host HOSTNAME
      Require not host HOSTNAME
      HOSTNAME:
        FQDN:特定主机
        DOMAIN:指定域内的所有主机

  上述控制语句要放在一个容器中,如下拒绝192.168.138.1访问:
    <RequireAll>
        Require all granted
        Require not ip 192.168.138.1
    </RequireAll>

配置文件:一般使用模块化配置,即主配置文件中使用Include或IncludeOptional包含一些配置目录,在目录中按不同功能或用途模块化配置,便于管理。如conf.d目录和conf.modules.d目录。

  4)虚拟主机
    基于IP、Port和FQDN都支持
    基于FQDN的不再需要NameVirtualHost指令;

  5)ssl
    启用模块:LoadModule ssl_module modules/mod_ssl.so

实操:
默认配置,DocumentRoot是/var/www/html,访问控制是所有IP都可访问

修改DocumentRoot “/var/www/html”为“/www/htdocs”,在此目录下新建index.html,测试访问:

只修改DocumentRoot,没有增加<Directory "/www/htdocs">,默认就是拒绝。
修改配置文件:
  <Directory "/www/htdocs">
       Require all granted
  </Directory>
可以访问到。注意,对于CentOS7,不仅要关闭iptables,还要关闭selinux,即setenforce 0
  <RequireAll>
        Require all granted
        Require not ip 192.168.138.1
    </RequireAll>
此时,192.168.138.1就不能访问了,而其他主机依然可以访问。

  6)CentOS 6服务脚本
拷贝httpd2.2的httpd服务脚本,进行一下修改,即/etc/rc.d/init.d/httpd

脚本做好后,执行:
chkconfig --add httpd24
查看启动级别
chkconfig --list
chkconfig httpd24 on
service httpd24 start

LAMP
  L:Linux,A:Apache,M:mariadb、mysql,P:php、perl、python

  LAMMP:memcached

静态资源:静态内容,客户端从服务器获得的资源的表现形式与原文件相同;
动态资源:通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端;

CGI:Common Gateway Interface,通用网关接口
FASTCGI

HTTPD与解析器之间可以通过共享内存或是消息队列等通信,解析器功能可以单独独立出来,然后与httpd之间通过套接字通信。

安装:
yum install php php-mysql mariadb

启动mariadb服务:systemctl start mariadb.service

连接数据库:

http+php三种方式,modules最常用
  modules、  cgi、  fastcgi(fpm)

在DocumentRoot目录下新建index.php文件,内容:
<?php
    phpinfo();
?>

浏览器中访问:

php连接mariadb:

请求流程:
Client --> (http) --> httpd --> (cgi) --> application server (program file) --> (mysql) --> mariadb

搭建wordpress4.5
1、下载 wordpress-4.5.31-zh_CN.tar.gz,解压:tar xf  wordpress-4.5.31-zh_CN.tar.gz
2、拷贝解压后的wordpress目录至/www/htdocs/wordpress45/  :cp -r wordpress/ /www/htdocs/wordpress45/
3、拷贝wp-config-sample.php为wp-config.php,wordpress的配置文件
4、配置数据库:使用mariadb
    create database wp45db;
    grant all on wp45db.* to 'wp45user'@'localhost' identified by '123456';
    grant all on wp45db.* to 'wp45user'@'127.0.0.1' identified by '123456';
    flush privileges;
5、配置wp-config.php
    define('DB_NAME', 'wp45db');
    define('DB_USER', 'wp45user');
    define('DB_PASSWORD', '123456');
    define('DB_HOST', 'localhost');
6、在浏览器中输入地址,进行wordpress45的安装:

    配置站点名称、站点管理用户和密码,点击安装即可
7、

问题:第一次使用的是wordpress4.9版本,输入地址总是弹出phpinfo()信息。

登录页面显示:

无法登录。

安装phpMyAdmin管理mysql,是mariadb的WebGUI

1、下载phpMyAdmin-4.4.15-all-languages.tar.bz2,解压缩,tar xf phpMyAdmin-4.4.15-all-languages.tar.bz2 -C /www/htdocs/
2、解压后形成/www/htdocs/phpMyAdmin-4.4.15-all-languages目录。
3、目录过长,创建链接文件:ln -sv phpMyAdmin-4.4.15-all-languages/ pma44
4、cp config.sample.inc.php config.inc.php ,通过配置模板文件,创建一个配置文件,修改配置文件:

5、访问:提示缺少mbstring,安装

注意,这个程序包需要CentOS-7-x86_64-Everything-光盘。
安装完毕后,重新启动httpd,再次访问

6、修改mariadb用户密码:phpMyAdmin需要密码登录。

登录后:

需要注意的是:在安装wordpress以及phpMyAdmin时,因为CentOS7默认安装的PHP以及mysql(mariadb)版本都较低,所以对应的应用系统也要低版本的,使用高版本会出现很多错误。

php解析器如何与MariaDB交互

解析器无需与MariaDB交互,那些用到数据存储系统的程序才需要与数据存储交互;
存储系统:
  文件系统:文件
  SQL:MariaDB,Oracle,MSSQL,。。。
  NoSQL:redis,mongodb,hbase,。。。
  NewSQL:

PHP简单了解

Zend Engine (PHP的解析器,新开发)—— Zend opcode (类似Java的字节码)
PHP加速器:
  APC(Alternative PHP Cache)、eAccelerator、XCache、Zend Optimizer和Zend Guard Loader、NuSphere PhpExpress

安装加速器xcache:
yum install php-xcache

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
httpd-2.4.46-o111k-x64是一个用于部署和运行Apache HTTP服务器的软件包。 首先,要进行httpd-2.4.46-o111k-x64的配置,需要使用一个文本编辑器打开所安装的httpd.conf文件。该文件位于Apache安装目录下的conf文件夹中。 在httpd.conf文件中,可以设置一些全局的配置选项,包括服务器的监听端口、主机名、日志记录选项等。可以根据自己的需求对这些选项进行相应的修改或配置。 另外,还可以在httpd.conf文件中增加虚拟主机的配置。虚拟主机可以让一个服务器同时提供多个不同的网站或域名。可以根据需要在httpd.conf文件中增加多个虚拟主机的配置,包括指定虚拟主机的域名、文档根目录、日志文件等。 除了httpd.conf文件,还可以使用其他的配置文件来进一步定制和调整httpd-2.4.46-o111k-x64的配置。例如,可以使用.htaccess文件来配置特定目录下的访问控制规则和其他相关选项。 配置完成后,可以使用启动脚本或命令来启动httpd-2.4.46-o111k-x64服务器。启动后,可以通过浏览器访问配置的域名或IP地址,来查看是否成功部署和配置httpd-2.4.46-o111k-x64服务器。 总结来说,httpd-2.4.46-o111k-x64配置主要包括修改httpd.conf文件中的全局配置选项和虚拟主机配置,以及使用其他相关配置文件进行特定定制。配置完成后,可以启动服务器并通过浏览器来访问配置的网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值