1.下载

http://archive.apache.org/dist/httpd/httpd-2.2.0.tar.gz

tar -xvf httpd-2.2.0.tar.gz

2.安装

./configure --enable-so
make
make install

3.启动

/usr/local/apache2/bin/apachectl start

启动报错: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

解决:

vim  /usr/local/apache2/conf/httpd.conf      #编译安装时配置文件所在路

修改:ServerName www.example.com:80  为 ServerName localhost:80

4.停止

/usr/local/apache2/bin/apachectl stop

5.安装php

现在需要配置并编译 PHP。在这里可以用各种各样的参数来自定义 PHP,例如启动哪些扩展功能包的支持等。用 ./configure --help 命令可以列出当前可用的所有参数。在此例中,将给出一个在有 MySQL 支持的 Apache 2 上进行配置的范例。

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install

如果在安装后想改变配置选项,添加功能模块,只需重新 configure,make,以及 make install php就可以了,Apache 不需要重新编译,重新启动 Apache 新模块就生效了。

注意:除非明确有提示,否则“make install”命令将安装 PEAR、各种 PHP 工具诸如 phpize,并安装 PHP CLI 等等。

6.配置 php.ini

[root@computer7 php-7.3.1]# pwd

/data/php-7.3.1

cp php.ini-development /usr/local/lib/php.ini  # 复制安装包下的配置文件到/usr/local/lib/php.ini 

可以编辑 php.ini 来设置 PHP 运行时的选项。如果想要把此文件放到另外的位置,需要在步骤 5 添加 --with-config-file-path=/path 选项。

如果选择了 php.ini-production,请务必阅读其中的变更列表,它们将影响 PHP 的执行。

7.编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 达式右边的路径必须指向系统中的 PHP 模块。以上的 make install 命令可能已经完成了这些,但务必要检查。

8.告知 Apache 将特定的扩展名解析成 PHP,例如,让 Apache 将扩展名 .php 解析成 PHP。为了避免潜在的危险,例如上传或者创建类似 exploit.php.jpg 的文件并被当做 PHP 执行,我们不再使用 Apache 的 AddType 指令来设置。参考下面的例子,你可以简单的将需要的扩展名解释为 PHP。我们演示为增加.php。

<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>

然后,可以将 .phps 文件由 PHP 源码过滤器处理,使得其在显示时可以高亮源码,设置如下:

<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

如下图所示:

9.启动 Apache 服务

10. 测试

cd /usr/local/apache2/htdocs
[root@computer7 htdocs]# vim test.php
<?php
phpinfo();
?>

访问: http:17.0.0.1/test.php 显示如页面,表示安安成功

参考:http://php.net/manual/zh/install.unix.apache2.php

建议使用--prefix=/path/you/want/to/install/ 来编译安装,卸载时只需要删除目录即可

如果安装的时候指定了prefix,直接删除就好。如果没有,并且源代码没有提供make uninstall/distclean/veryclean的功能,我一般这样做:
找一个临时目录重新安装一遍。比如
./configure --prefix=/tmp/to_remove && make install
然后遍历/tmp/to_remove里的文件,把你原来安装位置的文件都删除。

这样的坏处是有些文件夹还可能删除不了(分不清是系统的还是安装上的)

作者:张彪
链接:https://www.zhihu.com/question/20092756/answer/38275061
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

apache2.2 +php7.3安装 编译安装的更多相关文章

  1. (0.2.6)Mysql安装——编译安装

    (0.2.6)Mysql安装——编译安装 待完善

  2. Windows10 Apache2.4 PHP7 MySQL 5.7安装教程

    最近细细的折腾了win10下PHP环境的安装过程,每次安装总是有小问题,现在总结一下.安装之前需要注意,下载的安装包(除MySQL)外必须统一是64位或者统一时32位. 一. MySQL5.7的安装 ...

  3. php7 redis扩展编译安装

    提示:php7版本不支持redis2点几的扩展 上正文: wget -c https://github.com/phpredis/phpredis/archive/php7.zip unzip php ...

  4. 6.6安装编译安装zabbix3.2

    添加yum源 get -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo #安装阿里云y ...

  5. php7源码编译安装

    以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.ph ...

  6. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25

    所需源码包: /usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz 编译安装 Apache2.2.25 #切换到源码目录 cd /usr/local/src ...

  7. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.4.6

    Apache官方说: 与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等.除此之外,还包括性能提升.内 ...

  8. 编译安装apache-2.4.18

    apache安装时, 必须要apr和apr-util, 这两个包是必须的 当下载apache的版本过高, 如: apache-2.4.18, 那么要求的apr或apu=apr-util版本将至少在1. ...

  9. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

随机推荐

  1. isBalanced函数实现

    原文:从一道面试题谈起,作者:360奇舞团 刘观宇 题目: 创建一个函数来判断给定的表达式中的大括号是否闭合,返回 true/false,对于空字符串,返回 true var expression = ...

  2. 初印象至Vue路由

    初印象系列为快速了解一门技术的内容,后续会推出本人应用这门技术时发现的一些认识. Vue路由和传统路由的区别: Vue路由主要是用来实现单页面应用内各个组件之间的切换,同样支持传递参数等功能.而传统路 ...

  3. app绘制手势密码 、九宫格分解

    什么是九宫格? 即是我们常见的手势绘制.一共有9个点,让我们进行绘制手势.我们手动操作的时候,通过是按住第一个点,然后移动到最后一点,然后松开,就完成手势的操作,那么,如果要用自动化代码,来让其自动绘 ...

  4. 解决修改css或js文件,浏览器缓存更新问题。

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css.js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从 ...

  5. google浏览器高清壁纸保存

    谷歌浏览器 扩展程序里边 有一个主题壁纸 好多不错的,并且是高清大图!!! 主题应用市场: https://chrome.google.com/webstore/category/themes?hl= ...

  6. c++拷贝构造函数(深拷贝、浅拷贝)——转

    拷贝构造函数: 拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类的一个引用变量,该参数是const类型,不可变的.例如:类A的拷贝构造函数的形式为A(A& ...

  7. puppet的使用:依赖关系整理

    title: date: 2016-05-08 21:45:33 tags: puppet categories: 技术 puppet中的依赖关系整理. 概述 puppet中的依赖关系大概有如下几个: ...

  8. 源码分析篇 - Android绘制流程(二)measure、layout、draw流程

    performTraversals方法会经过measure.layout和draw三个流程才能将一帧View需要显示的内容绘制到屏幕上,用最简化的方式看ViewRootImpl.performTrav ...

  9. INSERT INTO IF EXISTS

    INSERT INTO books (name) SELECT 'MySQL Manual' FROM dual WHERE NOT EXISTS (SELECT id FROM booksWHERE ...

  10. mysql 查找在另一张表不存在的数据

    有两个表Phone_book, Call: Phone_book +----+------+--------------+ | id | name | phone_number | +----+--- ...