编译安装apache,常见问题整理

今天在虚拟机上的全新的centos安装apache,遇到了很多问题,整理下。


问题:1,缺少apr和apr-util运行库
(注:apr-util和apr都是为上层应用提供的运行库。为没有stl库的C语言提供了一些数据结构和操作系统封装接口。apache的许多软件都是以apr/apr-util为基础库进行开发的。apr-util只是在apr的基础上提供了更多的数据结构和操作系统封装接口而已。)

解决思路:缺什么安什么,安装了找不到就指定路径

解决方法:发现缺少的运行库的第一想法就是yum安装,但是没有用,程序仍然提示无法找到。于是我卸载手动编译安装,分别指定了安装位置在/usr/local/apr和 /usr/local/apr-util,并且在./configur后面指定了相关位置,但仍报错说找不到。
网上查了下相关帖子,解决方案是将两个包解压好去除版本号放到apache安装路径srclib下


编译安装apache,常见问题整理

输入./configure 并配置相关,成功

  SQL Code 
1
2
  ./configure  --prefix=/usr/local/httpd --enable-so --enable-cgi --enable--charset-lite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

--prefix=/usr/local/apache2表示指定apache的安装路径,默认安装路径为/usr/local/apache2

--enable-rewrite提供URL规则的重写更嫩那个,即根据已知的URL地址,转换为其它想要的URL地址

--enable-so激活apache服务的DSO(Dynamic Shared Objects动态共享目标),即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。

--enable-headers提供允许对HTTP请求头的控制。

--enable-expires激活荀彧通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。

--with-mpm=worker选择apache mpm的模式为worker模式。为worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。而系统 资源的开销小玉基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。

--enable-deflate提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。




问题2,make编译时报错

