Linux|UNIX下LAMP环境的搭建及常见问题[连载9编译Apache]

简介:

六、编译Apache

配置编译选项
请根据服务器架构和实际应用添加相应的模块。
现在对服务器性能密切的MPM模块做一下解释。
下面的内容为Apache 2.2中文文档内容(非官方)
多路处理模块(MPM
workerMPM使用多个子进程,每个子进程中又有多个线程。每个线程处理一个请求。该MPM通常对高流量的服务器是一个不错的选择。因为它比preforkMPM需要更少的内存且更具有伸缩性。
preforkMPM使用多个子进程,但每个子进程并不包含多线程。每个进程只处理一个链接。在许多系统上它的速度和workerMPM一样快,但是需要更多的内存。这种无线程的设计在某些情况下优于workerMPM:它可以应用于不具备线程安全的第三方模块(比如php3/4/5),且在不支持线程调试的平台上易于调试,而且还具有比workerMPM更高的稳定性。
worker还是用prefork一要看服务器的架构,二要应用,要看是是稳定性和兼容性更重要,还是性能特别重要呢。我这里选择了preforkMPM
 
 
默认情况下,APR在每个目标OS/CPU上使用其最有效的特性执行这些操作。比如许多现代CPU的指令集中有一个原子的比较交换 (compare-and-swap, CAS)操作指令。在一些老式平台上,APR默认使用一种缓慢的、基于互斥执行的原子API以保持对没有CAS指令的老式CPU的兼容。如果你只打算在新 式的CPU上运行Apache,你可以在编译时使用 --enable-nonportable-atomics 选项:
./buildconf
./configure --with-mpm=worker --enable-nonportable-atomics=yes
 
 
在添加模块支持前请务必把mode-ssl这个模块加上,并且要添加OpenSSL支持
我们分别通过--enable-ssl --with-ssl=/usr/local/openssl/lib这两个选项来实现。
 
# ./configure --prefix=/usr/local/httpd-2.2.11 --docdir=/data/web --enable-so --enable-cgi --enable-mime-magic --enable-ssl --with-ssl=/usr/local/openssl/lib --with-mpm=prefork --enable-modules=most --enable-mods-shared=all --enable-rewrite
 
编译并安装
# make
# make install
建立一个软链接
# cd /usr/local;ln –s /usr/local/httpd-2.2.11 apache
 
手动启动Apache
/usr/local/apache/bin/apachectl会显示帮助信息
# /usr/local/apache/bin/apachectl
Usage: /usr/local/httpd-2.2.11/bin/httpd [-D name] [-d directory] [-f file]
                                         [-C "directive"] [-c "directive"]
                                         [-k start|restart|graceful|graceful-stop|stop]
                                         [-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
  -S                 : a synonym for -t -D DUMP_VHOSTS
  -t -D DUMP_MODULES : show all loaded modules
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
 
启动用
# /usr/local/apache/bin/apachectl start
 
在早前的apache版本支持startssl的操作方式,但这个版本中把这个参数给废除了。
# /usr/local/apache/bin/apachectl startssl
The startssl option is no longer supported.
Please edit httpd.conf to include the SSL configuration settings
and then use apachectl start.
同时它提示了我们进一步的操作:编译http.conf配置文件添加SSL相关的设置,这个我们也会在下一个章节做详细阐述。
添加服务
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# vi /etc/init.d/httpd
如果是在Redhat或相关的操作系统上,请在#!/bin/sh 下面添加下面的几段话,目的是使chkconfigservice命令有控制这个服务的能力。
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 64 36
# description: HTTPD compile by wang_xiaoyu@qq.com 
有必要简单地说明一下,关于chkconfig的字段的含意。chkconfigdescription字段可以被Redhat等一些发行版的chkconfigservice 命令识别,其中第二部分表示在哪些运行级别下服务开启,第三部分和第四部分分别表示启动和关闭的优先级别(顺序)。
 
添加到chkconfig列表中
# chkconfig –add httpd
# chkconfig httpd on
启动服务的方法:
/etc/init.d/httpd start或者service httpd start(只支持RedHat系列的系统)
# service httpd start


     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/206489,如需转载请自行联系原作者

 
相关文章
|
Ubuntu PHP
Ubuntu下使用apt为Apache2编译PHP7.1
以上就是在Ubuntu系统下,使用apt为Apache2编译PHP7.1的过程。希望这个过程对你有所帮助,如果你在执行过程中遇到任何问题,都可以在网上找到相关的解决方案。
315 25
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
355 28
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
17744 5
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
325 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
Ubuntu 安全 Unix
在Linux中,有哪几种linux/unix发行版本?
在Linux中,有哪几种linux/unix发行版本?
|
Ubuntu Unix Linux
在Linux中,Unix和Linux之间的关系是什么?
在Linux中,Unix和Linux之间的关系是什么?
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
1035 4
|
Unix Linux 程序员
Unix:Linux的“逗趣祖师爷”与它的不凡传承
在科技长河中,Unix犹如一颗恒星,既是历史见证者也是未来的启发者。1969年,因程序员肯·汤普森想在他的PDP-7上玩“Space Travel”游戏,意外创造了Unix,以简洁优雅的代码改变了操作系统的世界。进入90年代,林纳斯·托瓦兹受Unix启发,开发了开源免费的Linux,像是Unix调皮的孙子,不仅继承其精髓还增添了开放共享的精神。Unix与Linux之间的传承,就像是智者与追蝶孩童的故事,充满了岁月的智慧与新生的活力,提醒我们科技传奇往往源于不起眼的小事。下次使用Linux时,不妨会心一笑吧!
399 0
|
运维 监控 安全
linux常见问题解析
linux常见问题解析
288 1
|
Linux 持续交付 Apache
在Linux中通过ansible自动化部署apache服务
【7月更文挑战第11天】Linux中用Ansible自动化部署Apache服务:1. 确保Ansible已安装;2. 在`/etc/ansible/hosts`配置目标主机,如\[webservers\] server1 server2;3. 编写Playbook `apache_deploy.yml`更新系统并安装、启动Apache;4. 执行`ansible-playbook apache_deploy.yml`。适用于快速部署至多台服务器,减少配置错误和成本。
314 0