centos下安装apache

2023-11-13

下载所需要的包:

 wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.54.tar.gz
 wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
 wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
 wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.43/pcre-8.43.tar.gz --no-check-certificate

解压

tar -zxvf apr-1.7.0.tar.gz && tar -zxvf apr-util-1.6.1.tar.gz && tar -zxvf httpd-2.4.54.tar.gz && tar -zxvf pcre-8.43.tar.gz

1.安装apr包

cd apr-1.7.0
./configure --prefix=/usr/local/apr

安装过程中会报错:如下
在这里插入图片描述
解决方案:

vim /apr-1.7.0/configure
注释掉31880行的内容
保存退出
重新执行:./configure --prefix=/usr/local/apr

最后执行:

make && make install

2.按住强apr-util-1.6.1包

cd apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make && make install

安装过程中会报错:如下:
在这里插入图片描述
解决方式:

yum install expat-devel

重新执行:

make && make install

3.安装pcre-8.43

cd pcre-8.43
./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config
make && make install

过程中可能报错:

在这里插入图片描述
解决方式:

yum install -y gcc-c++

重新执行:

./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config
make && make install

4.安装http-2.4.39

cd httpd-2.4.54/
./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make && make install

5.修改端口号

为了防止和 Nginx 冲突 抢占 80 端口的风险发生 我们将 Apache 的默认端口号改为 8080 我是把 Nginx 和 Apache 安装到了同一台机器上才这么做的

 vim /usr/local/httpd/conf/httpd.conf
 将52行的监听的端口号改为8080
 将195行改为 ServerName localhost:8080

具体如下:
在这里插入图片描述
还需要允许将站点目录指向其他目录下的权限 AllowOverride 后边改成 all,
表示虚拟主机的目录允许覆盖掉配置里面的默认路径 usr/local/httpd/htdocs
在这里插入图片描述

6.启动Apache

cd /usr/local/httpd/bin
./apachectl start

7.将链接apachectl复制到系统目录下并命名为httpd

 cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd

到此,其实已经可以使用 service httpd start 等命令,但在 linux 服务列表还没有注册,还不能使用 systemctl 命令启动 httpd, 我们打开刚刚复制的那个文件

 vim /etc/rc.d/init.d/httpd

在这里插入图片描述
将 httpd 配置开机自启动并加入 linux 服务监控

chkconfig --add httpd

至此,apache 安装完毕,可以使用 systemctl restart httpd 重启 apache 试一试
访问一下:

虚拟机net模式下,可能没办法访问:
需要改成桥接模式:

ip -4 addr 
如果看到virbr0记得删掉:

 ifconfig virbr0 down
brctl delbr virbr0
brctl show

一下过程具体看:
具体过程

centos设置静态ip

首先进入这个目录,在这个目录下面有若干个文件:
/etc/sysconfig/network-scripts
ifcfg-ens33是网卡配置文件,编辑ifcfg-ens33文件
vim ifcfg-ens33

在这里插入图片描述

把BOOTPROTO=DHCP改为BOOTPROTO=static,即将地址分配方式从动态分配改为静态地址,然后在文件下面追加内容:
根据自己的物流主机进行配置即可
在这里插入图片描述
在这里插入图片描述

IPADDR=10.10.20.90
NETMASK=255.255.255.0
GETWAY=10.10.20.1
DNS1=8.8.8.8

重启网络服务

service network  restart

在网络配置文件 /etc/sysconfig/network 中添加网关地址

 vim /etc/sysconfig/network
写入内容:
GETEWAY=自己物理的默认网关

保存好之后:
重启网关service network restart
将所以的服务进行重启即可
虚拟机和物理机之间相互访问

php5.6.40安装

wget http://cn2.php.net/distributions/php-5.6.40.tar.gz
tar -zxvf  http://cn2.php.net/distributions/php-5.6.40.tar.gz
cd php-5.6.40

yum install -y epel-release
yum install -y libmcrypt-devel
yum install -y gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2 libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel 

./configure --prefix=/usr/local/php56 \
--with-config-file-path=/usr/local/php56/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-freetype-dir \
--with-readline \
--with-gd \
--with-apxs2=/usr/local/httpd/bin/apxs

# 默认php.ini配置文件
cp /usr/local/php-5.6.40/php.ini-development /usr/local/php56/etc/php.ini

# 默认php-fpm.conf配置文件
cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf

# 设置php开机自启动
cp /usr/local/php-5.6.40/sapi/fpm/init.d.php-fpm /etc/init.d/php5-fpm
chmod +x /etc/init.d/php5-fpm
chkconfig --add php5-fpm
chkconfig php5-fpm on

#启动php-fpm
service php5-fpm start

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos下安装apache 的相关文章

  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • Linux >2.6.33:可以使用 sendfile() 来实现更快的“猫”吗?

    必须将大量大文件连接成一个更大的单个文件 我们目前使用 cat file1 file2 output file but are wondering whether it could be done faster than with that
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav
  • Linux 中有没有一种轻量级的方法来获取当前进程数?

    我希望我的 基于 C C 的 程序显示一个数字指示器 指示本地系统上当前有多少个进程 将经常查询正在运行的进程数值 例如每秒一次 以更新我的显示 有没有一种轻量级的方法来获取该数字 显然我可以调用 ps ax wc l 但我不想强迫计算机生
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • tar.gz 和 tgz 是同一个东西吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我创建了 tgz 文件tar czvf filecommand then 我最终得到了一个 tgz 文件 我想知道它和tar gz 之间的

随机推荐