make编译时,竟然给我报了200行错

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
exports.c: 1902 错误:‘ap_hack_apr_md4’ 重定义
exports.c:
1080 错误:‘ap_hack_apr_md4’ 的上一个定义在此
exports.c:
1907 错误:‘ap_hack_apr_md5_init’ 重定义
exports.c:
1085 错误:‘ap_hack_apr_md5_init’ 的上一个定义在此
exports.c:
1908 错误:‘ap_hack_apr_md5_set_xlate’ 重定义
exports.c:
1086 错误:‘ap_hack_apr_md5_set_xlate’ 的上一个定义在此
exports.c:
1909 错误:‘ap_hack_apr_md5_update’ 重定义
exports.c:
1087 错误:‘ap_hack_apr_md5_update’ 的上一个定义在此
exports.c:
1910 错误:‘ap_hack_apr_md5_final’ 重定义
exports.c:
1088 错误:‘ap_hack_apr_md5_final’ 的上一个定义在此
exports.c:
1911 错误:‘ap_hack_apr_md5’ 重定义
exports.c:
1089 错误:‘ap_hack_apr_md5’ 的上一个定义在此
exports.c:
1912 错误:‘ap_hack_apr_md5_encode’ 重定义
exports.c:
1090 错误:‘ap_hack_apr_md5_encode’ 的上一个定义在此
exports.c:
1913 错误:‘ap_hack_apr_password_validate’ 重定义
exports.c:
1091 错误:‘ap_hack_apr_password_validate’ 的上一个定义在此
exports.c:
1918 错误:‘ap_hack_apr_memcache_hash’ 重定义
exports.c:
1096 错误:‘ap_hack_apr_memcache_hash’ 的上一个定义在此
exports.c:
1919 错误:‘ap_hack_apr_memcache_hash_crc32’ 重定义
exports.c:
1097 错误:‘ap_hack_apr_memcache_hash_crc32’ 的上一个定义在此
exports.c:
1920 错误:‘ap_hack_apr_memcache_hash_default’ 重定义
exports.c:
1098 错误:‘ap_hack_apr_memcache_hash_default’ 的上一个定义在此
exports.c:
1921 错误:‘ap_hack_apr_memcache_find_server_hash’ 重定义
exports.c:
1099 错误:‘ap_hack_apr_memcache_find_server_hash’ 的上一个定义在此
exports.c:
1922 错误:‘ap_hack_apr_memcache_add_server’ 重定义
exports.c:
1100 错误:‘ap_hack_apr_memcache_add_server’ 的上一个定义在此
exports.c:
1923 错误:‘ap_hack_apr_memcache_find_server’ 重定义
exports.c:
1101 错误:‘ap_hack_apr_memcache_find_server’ 的上一个定义在此
exports.c:
1924 错误:‘ap_hack_apr_memcache_enable_server’ 重定义
exports.c:
1102 错误:‘ap_hack_apr_memcache_enable_server’ 的上一个定义在此
exports.c:
1925 错误:‘ap_hack_apr_memcache_disable_server’ 重定义
exports.c:
1103 错误:‘ap_hack_apr_memcache_disable_server’ 的上一个定义在此
exports.c:
1926 错误:‘ap_hack_apr_memcache_server_create’ 重定义
exports.c:
1104 错误:‘ap_hack_apr_memcache_server_create’ 的上一个定义在此
exports.c:
1927 错误:‘ap_hack_apr_memcache_create’ 重定义
exports.c:
1105 错误:‘ap_hack_apr_memcache_create’ 的上一个定义在此
exports.c:
1928 错误:‘ap_hack_apr_memcache_getp’ 重定义
exports.c:
1106 错误:‘ap_hack_apr_memcache_getp’ 的上一个定义在此
exports.c:
1929 错误:‘ap_hack_apr_memcache_add_multget_key’ 重定义
exports.c:
1107 错误:‘ap_hack_apr_memcache_add_multget_key’ 的上一个定义在此
exports.c:
1930 错误:‘ap_hack_apr_memcache_multgetp’ 重定义
exports.c:
1108 错误:‘ap_hack_apr_memcache_multgetp’ 的上一个定义在此
exports.c:
1931 错误:‘ap_hack_apr_memcache_set’ 重定义
exports.c:
1109 错误:‘ap_hack_apr_memcache_set’ 的上一个定义在此
exports.c:
1932 错误:‘ap_hack_apr_memcache_add’ 重定义
exports.c:
1110 错误:‘ap_hack_apr_memcache_add’ 的上一个定义在此
exports.c:
1933 错误:‘ap_hack_apr_memcache_replace’ 重定义
exports.c:
1111 错误:‘ap_hack_apr_memcache_replace’ 的上一个定义在此
exports.c:
1934 错误:‘ap_hack_apr_memcache_delete’ 重定义
exports.c:
1112 错误:‘ap_hack_apr_memcache_delete’ 的上一个定义在此
exports.c:
1935 错误:‘ap_hack_apr_memcache_incr’ 重定义
exports.c:
1113 错误:‘ap_hack_apr_memcache_incr’ 的上一个定义在此
exports.c:
1936 错误:‘ap_hack_apr_memcache_decr’ 重定义
exports.c:
1114 错误:‘ap_hack_apr_memcache_decr’ 的上一个定义在此
exports.c:
1937 错误:‘ap_hack_apr_memcache_version’ 重定义
exports.c:
1115 错误:‘ap_hack_apr_memcache_version’ 的上一个定义在此
exports.c:
1938 错误:‘ap_hack_apr_memcache_stats’ 重定义
exports.c:
1116 错误:‘ap_hack_apr_memcache_stats’ 的上一个定义在此
exports.c:
1943 错误:‘ap_hack_apr_dynamic_fn_register’ 重定义
exports.c:
1179 错误:‘ap_hack_apr_dynamic_fn_register’ 的上一个定义在此
exports.c:
1944 错误:‘ap_hack_apr_dynamic_fn_retrieve’ 重定义
exports.c:
1180 错误:‘ap_hack_apr_dynamic_fn_retrieve’ 的上一个定义在此
exports.c:
1949 错误:‘ap_hack_apr_optional_hook_add’ 重定义
exports.c:
1185 错误:‘ap_hack_apr_optional_hook_add’ 的上一个定义在此
exports.c:
1950 错误:‘ap_hack_apr_optional_hook_get’ 重定义
exports.c:
1186 错误:‘ap_hack_apr_optional_hook_get’ 的上一个定义在此
exports.c:
1956 错误:‘ap_hack_apr_queue_create’ 重定义
exports.c:
1323 错误:‘ap_hack_apr_queue_create’ 的上一个定义在此
exports.c:
1957 错误:‘ap_hack_apr_queue_push’ 重定义
exports.c:
1324 错误:‘ap_hack_apr_queue_push’ 的上一个定义在此
exports.c:
1958 错误:‘ap_hack_apr_queue_pop’ 重定义
exports.c:
1325 错误:‘ap_hack_apr_queue_pop’ 的上一个定义在此
exports.c:
1959 错误:‘ap_hack_apr_queue_trypush’ 重定义
exports.c:
1326 错误:‘ap_hack_apr_queue_trypush’ 的上一个定义在此
exports.c:
1960 错误:‘ap_hack_apr_queue_trypop’ 重定义
exports.c:
1327 错误:‘ap_hack_apr_queue_trypop’ 的上一个定义在此
exports.c:
1961 错误:‘ap_hack_apr_queue_size’ 重定义
exports.c:
1328 错误:‘ap_hack_apr_queue_size’ 的上一个定义在此
exports.c:
1962 错误:‘ap_hack_apr_queue_interrupt_all’ 重定义
exports.c:
1329 错误:‘ap_hack_apr_queue_interrupt_all’ 的上一个定义在此
exports.c:
1963 错误:‘ap_hack_apr_queue_term’ 重定义
exports.c:
1330 错误:‘ap_hack_apr_queue_term’ 的上一个定义在此
exports.c:
1970 错误:‘ap_hack_apr_reslist_create’ 重定义
exports.c:
1351 错误:‘ap_hack_apr_reslist_create’ 的上一个定义在此
exports.c:
1971 错误:‘ap_hack_apr_reslist_destroy’ 重定义
exports.c:
1352 错误:‘ap_hack_apr_reslist_destroy’ 的上一个定义在此
exports.c:
1972 错误:‘ap_hack_apr_reslist_acquire’ 重定义
exports.c:
1353 错误:‘ap_hack_apr_reslist_acquire’ 的上一个定义在此
exports.c:
1973 错误:‘ap_hack_apr_reslist_release’ 重定义
exports.c:
1354 错误:‘ap_hack_apr_reslist_release’ 的上一个定义在此
exports.c:
1974 错误:‘ap_hack_apr_reslist_timeout_set’ 重定义
exports.c:
1355 错误:‘ap_hack_apr_reslist_timeout_set’ 的上一个定义在此
exports.c:
1975 错误:‘ap_hack_apr_reslist_acquired_count’ 重定义
exports.c:
1356 错误:‘ap_hack_apr_reslist_acquired_count’ 的上一个定义在此
exports.c:
1976 错误:‘ap_hack_apr_reslist_invalidate’ 重定义
exports.c:
1357 错误:‘ap_hack_apr_reslist_invalidate’ 的上一个定义在此
exports.c:
1982 错误:‘ap_hack_apr_rmm_init’ 重定义
exports.c:
1363 错误:‘ap_hack_apr_rmm_init’ 的上一个定义在此
exports.c:
1983 错误:‘ap_hack_apr_rmm_destroy’ 重定义
exports.c:
1364 错误:‘ap_hack_apr_rmm_destroy’ 的上一个定义在此
exports.c:
1984 错误:‘ap_hack_apr_rmm_attach’ 重定义
exports.c:
1365 错误:‘ap_hack_apr_rmm_attach’ 的上一个定义在此
exports.c:
1985 错误:‘ap_hack_apr_rmm_detach’ 重定义
exports.c:
1366 错误:‘ap_hack_apr_rmm_detach’ 的上一个定义在此
exports.c:
1986 错误:‘ap_hack_apr_rmm_malloc’ 重定义
exports.c:
1367 错误:‘ap_hack_apr_rmm_malloc’ 的上一个定义在此
exports.c:
1987 错误:‘ap_hack_apr_rmm_realloc’ 重定义
exports.c:
1368 错误:‘ap_hack_apr_rmm_realloc’ 的上一个定义在此
exports.c:
1988 错误:‘ap_hack_apr_rmm_calloc’ 重定义
exports.c:
1369 错误:‘ap_hack_apr_rmm_calloc’ 的上一个定义在此
exports.c:
1989 错误:‘ap_hack_apr_rmm_free’ 重定义
exports.c:
1370 错误:‘ap_hack_apr_rmm_free’ 的上一个定义在此
exports.c:
1990 错误:‘ap_hack_apr_rmm_addr_get’ 重定义
exports.c:
1371 错误:‘ap_hack_apr_rmm_addr_get’ 的上一个定义在此
exports.c:
1991 错误:‘ap_hack_apr_rmm_offset_get’ 重定义
exports.c:
1372 错误:‘ap_hack_apr_rmm_offset_get’ 的上一个定义在此
exports.c:
1992 错误:‘ap_hack_apr_rmm_overhead_get’ 重定义
exports.c:
1373 错误:‘ap_hack_apr_rmm_overhead_get’ 的上一个定义在此
exports.c:
1997 错误:‘ap_hack_apr_sdbm_open’ 重定义
exports.c:
1378 错误:‘ap_hack_apr_sdbm_open’ 的上一个定义在此
exports.c:
1998 错误:‘ap_hack_apr_sdbm_close’ 重定义
exports.c:
1379 错误:‘ap_hack_apr_sdbm_close’ 的上一个定义在此
exports.c:
1999 错误:‘ap_hack_apr_sdbm_lock’ 重定义
exports.c:
1380 错误:‘ap_hack_apr_sdbm_lock’ 的上一个定义在此
exports.c:
2000 错误:‘ap_hack_apr_sdbm_unlock’ 重定义
exports.c:
1381 错误:‘ap_hack_apr_sdbm_unlock’ 的上一个定义在此
exports.c:
2001 错误:‘ap_hack_apr_sdbm_fetch’ 重定义
exports.c:
1382 错误:‘ap_hack_apr_sdbm_fetch’ 的上一个定义在此
exports.c:
2002 错误:‘ap_hack_apr_sdbm_store’ 重定义
exports.c:
1383 错误:‘ap_hack_apr_sdbm_store’ 的上一个定义在此
exports.c:
2003 错误:‘ap_hack_apr_sdbm_delete’ 重定义
exports.c:
1384 错误:‘ap_hack_apr_sdbm_delete’ 的上一个定义在此
exports.c:
2004 错误:‘ap_hack_apr_sdbm_firstkey’ 重定义
exports.c:
1385 错误:‘ap_hack_apr_sdbm_firstkey’ 的上一个定义在此
exports.c:
2005 错误:‘ap_hack_apr_sdbm_nextkey’ 重定义
exports.c:
1386 错误:‘ap_hack_apr_sdbm_nextkey’ 的上一个定义在此
exports.c:
2006 错误:‘ap_hack_apr_sdbm_rdonly’ 重定义
exports.c:
1387 错误:‘ap_hack_apr_sdbm_rdonly’ 的上一个定义在此
exports.c:
2011 错误:‘ap_hack_apr_sha1_base64’ 重定义
exports.c:
1392 错误:‘ap_hack_apr_sha1_base64’ 的上一个定义在此
exports.c:
2012 错误:‘ap_hack_apr_sha1_init’ 重定义
exports.c:
1393 错误:‘ap_hack_apr_sha1_init’ 的上一个定义在此
exports.c:
2013 错误:‘ap_hack_apr_sha1_update’ 重定义
exports.c:
1394 错误:‘ap_hack_apr_sha1_update’ 的上一个定义在此
exports.c:
2014 错误:‘ap_hack_apr_sha1_update_binary’ 重定义
exports.c:
1395 错误:‘ap_hack_apr_sha1_update_binary’ 的上一个定义在此
exports.c:
2015 错误:‘ap_hack_apr_sha1_final’ 重定义
exports.c:
1396 错误:‘ap_hack_apr_sha1_final’ 的上一个定义在此
exports.c:
2024 错误:‘ap_hack_apr_strmatch_precompile’ 重定义
exports.c:
1455 错误:‘ap_hack_apr_strmatch_precompile’ 的上一个定义在此
exports.c:
2030 错误:‘ap_hack_apr_thread_pool_create’ 重定义
exports.c:
1519 错误:‘ap_hack_apr_thread_pool_create’ 的上一个定义在此
exports.c:
2031 错误:‘ap_hack_apr_thread_pool_destroy’ 重定义
exports.c:
1520 错误:‘ap_hack_apr_thread_pool_destroy’ 的上一个定义在此
exports.c:
2032 错误:‘ap_hack_apr_thread_pool_push’ 重定义
exports.c:
1521 错误:‘ap_hack_apr_thread_pool_push’ 的上一个定义在此
exports.c:
2033 错误:‘ap_hack_apr_thread_pool_schedule’ 重定义
exports.c:
1522 错误:‘ap_hack_apr_thread_pool_schedule’ 的上一个定义在此
exports.c:
2034 错误:‘ap_hack_apr_thread_pool_top’ 重定义
exports.c:
1523 错误:‘ap_hack_apr_thread_pool_top’ 的上一个定义在此
exports.c:
2035 错误:‘ap_hack_apr_thread_pool_tasks_cancel’ 重定义
exports.c:
1524 错误:‘ap_hack_apr_thread_pool_tasks_cancel’ 的上一个定义在此
exports.c:
2036 错误:‘ap_hack_apr_thread_pool_tasks_count’ 重定义
exports.c:
1525 错误:‘ap_hack_apr_thread_pool_tasks_count’ 的上一个定义在此
exports.c:
2037 错误:‘ap_hack_apr_thread_pool_scheduled_tasks_count’ 重定义
exports.c:
1526 错误:‘ap_hack_apr_thread_pool_scheduled_tasks_count’ 的上一个定义在此
exports.c:
2038 错误:‘ap_hack_apr_thread_pool_threads_count’ 重定义
exports.c:
1527 错误:‘ap_hack_apr_thread_pool_threads_count’ 的上一个定义在此
exports.c:
2039 错误:‘ap_hack_apr_thread_pool_busy_count’ 重定义
exports.c:
1528 错误:‘ap_hack_apr_thread_pool_busy_count’ 的上一个定义在此
exports.c:
2040 错误:‘ap_hack_apr_thread_pool_idle_count’ 重定义
exports.c:
1529 错误:‘ap_hack_apr_thread_pool_idle_count’ 的上一个定义在此
exports.c:
2041 错误:‘ap_hack_apr_thread_pool_idle_max_set’ 重定义
exports.c:
1530 错误:‘ap_hack_apr_thread_pool_idle_max_set’ 的上一个定义在此
exports.c:
2042 错误:‘ap_hack_apr_thread_pool_idle_max_get’ 重定义
exports.c:
1531 错误:‘ap_hack_apr_thread_pool_idle_max_get’ 的上一个定义在此
exports.c:
2043 错误:‘ap_hack_apr_thread_pool_thread_max_set’ 重定义
exports.c:
1532 错误:‘ap_hack_apr_thread_pool_thread_max_set’ 的上一个定义在此
exports.c:
2044 错误:‘ap_hack_apr_thread_pool_thread_max_get’ 重定义
exports.c:
1533 错误:‘ap_hack_apr_thread_pool_thread_max_get’ 的上一个定义在此
exports.c:
2045 错误:‘ap_hack_apr_thread_pool_threshold_set’ 重定义
exports.c:
1534 错误:‘ap_hack_apr_thread_pool_threshold_set’ 的上一个定义在此
exports.c:
2046 错误:‘ap_hack_apr_thread_pool_threshold_get’ 重定义
exports.c:
1535 错误:‘ap_hack_apr_thread_pool_threshold_get’ 的上一个定义在此
exports.c:
2047 错误:‘ap_hack_apr_thread_pool_task_owner_get’ 重定义
exports.c:
1536 错误:‘ap_hack_apr_thread_pool_task_owner_get’ 的上一个定义在此
exports.c:
2053 错误:‘ap_hack_apr_uri_port_of_scheme’ 重定义
exports.c:
1635 错误:‘ap_hack_apr_uri_port_of_scheme’ 的上一个定义在此
exports.c:
2054 错误:‘ap_hack_apr_uri_unparse’ 重定义
exports.c:
1636 错误:‘ap_hack_apr_uri_unparse’ 的上一个定义在此
exports.c:
2055 错误:‘ap_hack_apr_uri_parse’ 重定义
exports.c:
1637 错误:‘ap_hack_apr_uri_parse’ 的上一个定义在此
exports.c:
2056 错误:‘ap_hack_apr_uri_parse_hostinfo’ 重定义
exports.c:
1638 错误:‘ap_hack_apr_uri_parse_hostinfo’ 的上一个定义在此
exports.c:
2061 错误:‘ap_hack_apr_uuid_get’ 重定义
exports.c:
1663 错误:‘ap_hack_apr_uuid_get’ 的上一个定义在此
exports.c:
2062 错误:‘ap_hack_apr_uuid_format’ 重定义
exports.c:
1664 错误:‘ap_hack_apr_uuid_format’ 的上一个定义在此
exports.c:
2063 错误:‘ap_hack_apr_uuid_parse’ 重定义
exports.c:
1665 错误:‘ap_hack_apr_uuid_parse’ 的上一个定义在此
exports.c:
2068 错误:‘ap_hack_apr_xlate_open’ 重定义
exports.c:
1678 错误:‘ap_hack_apr_xlate_open’ 的上一个定义在此
exports.c:
2069 错误:‘ap_hack_apr_xlate_sb_get’ 重定义
exports.c:
1679 错误:‘ap_hack_apr_xlate_sb_get’ 的上一个定义在此
exports.c:
2070 错误:‘ap_hack_apr_xlate_conv_buffer’ 重定义
exports.c:
1680 错误:‘ap_hack_apr_xlate_conv_buffer’ 的上一个定义在此
exports.c:
2074 错误:‘ap_hack_apr_xlate_conv_byte’ 重定义
exports.c:
1684 错误:‘ap_hack_apr_xlate_conv_byte’ 的上一个定义在此
exports.c:
2075 错误:‘ap_hack_apr_xlate_close’ 重定义
exports.c:
1685 错误:‘ap_hack_apr_xlate_close’ 的上一个定义在此
exports.c:
2080 错误:‘ap_hack_apr_text_append’ 重定义
exports.c:
1690 错误:‘ap_hack_apr_text_append’ 的上一个定义在此
exports.c:
2081 错误:‘ap_hack_apr_xml_parser_create’ 重定义
exports.c:
1691 错误:‘ap_hack_apr_xml_parser_create’ 的上一个定义在此
exports.c:
2082 错误:‘ap_hack_apr_xml_parse_file’ 重定义
exports.c:
1692 错误:‘ap_hack_apr_xml_parse_file’ 的上一个定义在此
exports.c:
2083 错误:‘ap_hack_apr_xml_parser_feed’ 重定义
exports.c:
1693 错误:‘ap_hack_apr_xml_parser_feed’ 的上一个定义在此
exports.c:
2084 错误:‘ap_hack_apr_xml_parser_done’ 重定义
exports.c:
1694 错误:‘ap_hack_apr_xml_parser_done’ 的上一个定义在此
exports.c:
2085 错误:‘ap_hack_apr_xml_parser_geterror’ 重定义
exports.c:
1695 错误:‘ap_hack_apr_xml_parser_geterror’ 的上一个定义在此
exports.c:
2086 错误:‘ap_hack_apr_xml_to_text’ 重定义
exports.c:
1696 错误:‘ap_hack_apr_xml_to_text’ 的上一个定义在此
exports.c:
2087 错误:‘ap_hack_apr_xml_empty_elem’ 重定义
exports.c:
1697 错误:‘ap_hack_apr_xml_empty_elem’ 的上一个定义在此
exports.c:
2088 错误:‘ap_hack_apr_xml_quote_string’ 重定义
exports.c:
1698 错误:‘ap_hack_apr_xml_quote_string’ 的上一个定义在此
exports.c:
2089 错误:‘ap_hack_apr_xml_quote_elem’ 重定义
exports.c:
1699 错误:‘ap_hack_apr_xml_quote_elem’ 的上一个定义在此
exports.c:
2090 错误:‘ap_hack_apr_xml_insert_uri’ 重定义
exports.c:
1700 错误:‘ap_hack_apr_xml_insert_uri’ 的上一个定义在此
exports.c:
2099 错误:‘ap_hack_apu_version’ 重定义
exports.c:
1709 错误:‘ap_hack_apu_version’ 的上一个定义在此
exports.c:
2100 错误:‘ap_hack_apu_version_string’ 重定义
exports.c:
1710 错误:‘ap_hack_apu_version_string’ 的上一个定义在此
make[
2 ]: *** [exports.lo] 错误  1
make[
2 ]: Leaving directory `/abc/setup/httpd- 2 . 2 . 17 /server '
make[ 1 ]: *** [ all - recursive 错误  1
make[
1 ]: Leaving directory `/abc/setup/httpd- 2 . 2 . 17 /server '
make: *** [ all - recursive 错误  1

解决方法

在./configure中添加如下命令

  Python Code 
1
-- with -included-apr

结果仍然报错

  这是我复制别人的,当时忘了保存,可能报错的路径有点区别
1
2
3
4
5
make[ 2 ]: *** [htpasswd] 错误  1
make[
2 ]: 离开目录“/home/admin/httpd/httpd- 2 . 4 . 12 /support”
make[
1 ]: *** [ all -recursive] 错误  1
make[
1 ]: 离开目录“/home/admin/httpd/httpd- 2 . 4 . 12 /support”
make: *** [
all -recursive] 错误  1


解决办法
#mv /usr/lib/libm.a /usr/lib/libm.a.bak
#mv /usr/lib/libm.so /usr/lib/libm.so.bak
#mv /usr/lib/libexpat.so /usr/lib/libexpat.so.bak
#ln -s /usr/lib64/libm.a /usr/lib/libm.a
#ln -s /usr/lib64/libm.so /usr/lib/libm.so
#ln -s /usr/lib64/libexpat.so /usr/lib/libexpat.so

分析
由于我的CENTOS 是 64bit的,在编译配置中并没有指定 --with-included-apr的具体引用路径,导致找不到相应的库文件,而 --with-included-apr 默认是查找/usr/lib下的库文件,而,正确的引用应该是/usr/lib64下的。这类情况在64bit下非常常见

哦,解决完了,成功安装

编译安装apache,常见问题整理


enjoy it ~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值