编译安装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 ~

你可能感兴趣的:(编译安装apache,常见问题整理)