卸载dnf安装的httpd:

纯文本照样可以做到 "有格式的", 通过 "缩进, 空格, tab, 连字符如- , : , ... 等" . 有一个基本原则就是做到 按行 为单位 进行处理.

如: checking whether we are cross compiling... no

configure 不是系统提供的, 默认的命令, 只是在 软件安装包中提供的一个配置命令, 它本身有 帮助文档! 可以通过 ./configure --help 来查看如何进行配置.

比如: features options(--disable-.., --enable-...), directory options, install options等等, 通用的如: --slient, --quiet, -q, -n, --version等等.

其中安装路径, 如果用

dnf的安装路径是 直接在 /usr下, 包括: /usr/bin, /usr/sbin,

更加清楚linux 的目录结构了:

除了软件支持的目录外, 其他就是一些 系统运行所需要的支持 目录 / 和 用户的目录和辅助目录, 如: 系统运行所需要的支持目录, 如: /dev, /sys, /proc , /run ,/tmp, /var, /boot, 用户的目录包括: /root, /home, 辅助目录, 如/var, /media, /mnt, /opt, 配置目录/etc等

软件支持的目录, 总的来说, 包含几个部分: bin, sbin, lib(就是类/结构体/联合/枚举/常量const等的实现), include, src, share(资源文件,如js, css, pictures, assets,man, info等), 分为三级

一是, 系统自带的 , 即使是最小化安装, 也有的 部分, 主要是指根目录下的几个目录, 包括: /bin, /sbin, /lib

二是, 工具dnf安装的, 主要放在/usr下面, 包廓: /usr/bin, /usr/sbin, /usr/lib, /usr/share, /usr/libexec等

三是, 用户自己通过源码安装的, 主要放在/usr/local下面, 根据你自己的 configure设置, 可以放在 local下的不同目录中, 如: /usr/local/apache2等等.

总之, 就是 系统自带的软件除外, /usr是最主要的 (也不是必须安装 在 这里的, 有的就安装在 /home/softName/中)软件安装地方/

./configure下设置安装地址的选项是 --prefix, 不是 --with-prefix, --with通常跟需要的模块指定地址..

关于linux shell中的大括号? 注意和php中的\({}, {\)...} 相区别

"{\(var1} "不同于php中的写法, 在php中 "{\)var1}" 表示的是, 一个变量. 而shell中则没有这样的含义, 大括号会原样输出;

${var} 则具有特殊的含义, 大括号表示对变量的特殊运算! 比如 :0:5 冒号表示借取; 而#号和% 也表示 "删除并截取".

