最近一个多月(2016-06-20开始至今),一直在忙海外广告平台FAQ系统的开发,既要负责服务器环境的搭建,又要写前端,还要写后台和数据库,甚至还要考虑产品需求和设计。所以是一个很大的挑战,对自身也是一个很好的锻炼机会,必须全力以赴,这一个多月几乎每天加班到晚上9点多才回家,有时周末也会来加班。陪女票的时间就少了,Sorry~My Dear~,等忙完这一阵子,闲下来打算陪亲去四川九寨沟玩个十天八天的,放松下心情~

  闲言少叙,这一系列的文章主要聊聊自己这段时间搭建服务器环境的经验和踩过的坑,这一块也是我的薄弱项,估计写得内容不深,主要是给初学者看的,大神勿喷哈~

------------------------------------------------------------------- 华丽的分割线 ---------------------------------------------------------------------------

我的Linux系统版本是:
# cat /etc/redhat-release
CentOS Linux release 6.2 (Final)

(一)下载Apache

  Apache官网:http://httpd.apache.org/,下载地址:http://httpd.apache.org/download.cgi,或者直接点击这里下载。

  下载下来是一个源码的压缩包:httpd-2.4.23.tar.gz。

(二)安装Apache

  1.解压

tar zxvf httpd-2.4..tar.gz
cd httpd-2.4.

  2.检查环境,生成 Makefile 文件

./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf --with-apr=/usr/local/apr-1.4. --with-apr-util=/usr/local/apr-util-1.3.  --with-pcre=/usr/local/pcre  --enable-module=so

  3.编译

make

  4.安装

make install

  安装完之后,可以使用

# httpd -v
Server version: Apache/2.4. (Unix)
Server built: Jul ::

  查看 Apache 的版本号,当然也可以验证 Apache 是否成功安装。

  5.注意

  Apache的安装依赖于以下三个模块:

  (1)apr-1.4.5.tar.gz

  (2)apr-util-1.3.12.tar.gz

  (3)pcre-8.10.zip

  需要先下载并解压。

(三)Apache服务器的配置

  默认 Apache 的配置文件在安装目录下的:/usr/local/apache/conf/httpd.conf。

  主要配置以下字段,其他的默认就好:

Listen ip:

Include conf/vhosts/*.conf

LoadModule unixd_module modules/mod_unixd.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule dir_module modules/mod_dir.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#支持PHP
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php ServerName 127.0.0.1:8080 DocumentRoot "/usr/local/apache/htdocs" <Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory> <IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

  下面是 httpd-vhosts.conf 文件:

<VirtualHost *:>

        ServerName XXX.XXX.com
DocumentRoot "/usr/local/apache/htdocs" <Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
DirectoryIndex index.php index.html
</Directory> ProxyPass /feedback http://ip:8000/feedback
ProxyPassReverse /feedback http://ip:8000/feedback </VirtualHost>

  其中 ProxyPass 这两行是配置代理和反向代理,用于访问其他域的资源。

(四)Apache服务器的启动、停止和重启

  启动:apachectl start

  停止:apachectl stop

  重启:apachectl restart

  使用 apachectl 命令之前要把 Apache 的 bin 目录配置到环境变量里:

  在 /etc/profile 的最后一行加上:

export PATH="/usr/local/apache/bin:$PATH"

  保存后,输入:

source /etc/profile

  使更改生效。

  启动之后,可以使用:

# ps -ef | grep httpd
root Jul27 ? :: /usr/local/apache/bin/httpd --version
daemon Jul27 ? :: /usr/local/apache/bin/httpd --version
daemon Jul27 ? :: /usr/local/apache/bin/httpd --version
daemon Jul27 ? :: /usr/local/apache/bin/httpd --version
root : pts/ :: grep httpd
daemon Jul27 ? :: /usr/local/apache/bin/httpd --version

  查看 Apache 服务启动了没有,或者也可以使用:

# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp ip: 0.0.0.0:* LISTEN /httpd

(五)可以遇到的问题和相应的解决方案

  问题1:

AH00557: httpd: apr_sockaddr_info_get() failed for AD
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

  解决方案:

  上面报了两个错误,分别解决:

  (1)AH00557: httpd: apr_sockaddr_info_get() failed for AD

echo ip > /etc/hostname
/bin/hostname -F /etc/hostname
apachectl restart

  (2)AH00558: httpd: Could not reliably determine the server's fully qualified domain name...

  /usr/local/apache/conf/httpd.conf 中:

ServerName localhost

  问题2:

libc.so.: version `GLIBC_2.' not found

  解决方案:

  这时因为缺少glibc依赖模块,需要安装glibc。

  (1)下载 glibc-2.14.tar.gz

  (2)解压

tar zxvf glibc-2.14.tar.gz
cd glibc-2.14

  (3)新建 build 目录

mkdir build
cd build

  (4)运行 configure,并编译、安装

../configure --prefix=/usr/local/glibc
make -j4
make install

Linux下服务器环境的搭建和配置之一——Apache篇的更多相关文章

  1. 记一次Linux下JavaWeb环境的搭建

    今天重装了腾讯云VPS的系统,那么几乎所有运行环境都要重新部署了.过程不难懂,但是也比较繁琐,这次就写下来,方便他人也方便自己日后参考参考. 我采用的是JDK+Tomcat的形式来进行JavaWeb初 ...

  2. Mac下SVN服务器环境的搭建和配置(除展示图片外,所有命令在Linux/Unix下适用)

    这几天领导没有安排工作,闲着没事就想把自己这两年做iOS开发时感觉知识有欠缺的地方想好好深入地补习一下,昨天和今天就计划好好学习下SVN和git的从创建和到原理,到命令,到界面的使用.一不小心被另一领 ...

  3. linux下Ftp环境的搭建

      Ftp环境的搭建 1.ftp软件的安装 使用ssh远程连接linux系统,上传和下载一些文件,Ftp是不可少的 Ftp的安装很简单,远程登录系统后使用命令 yum list vsftpd 通过提示 ...

  4. Linux下自动化测试环境的搭建

    1.安装Linux虚拟机,详情参考  https://blog.csdn.net/qq_22770715/article/details/78558374     https://www.cnblog ...

  5. Linux下开发环境的搭建(For C++ OIer)

    说句实话,对于OIer来说,Linux真的是个很好的开发平台. 这里既没有游戏的喧嚣,也没有广告的打扰,gcc/g++早已预装,一切已为你准备好......(???)即使对于日常使用,也绰绰有余. 如 ...

  6. linux下maven环境的搭建

    1.maven的下载 2.maven的安装和环境变量配置 系统环境linux centos7.2 x64 1.maven的下载 下载地址:https://mirrors.tuna.tsinghua.e ...

  7. Linux下Qt环境的搭建

    之前一直使用Ubuntu软件中心中的Qt4开发Qt的应用程序,现在转到Linux下来做Qt5开发,但是必须从Qt官网上面下载对应的安装包,配置起来相对麻烦一些,这里介绍整个开发流程. 首先,在官网上面 ...

  8. android开发学习---linux下开发环境的搭建&& android基础知识介绍

    一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  9. ubuntu 18.04下greenplum安装笔记(一)Linux下基础环境的搭建

    背景 需要构建一个用于数据仓库的分布式数据库集群. 每一个节点暂时不需要进行备份,同时也不考虑坏掉的情况. 每一个数据节点最好都不用进行过多的配置,安装起来方便. Greenplum的Shared-N ...

随机推荐

  1. ios7学习之路七(隐藏虚拟键盘,解决键盘挡住UITextField问题)

    再正式开始之前,先来介绍一下IOS的键盘类型: 一.键盘风格 UIKit框架支持8种风格键盘 typedef enum { UIKeyboardTypeDefault, // 默认键盘:支持所有字符 ...

  2. URLDecoder: Incomplete trailing escape (%) pattern

    在使用URLDecoder对字符串进行解码的时候 报以下异常信息: Exception in thread "main" java.lang.IllegalArgumentExce ...

  3. 启动mysql错误解决方案,学会查看错误日志:mysql.sock丢失,mysqld_safe启动报错

    本人还是个菜鸟,下面是我的经验之谈,能解决一些问题,有不对的地方,敬请斧正. 我的是CentOS6.3+MySQL5.1.57. 重启了一次服务器后,使用> mysql -u root -p登陆 ...

  4. 项目检出JRE问题(Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'idweb')

    分类: java 技术2014-07-31 16:51 9864人阅读 评论(13) 收藏 举报 项目从SVN检出到工作空间后报了很多错误,其中很明显就是一些jar的问题,没有相关的jar或版本问题, ...

  5. 一步一步深入spring(7)-- 整合spring和JDBC的环境

    1.配置数据源 (1).添加支持数据源的jar包commons-dbcp.jar .commons-pool.jar 当然也要添加其他的spring用到的jar以及这里用到的数据库mysql的jar ...

  6. Reeder Web版

    Reeder Web版 访Reeder界面效果 一直很欣赏触控手势的代码实现,所以最近折腾了个Javascript触控手势库--JTouch,效果还有诸多不完善之处,苦于硬件设备不完善,针对ie10的 ...

  7. 基于Levenberg-Marquardt训练算法的BP网络Python实现

    经过一个多月的努力,终于完成了BP网络,参考的资料为: 1.Training feed-forward networks with the Marquardt algorithm 2.The Leve ...

  8. Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库

    Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与 ...

  9. schemaeasyui实例:SSh结合Easyui实现Datagrid的分页显示

    查了好多资料,发现还是不全,干脆自己整理吧,最少保证在我的做法正确的,以免误导读者,也是给自己做个记载吧! 克日学习Easyui,发现非常好用,界面很雅观.将学习的心得在此写下,这篇博客写SSh结合E ...

  10. oc学习之对象在内存的位置

    对象在内存中的存储 1. 内存中的五大区域. 栈: 存储局部变量. 堆: 允许程序员手动在堆区申请指定的连续的字节数的空间来使用. BSS段: 存储未初始化的全局变量.静态变量. 数据段(常量区):  ...