Trình biên dịch mã nguồn của Apache Web Server luôn luôn vui vẻ.


Nó rất hiếm khi Apache sẽ được biên dịch trong lần chạy đầu tiên trên một máy chủ hoàn toàn mới.

Thực tế là nó đòi hỏi rất nhiều điều kiện tiên quyết và nếu bất kỳ trong số chúng bị thiếu hoặc tương thích phiên bản thì bạn có thể phải mất rất nhiều thời gian để sửa chúng.

Tôi đang làm việc trên máy chủ hoàn toàn mới Linux 6.4 để cài đặt Apache 2.4.6 và gặp phải lỗi sau.

xuất khẩu.c: 1929:
lỗi: xác định lại ‘ap_hack_apr_allocator_create’
export.c: 921: lưu ý: định nghĩa trước đây của ‘ap_hack_apr_allocator_create’ đã ở đây export.c: 1930:
lỗi: xác định lại ‘ap_hack_apr_allocator_destroy’
export.c: 922: lưu ý: định nghĩa trước đây của ‘ap_hack_apr_allocator_destroy’ đã ở đây export.c: 1931:
lỗi: xác định lại ‘ap_hack_apr_allocator_alloc’ export.c: 923: lưu ý: định nghĩa trước của ‘ap_hack_apr_allocator_alloc’ đã xuất khẩu ở đây.c: 1932:
lỗi: xác định lại ‘ap_hack_apr_allocator_free’ export.c: 924: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_allocator_free’ đã xuất khẩu ở đây.c: 1933:
lỗi: xác định lại ‘ap_hack_apr_allocator_owner_set’
export.c: 925: lưu ý: định nghĩa trước đây của ‘ap_hack_apr_allocator_owner_set’ đã ở đây export.c: 1934:
lỗi: xác định lại ‘ap_hack_apr_allocator_owner_get’ export.c: 926: lưu ý: định nghĩa trước của ‘ap_hack_apr_allocator_owner_get’ đã xuất khẩu ở đây.c: 1935:
lỗi: xác định lại ‘ap_hack_apr_allocator_max_free_set’ export.c: 927: lưu ý: định nghĩa trước của ‘ap_hack_apr_allocator_max_free_set’ đã xuất khẩu ở đây.c: 1937:
lỗi: xác định lại ‘ap_hack_apr_allocator_mutex_set’ export.c: 929: lưu ý: định nghĩa trước của ‘ap_hack_apr_allocator_mutex_set’ đã xuất khẩu ở đây.c: 1938:
lỗi: xác định lại ‘ap_hack_apr_allocator_mutex_get’ export.c: 930: lưu ý: định nghĩa trước của ‘ap_hack_apr_allocator_mutex_get’ đã xuất khẩu ở đây.c: 1944:
lỗi: xác định lại ‘ap_hack_apr_atomic_init’ export.c: 936: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_atomic_init’ đã xuất khẩu ở đây.c: 1945:
lỗi: xác định lại ‘ap_hack_apr_atomic_read32’ export.c: 937: lưu ý: định nghĩa trước của ‘ap_hack_apr_atomic_read32’ đã xuất khẩu ở đây.c: 1946:
lỗi: xác định lại ‘ap_hack_apr_atomic_set32’ export.c: 938: lưu ý: định nghĩa trước của ‘ap_hack_apr_atomic_set32’ đã xuất khẩu ở đây.c: 1947:
lỗi: xác định lại ‘ap_hack_apr_atomic_add32’ export.c: 939: lưu ý: định nghĩa trước về ‘ap_hack_apr_atomic_add32’ đã xuất khẩu ở đây.c: 1948:
lỗi: xác định lại ‘ap_hack_apr_atomic_sub32’ export.c: 940: lưu ý: định nghĩa trước của ‘ap_hack_apr_atomic_sub32’ đã xuất khẩu ở đây.c: 1949:
lỗi: xác định lại ‘ap_hack_apr_atomic_inc32’ export.c: 941: lưu ý: định nghĩa trước của ‘ap_hack_apr_atomic_inc32’ đã xuất khẩu ở đây.c: 1950:
lỗi: xác định lại ‘ap_hack_apr_atomic_dec32’ export.c: 942: lưu ý: định nghĩa trước của ‘ap_hack_apr_atomic_dec32’ đã xuất khẩu ở đây.c: 1951:
lỗi: xác định lại ‘ap_hack_apr_atomic_cas32’ export.c: 943: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_atomic_cas32’ đã xuất khẩu ở đây.c: 1952:
lỗi: xác định lại ‘ap_hack_apr_atomic_xchg32’ export.c: 944: lưu ý: định nghĩa trước về ‘ap_hack_apr_atomic_xchg32’ đã xuất khẩu ở đây.c: 1953:
lỗi: xác định lại ‘ap_hack_apr_atomic_casptr’ export.c: 945: lưu ý: định nghĩa trước về ‘ap_hack_apr_atomic_casptr’ đã xuất khẩu ở đây.c: 1954:
lỗi: xác định lại ‘ap_hack_apr_atomic_xchgptr’ export.c: 946: lưu ý: định nghĩa trước của ‘ap_hack_apr_atomic_xchgptr’ đã xuất khẩu ở đây.c: 1960:
lỗi: xác định lại ‘ap_hack_apr_dso_load’ export.c: 1085: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_dso_load’ đã ở đây export.c: 1961:
lỗi: xác định lại ‘ap_hack_apr_dso_unload’ export.c: 1086: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_dso_unload’ đã xuất khẩu ở đây.c: 1962:
lỗi: xác định lại ‘ap_hack_apr_dso_sym’ export.c: 1087: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_dso_sym’ đã ở đây export.c: 1963:
lỗi: xác định lại ‘ap_hack_apr_dso_error’ export.c: 1088: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_dso_error’ đã ở đây export.c: 1969:
lỗi: xác định lại ‘ap_hack_apr_env_get’ export.c: 1094: lưu ý: định nghĩa trước đây của ‘ap_hack_apr_env_get’ đã ở đây export.c: 1970:
lỗi: xác định lại ‘ap_hack_apr_env_set’ export.c: 1095: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_env_set’ đã ở đây export.c: 1971:
lỗi: xác định lại ‘ap_hack_apr_env_delete’ export.c: 1096: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_env_delete’ đã xuất khẩu ở đây.c: 1976:
lỗi: xác định lại ‘ap_hack_apr_strerror’ export.c: 1101: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_strerror’ đã ở đây export.c: 1981:
lỗi: xác định lại ‘ap_hack_apr_stat’ export.c: 1106: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_stat’ đã ở đây export.c: 1982:
lỗi: xác định lại ‘ap_hack_apr_dir_open’ export.c: 1107: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_dir_open’ đã xuất khẩu ở đây.c: 1983:
lỗi: xác định lại ‘ap_hack_apr_dir_close’ export.c: 1108: lưu ý: định nghĩa trước đó của ‘ap_hack_apr_dir_close’ đã ở đây

Nếu bạn gặp một lỗi tương tự, bạn có thể sửa nó như tôi đã làm bằng cách làm theo.

Giải pháp

Sau khi xem xét các thông số khác nhau, tôi nhận thấy điều này xảy ra khi bạn có phiên bản thấp hơn apr-produc so với 1.4.1

  • Xác nhận phiên bản apr-produc của bạn. Nếu bạn tìm thấy phiên bản thấp hơn, thì bạn phải cài đặt phiên bản 1.4.1 trở lên
  • Tải xuống mã nguồn apr-produc từ http://mirror.nus.edu.sg/apache/apr/
  • Giải nén tập tin đã tải xuống

Biên dịch và cài đặt như sau

./ cấu hình
làm
cài đặt

Theo mặc định, nó sẽ cài đặt theo / usr / local / apr / bin / apu-1-config

Bây giờ bạn có thể biên dịch apache với apr-produc mới được cài đặt và nó sẽ ổn thôi.

./ configure –with-apr-produc = / usr / local / apr / bin / apu-1-config

Nó giúp tôi và tôi cũng hy vọng bạn.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me