因为表示表里的符号是\(, 而# 在\)前面, % 在\(后面, 所以 `\){var#/} 表示删除/左边的内容,${var%/}`表示删除/ 右边的内容.

一个#表示最小匹配, 两个## 表示最大/最多匹配 删除的内容总是用* 表示, 如果是删除左边的内容, 则星号在删除 标示符的左边, 如果删除右边的内容, 则星号在标示符的右边.

参考: http://www.jb51.net/article/64804.htm

从/usr/local/apache2/apr-1.6.2/include/ 可看出, 里面正是 传统的 c语言的 头文件! .h文件

在 apr_dso.h 头文件中, 有预编译语句 #infdef APR_DSO_DOT_H #define APR_DSO_DOT_H

同时,有类型定义语句, typedef struct apr_dso_handle_t 注意, 类型定义语句, 跟 定义 一个 变量的语句相类似.. 如: int x; typedef int WIDTH

html

内容(Markdown编辑器) 查看自动保存内容

C 语言的预编译, 编译和链接?

编译的时候, 是将.c文件 生成.o的目标文件, 这个是"预制件", 是任何程序都可以直接使用的 "材料" , 所以叫共享库文件. 如果c文件是沙子, 水泥, 粘土, 那么.o文件就是 砖块, 水泥砖等.

链接就是最终生成 可执行文件, 生成 "最终产品"了.

预编译, 根据语法要求, 凡是用 # 号开头的都是 预编译 , 包括 #define ... #include... #ifdef #ifndef 等等.

预编译都不是可执行 的语句 ! 所以 都不用 加分号(c语言中, 凡是加分号; 的都是 要执行的语句)

预编译 都是 "替换" , 都是用来 替换的! 比如: include ... 就是将该包含文件的内容放在这里进行替换, 因为只是替换, 所以 不是执行语句, 所以不加分号

另外, 因为 预编译都是替换, 比如 # define, 都是 要放在 一个语句中间 的! 你不会在一个语句的中间去加上分号.

有很多形式的httpd的配置 选项, 总的来说, 记住这几个就好了: (因为其他很多选项和features, 使用默认的就好了, 比如: --enable-dir, --enable-alias)

--prefix,

--enable-so

--enable-rewrite

--enable-modules=most

这种配置选项, 可以说是到处都可以轻易地找到. 因为2.2.x的版本, (虽然也支持worker和event模式 , 但是默认的)是prework多子进程 单线程模式, 所以可以不用配置 --with-mpm=prefork, 从 ./configure --help 命令的帮助 就可以看出...

在配置时, 如果 在 最后 没有出错信息 提示, 而且在 软件目录下有 Makefile文件和 每个模块目录下都 有 Makefile文件, 就说明配置正确

编译生成的 .o, .a, .lo, .la等文件

.o文件就是make的目标, 生成的obj目标文件, 相当于 提供函数和接口的 中间件,中间成品, 多个.o文件 链接就成为 可执行的 软件.

.a 是 archive文件, 是多个.o文件的打包 集合文件. 即常说的静态库

.lo, 和 .la是使用 libtool 生成的 .o文件和.a文件的 描述文件.

libtool 只和 .lo和.la文件打交道, 将复杂的编译工作 做了抽象和 多平台封装...

make的目标文件Makefile的写法参考: 大器晚成的: http://www.cnblogs.com/luchen927/archive/2012/02/05/2339002.html

### make只是生成了一些文件, 并没有拷贝文件到 安装目录, 因此 还必须使用 make install来拷贝到目标安装目录.

当然, make install还做了大量的 很多的 工作, 包括: 使用 libtool, mkdir , 还有其他很多的install安装工作等等..

httpd的官方上下载的 在这个版本的httpd-2.2.34中 , 本身就包含了 apr和apr-util的依赖包. 在make和make install 的时候, 就安装好了, 所以 并不需要 在安装httpd前 事先安装apr和apr-util. 但是并不是所有的 下载的 httpd包都包含了apr和apr-util的, 有的还需要事先安装apr等, 要视具体的情况而定.

为了避免每次都要完整的 写出启动路径, 可以将 httpd 做一个链接 到 /usr/sbin中: ln -s /usr/local/apache2/bin/httpd /usr/sbin/http 因为httpd是 服务器deamon所以, 最好是放在 /usr/sbin下. 而不是 bin下

### 在shell中, 运行命令, 如果 "直接写 命令名称" 不是使用 的 "./命令名称" , 但是 如果不是在 系统规定的 PATH 中, 即使 当前路径中有这个命令, 它也不认! 因为shell总是从 \(PATH 指定的那几个目录中去搜索命令, 进行执行. 如果当前命令所在目录 没有在\)PATH 中, 就要用 ./命令名 的方式执行. 或者是把 路径加入到 PATH 中 .

export的意思和作用?

使用 export 就是要理解shell 变量的作用域 和生命期

每次用./script.sh的方式执行 一个脚本的时候, 是 "新开一个子shell来执行" , 其实是新创建了一个子shell, 只是你看不到的话. 而source, 和点命令, 则是 直接在当前shell中执行, 不会新开 子shell.

在新开的子shell中执行脚本的时候, 会把父shell中的 "系统环境变量" 复制到子shell中, 使用 export == "输出", "输出到 子shell中" == "将变量设置为 当前 shell的 系统环境变量,

所以, 如果不使用 export, 那么一个 shell中的 变量 只是 "局部变量" 它的作用域就只是当前 shell, 在 子shell中就无效!

参考:

每次新启动一个 shell的时候, 总是 先执行 /etc/bashrc, 然后执行用户的环境配置文件 sourc ~/.bashrc. 因为是 source, 所以, .bashrc中的变量 如新增/修改的 PATH变量, 会自动在 当前shell 中生效, 所以 你可以不用 export, **当然 如果你使用了 export会更好, ** 因为这时候, 这个变量不只是会在 当前shell中生效, 甚至 在当前shell中 新开的 子shell中(如执行一个用户自定义 脚本)也是有效的, 否则 就不会在子shell中有效!

自己手动源码安装php?

如果没有安装php, 那么htdocs下的php文件对apache来说, 就是透明的, "无视的", "好像不存在一样"

php的版本问题 , 用的最多的还是php5, 但是php5.2 没有多少新特性(特别是oop), 技术已经过时; 一般php5.3 加入了很多新特性, 特别是对oop的支持, 稳定版本是 php5.3.28. 但是 php5.4 做了一些优化, 速度更快, 内存占用更少. 现在用的较多的是:: php 5.5.x

下载地址: php.net/downloads.php, .../from/a/mirror China: cn2.php.net

如何启动httpd?

你可以直接使用 htttpd, 不带参数的话, 就是直接启动

或者, 显式的启动是: httpd -k start|stop|restart 等等.

一般 在 ./configure 的时候, 就会检查 软件的 dependencies 依赖性, 如果依赖性不满足, 就会报错, 配置不会通过.

安装php时的出错问题?

dnf使用163的仓库源时, 可能遇到很干脆的返回, 是因为163的服务器上把低版本的23版本源给删除了, 可以使用更高的版本源, 比如是25的同样可以.

很多软件都提供了 软件和该软件的devel, 有些需求的问题可能 是 在 该软件的devel衍生软件中, 如libxml2, libxml2-devel

遇到 php配置时提示 没有 xml-config, 提示检查 libxml2库, 其实libxml2库已经安装, 这个 xml-config是 在 libxml2-devel.

手动源码安装php时, 怎么没有php的配置文件?

php的配置文件是 php.ini

php不像apache, 有自己专门的 配置目录, 如 conf/httpd.conf, 它没有自己的配置目录,

它的配置文件, 需要自己写, 或者 在 下载的源码src 中 , 有两个 : php.ini-development, php.ini-production , 把其中的一个拷贝到 lib中就可以了

php.ini放的位置 应该是: /usr/local/php5.5/lib/下面, 即$prefix/lib/ 下.

linux php mysql安装包下载_在linux下手动安装 apache, php, mysql--终极版相关推荐

  1. linux系统 浏览器安装包下载,Opera浏览器Linux版

    Opera浏览器Linux版是Linux系统所专用的客户端版本,该浏览器对于用户的使用服务做出了许多人性化的设计.首先是对于用户的收藏书签,而后是对恶意网址的广告拦截,其次是对于网络不佳下的加速模式等 ...

  2. MySQL安装包下载地址

    MySQL安装包下载地址 https://downloads.mysql.com/archives/community/

  3. mysql 手动配置服务器_Win7系统下手动配置Apache+PHP+MySQL环境WEB服务器 -电脑资料...

    本来想学学php,于是就想搭建web服务器和sql环境,结果浪费掉了不少时间, 大致的总结下,也算是长个记性. 使用的安装包分别是httpd-2.2.22-win32-x86-no_ssl .msi, ...

  4. 下载nodejs的mysql安装包下载安装_Node.js安装 下载

    1.安装Node.js https://nodejs.org/en/ 安装步骤: 点击安装包 按提示进行安装 Node.js 安装配置 本章节我们将向大家介绍在 Windows 和 Linux 上安装 ...

  5. mysql安装包下载密码_MySQL解压包的安装与下载的图文教程

    这篇文章主要为大家详细介绍了mysql解压包的安装基础教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 由于换了新电脑,所以的环境都要到新电脑去配置.突然发现mysql的配置忘了,然后百度又重新 ...

  6. cefsharp.wpf离线安装包下载_在vscode里编写c++程序(解决gdb下载失败问题)

    要在vscode编辑器里编写c++程序,分两步: 安装c++ 在vscode里配置 关于1: 网上很多人说在线安装MinGW,但我在安装时gbd一直安装失败.在同学的建议下,改用离线安装tdm-gcc ...

  7. python的安装包下载_科学网—[转载]python常用的安装包下载 - 林清莹的博文

    Python常用的安装包下载 1.首先应该下载dlib安装包(例如:dlib-19.8.1-cp36-cp36m-win_amd64.whl) 可以通过此网址进行下载对应的dlib包   https: ...

  8. jdk32位安装包下载_神灯地图大数据采集破解版-神灯地图大数据采集软件下载 v4.6.0官方版-...

    神灯地图大数据采集软件是一款采集地图信息的工具,能够获取各行业精准客户数据,针对主流电子地图上的商户信息进行实时采集,搜索结果包含商户名称.电话联系方式.地址.坐标信息. 神灯地图大数据采集软件是一款 ...

  9. jdk32位安装包下载_神灯地图大数据采集软件下载|神灯地图大数据采集软件 最新版4.6.0 下载...

    神灯地图大数据采集软件可以让用户们在百度,高德等主流地图导航平台上,去采集自己想要的相关数据,包括商户名称.电话联系方式等,并且可以支持关键词筛选,可以帮助用户们过滤掉自己不想要的数据,让自己能够直接 ...

最新文章

  1. csdn开发者报告中学习到的新知识
  2. MVC3.0 将网站设为首页和加为收藏的实现(IE/Firefox)
  3. St_geometry 初始用
  4. Jsp+Ssh+Mysql实现的简单的企业物资信息管理系统
  5. 服务器php 启动命令_php启动内置服务器
  6. [JavaScript] 怎么使用JS禁止复制粘贴
  7. 基本的http压力测试工具
  8. linux常用命令清单
  9. 初级产品经理的日常工作流程汇总
  10. 稻盛和夫《活法》读书笔记
  11. D. Decreasing Debts
  12. 怎么样开启红米手机3S 3X的root超级权限
  13. houdini快速物体拖尾笔记
  14. HDU 1290 献给杭电五十周年校庆的礼物(空间分割)
  15. 这是一篇儿正儿八经的自我介绍~
  16. 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (“@xx“): 对于类型特定的元数据,数据类型 0x62 (sql_variant)的类型无效。
  17. C++算法:最大回文子串---动态规划-----夹逼法----中心扩展法
  18. 日本电视台选择 Infortrend存储管理核心播放业务
  19. 【LeetCode】老虎证券面试-括号嵌套且满足优先级
  20. SDDC的Windows初体验-QT篇

热门文章

  1. Java中的方法(形参及实参)return返回类型
  2. Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)
  3. Gradient-Based Learning Applied to Document Recognition 部分阅读
  4. 写个买卖小游戏,第1天(昨天)
  5. AIR 窗口,自定义形状窗口,按钮
  6. 颈椎病分型及对症治疗
  7. 使用临时表的另外一种方式
  8. 一个不错的网络基础知识网站
  9. Okhttp使用简析——Android网络请求框架(一)
  10. 开发中遇到的Cause: java.sql.SQLException: connection holder is null的异常