अपाचे ubuntu और आर्च लिनेक्स पर अलग है


0

मेरे पास एक ubuntu सर्वर और एक आर्क लिनक्स मशीन है। मैंने ubuntu पर अपाचे सेटअप के लिए काफी इस्तेमाल किया है। यह सरल और कुशल है। हालांकि, अपने मेहराब पर एपाचे 2 स्थापित करने पर, मैंने देखा कि सब कुछ अलग है। डेमॉन का भी यही नाम नहीं है। क्या कोई मुझे समझा सकता है:

1: क्यों सब कुछ इतना अलग है

2: मैं कैसे आर्क पर ubuntu apache प्राप्त कर सकते हैं


1
आपका सवाल वैसे भी व्यापक है। "सब कुछ अलग है" स्पष्ट रूप से पूरी तरह से असत्य है। यह अभी भी अपाचे है। यह दोनों सिस्टम पर समान विन्यास फाइल लेगा । मौजूदा उत्तरों पर आपकी टिप्पणियों से ऐसा प्रतीत होता है कि आप मुख्य रूप से शिप की गई कॉन्फ़िगरेशन फ़ाइलों के बारे में भ्रमित हैं। वे पत्थर में सेट नहीं हैं। आप उन्हें अपनी पसंद से किसी भी तरह से बदल सकते हैं। आप वाइल्डकार्ड सेट कर सकते हैं जिसमें स्वयं और व्हाट्सएप शामिल हैं।
डैनियल बी

@GmanSmith मैं वर्तमान में एक बहुत लंबा जवाब लिख रहा हूं, लेकिन सवाल यह है कि आप क्यों बदलना चाहते हैं?
अंतिम संस्कार

@funilrys मेरे पास कुछ उपकरण हैं जो अपाचे के आर्क सेटअप के साथ सहयोग नहीं करते हैं
Gman Smith

1
@funilrys उपकरणों की एक विस्तृत विविधता, मैं अपने उत्तर tho से मुझे क्या करने की जरूरत है, का एक अच्छा विचार है, मैं इसे काम कर रहा है, धन्यवाद मिल गया है !! ^ ^
गैमन स्मिथ

जवाबों:


2

अन्य उत्तर उबंटू / डेबियन और आर्क लिनक्स के बीच अंतर के बारे में काफी अच्छे हैं, लेकिन वे वास्तव में "तकनीकी रूप से उन्मुख" नहीं हैं ... मैं एक विशेषज्ञ नहीं हूं, मैं सिर्फ एक कट्टर उपयोगकर्ता और AUR अनुरक्षक हूं लेकिन मैं ' मैं इस अधिक "तकनीकी रूप से" का जवाब देने की पूरी कोशिश करने वाला हूं।

कृपया निम्नलिखित पर विचार करें क्योंकि मैं केवल मतभेदों के बारे में बात नहीं कर रहा हूं (और मैं अभी भी नहीं किया गया हूं लेकिन मुख्य अंतर हैं)। वास्तव में, जैसा कि मुझे समझ नहीं आ रहा है कि ओपी को बदलने की आवश्यकता क्यों है, मैं ठीक से ओपी प्रश्न के दूसरे भाग का जवाब नहीं दे सकता हूं।

जैसा कि मैं एक पूर्णकालिक उबंटू / डेबियन उपयोगकर्ता नहीं हूं, इस उत्तर में डेबियन / उबंटू स्पष्टीकरण के आसपास कुछ कमी हो सकती है।


differencies

PKGBUILD

एक आर्क उपयोगकर्ता और AUR में से एक के रूप में पहले मैं यह करता हूं और पहली बात यह है कि प्रत्येक आर्क उपयोगकर्ता को ऐसा करना चाहिए जब ऐसा प्रश्न प्रकट होता है अपाचे पैकेज के PKGBUILD को पढ़ने के लिए जो यहां पाया जा सकता है

इसलिए जिस समय मैं यह लिखता हूं, यह निम्नलिखित की तरह दिखता है

# $Id$
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>

pkgname=apache
pkgver=2.4.27
pkgrel=1
pkgdesc='A high performance Unix-based HTTP server'
arch=('i686' 'x86_64')
url='http://www.apache.org/dist/httpd'
license=('APACHE')
backup=(
    etc/httpd/conf/httpd.conf
    etc/httpd/conf/extra/httpd-{autoindex,dav,default,info,languages}.conf
    etc/httpd/conf/extra/httpd-{manual,mpm,multilang-errordoc}.conf
    etc/httpd/conf/extra/httpd-{ssl,userdir,vhosts}.conf
    etc/httpd/conf/extra/proxy-html.conf
    etc/httpd/conf/{mime.types,magic}
    etc/logrotate.d/httpd
)
depends=('zlib' 'apr-util' 'pcre' 'libnghttp2' 'openssl')
makedepends=('libxml2' 'lua')
optdepends=(
    'lua: for mod_lua module'
    'libxml2: for mod_proxy_html, mod_xml2enc modules'
    'lynx: apachectl status'
)
source=(
    https://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2{,.asc}
    openssl-malloc-init.patch
    apache.tmpfiles.conf
    httpd.logrotate
    httpd.service
    arch.layout
)
sha256sums=('71fcc128238a690515bd8174d5330a5309161ef314a326ae45c7c15ed139c13a'
            'SKIP'
            'd305f8b52ac2a9bbda7bb0776496471e69e9d30642740f594d00086a8c7e344c'
            '63da1a420f4714a3e7af2672d28384419cc7eedbe7bf35baebd02938fabc15bf'
            '0bbbfae23a917b2fce0bf8f900f60319b50769224a96314e9301a75ccd078e16'
            'f574bac6d5f398e7a649fc0e1ca66ff01ad4ef34dac71258e93d8a9d9a2b3960'
            'dda05c6e76f12624e418ca18a36f2e90ec1c5b1cc52fed7142fce6076ec413f3')
validpgpkeys=('A93D62ECC3C8EA12DB220EC934EA76E6791485A8') # Jim Jagielski

prepare() {
  cd httpd-${pkgver}

  # set default user
  sed -e 's#User daemon#User http#' \
      -e 's#Group daemon#Group http#' \
      -i docs/conf/httpd.conf.in

  cat "${srcdir}/arch.layout" >> config.layout

  # https://github.com/openssl/openssl/issues/2865
  patch -Np1 -i ../openssl-malloc-init.patch
}

build() {
  cd httpd-${pkgver}

  ./configure --sbindir=/usr/bin \
      --enable-layout=Arch \
      --enable-mpms-shared=all \
      --enable-modules=all \
      --enable-mods-shared=all \
      --enable-so \
      --enable-suexec \
      --with-suexec-caller=http \
      --with-suexec-docroot=/srv/http \
      --with-suexec-logfile=/var/log/httpd/suexec.log \
      --with-suexec-bin=/usr/bin/suexec \
      --with-suexec-uidmin=99 --with-suexec-gidmin=99 \
      --enable-ldap --enable-authnz-ldap --enable-authnz-fcgi \
      --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \
      --enable-ssl --with-ssl \
      --enable-deflate --enable-cgi --enable-cgid \
      --enable-proxy --enable-proxy-connect \
      --enable-proxy-http --enable-proxy-ftp \
      --enable-dbd --enable-imagemap --enable-ident --enable-cern-meta \
      --enable-lua --enable-xml2enc --enable-http2 \
      --with-apr=/usr/bin/apr-1-config \
      --with-apr-util=/usr/bin/apu-1-config \
      --with-pcre=/usr

  make
}

package() {
  cd httpd-${pkgver}

  make DESTDIR="${pkgdir}" install

  install -D -m644 "${srcdir}/httpd.logrotate" "${pkgdir}/etc/logrotate.d/httpd"
  install -D -m644 "${srcdir}/apache.tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/apache.conf"
  install -D -m644 "${srcdir}/httpd.service" "${pkgdir}/usr/lib/systemd/system/httpd.service"
  install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

  # symlinks for /etc/httpd
  # do we really need this symlink?
  ln -fs /usr/lib/httpd/modules "${pkgdir}/etc/httpd/modules"

  # set sane defaults
  sed -e 's#/usr/lib/httpd/modules/#modules/#' \
      -e 's|#\(LoadModule negotiation_module \)|\1|' \
      -e 's|#\(LoadModule include_module \)|\1|' \
      -e 's|#\(LoadModule userdir_module \)|\1|' \
      -e 's|#\(LoadModule slotmem_shm_module \)|\1|' \
      -e 's|#\(Include conf/extra/httpd-multilang-errordoc.conf\)|\1|' \
      -e 's|#\(Include conf/extra/httpd-autoindex.conf\)|\1|' \
      -e 's|#\(Include conf/extra/httpd-languages.conf\)|\1|' \
      -e 's|#\(Include conf/extra/httpd-userdir.conf\)|\1|' \
      -e 's|#\(Include conf/extra/httpd-default.conf\)|\1|' \
      -e 's|#\(Include conf/extra/httpd-mpm.conf\)|\1|' \
      -i "${pkgdir}/etc/httpd/conf/httpd.conf"

  # cleanup
  rm -r "${pkgdir}/usr/share/httpd/manual"
  rm -r "${pkgdir}/etc/httpd/conf/original"
  rm -r "${pkgdir}/srv/"
  rm -r "${pkgdir}/run"
}

prepare()

prepare()भाग काफी रोचक है जैसा कि हम देखेंगे क्या हो रहा है ...

उपयोगकर्ता प्रतिस्थापन

पहले, हम निम्नलिखित के साथ डिफ़ॉल्ट उपयोगकर्ता को बदलते हैं ...

# set default user
  sed -e 's#User daemon#User http#' \
      -e 's#Group daemon#Group http#' \
      -i docs/conf/httpd.conf.in

वास्तव में जैसा कि हम आधिकारिक अपाचे रिपॉजिटरी में देख सकते हैं कि डिफ़ॉल्ट समूह और उपयोगकर्ता निम्नलिखित हैं जो हमें आर्क लिनक्स और अन्य वितरण के बीच पहला अंतर दिखाते हैं।

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon

कस्टम आर्क लेआउट का जोड़

इससे पहले कि हम निम्नलिखित जारी रखें मुझे अपाचे लेआउट के बारे में बात करने दें। अपाचे में डिफ़ॉल्ट रूप से स्वयं का लेआउट शामिल है लेकिन विभिन्न वितरणों के अनुसार कुछ लेआउट भी हैं। यह मुख्य रूप से एक वितरण से दूसरे में इतना भिन्न क्यों है। दरअसल, अपाचे वितरण के अनुसार कस्टम निर्देशिका और "आर्किटेक्चर" संरचना की अनुमति देने के लिए फ़ाइल config.layout का उपयोग करता है ।

अपाचे विकी को उद्धृत करने के लिए दूसरे शब्द में :

कई तृतीय-पक्ष वितरक स्थानीय नीतियों के अनुरूप लेआउट बदलते हैं।

डिफ़ॉल्ट यहांconfig.layout पाया जा सकता है । दरअसल, जैसा कि आप देख सकते हैं कि आर्क लेआउट डिफ़ॉल्ट config.layoutफ़ाइल में नहीं है, इसलिए हमारे पास लाइन है:

cat "${srcdir}/arch.layout" >> config.layout
आइए डेबियन / उबंटू लेआउट की तुलना आर्क लेआउट से करें

तो यहां डिफ़ॉल्ट डेबियन लेआउट है (उस समय मैं इसे लिखता हूं)

<Layout Debian>
    prefix:
    exec_prefix:   ${prefix}/usr
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/lib/apache2/modules
    mandir:        ${exec_prefix}/share/man
    sysconfdir:    ${prefix}/etc/apache2
    datadir:       ${exec_prefix}/share/apache2
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${prefix}/usr/share/apache2/default-site/htdocs
    manualdir:     ${htdocsdir}/manual
    cgidir:        ${prefix}/usr/lib/cgi-bin
    includedir:    ${exec_prefix}/include/apache2
    localstatedir: ${prefix}/var/lock/apache2
    runtimedir:    ${prefix}/var/run/apache2
    logfiledir:    ${prefix}/var/log/apache2
    proxycachedir: ${prefix}/var/cache/apache2/proxy
    infodir:       ${exec_prefix}/share/info
    installbuilddir: ${prefix}/usr/share/apache2/build
    errordir:      ${datadir}/error
</Layout>

और यहाँ आर्क आर्क आधिकारिक पैकेज से लिया लेआउट :

<Layout Arch>
    prefix:          /etc/httpd
    exec_prefix:     /usr
    bindir:          /usr/bin
    sbindir:         /usr/bin
    libdir:          /usr/lib/httpd
    libexecdir:      /usr/lib/httpd/modules
    mandir:          /usr/share/man
    sysconfdir:      /etc/httpd/conf
    datadir:         /usr/share/httpd
    installbuilddir: /usr/lib/httpd/build
    errordir:        /usr/share/httpd/error
    iconsdir:        /usr/share/httpd/icons
    htdocsdir:       /srv/http
    manualdir:       /usr/share/httpd/manual
    cgidir:          /srv/http/cgi-bin
    includedir:      /usr/include/httpd
    localstatedir:   /var
    runtimedir:      /run/httpd
    logfiledir:      /var/log/httpd
    proxycachedir:   /var/cache/httpd
</Layout>

मैं हर चीज का विवरण नहीं दे रहा हूं क्योंकि मुझे लगता है कि यह जरूरी नहीं है क्योंकि हम प्रलेखन या कहीं और अधिक जानकारी पा सकते हैं ।

हम यहां देख सकते हैं कि यह बहुत अलग है। तो यह आर्क और उबंटू / डेबियन अपाचे पैकेज के बीच अंतर के बारे में लगभग सब कुछ बताता है।

build()

मैंने पाया कि डेबियन / उबंटू के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन क्या है, लेकिन मुझे कुछ भी निश्चित नहीं मिला इसलिए यदि आप जानते हैं, तो कृपया इसे जोड़ने और / या इस भाग / उत्तर के लिए एक टिप्पणी छोड़ने के लिए स्वतंत्र महसूस करें।

दूसरी सबसे महत्वपूर्ण बात यह है कि अपाचे जिस तरह से बनाया और कॉन्फ़िगर किया गया है और जो एक वितरण से दूसरे में भिन्न हो सकता है।

आर्क लिनक्स इसे निम्नलिखित के साथ कॉन्फ़िगर करने का चयन करता है जो मुझे लगता है कि डेबियन से अलग होना चाहिए। आप यहाँ कॉन्फ़िगर तर्कों के बारे में और जानकारी प्राप्त कर सकते हैं

./configure --sbindir=/usr/bin \
    --enable-layout=Arch \
    --enable-mpms-shared=all \
    --enable-modules=all \
    --enable-mods-shared=all \
    --enable-so \
    --enable-suexec \
    --with-suexec-caller=http \
    --with-suexec-docroot=/srv/http \
    --with-suexec-logfile=/var/log/httpd/suexec.log \
    --with-suexec-bin=/usr/bin/suexec \
    --with-suexec-uidmin=99 --with-suexec-gidmin=99 \
    --enable-ldap --enable-authnz-ldap --enable-authnz-fcgi \
    --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \
    --enable-ssl --with-ssl \
    --enable-deflate --enable-cgi --enable-cgid \
    --enable-proxy --enable-proxy-connect \
    --enable-proxy-http --enable-proxy-ftp \
    --enable-dbd --enable-imagemap --enable-ident --enable-cern-meta \
    --enable-lua --enable-xml2enc --enable-http2 \
    --with-apr=/usr/bin/apr-1-config \
    --with-apr-util=/usr/bin/apu-1-config \
    --with-pcre=/usr

3
  1. स्टार्ट, स्टॉप एंड रिस्टार्ट अपाचे 2 वेब सर्वर कमांड कई लिनक्स डिस्ट्रोस और यूनिक्स संस्करणों पर अलग है, जैसा कि यहां दिखाया गया है (सबसे ऊपर की तारीख की सूची नहीं, लेकिन फिर भी)। इसके ऐतिहासिक कारण हैं और साथ ही कुछ अज्ञात कारण भी हैं। नामकरण, स्थान और नियंत्रण आदेशों के अलावा, अपाचे (2.x) वेबसर्वर सभी मौजूदा लिनक्स संस्करणों पर बहुत समान है जब यह विन्यास, क्षमताओं, आदि की बात आती है ।
  2. आप शेल स्क्रिप्ट बनाने की कोशिश कर सकते हैं जो आपके द्वारा उपयोग की जाने वाली कमांड की नकल करते हैं। अन्यथा मुझे नहीं लगता कि आप बहुत कुछ कर सकते हैं।

विन्यास प्रणाली काफी अलग लगती है, न कि केवल कमांड। एक उदाहरण के लिए, कई वर्चुअल होस्ट फ़ाइलों का होना संभव नहीं लगता है, लेकिन आप सभी वर्चुअल होस्ट्स को एक फ़ाइल में रख सकते हैं
Gman Smith

आप सही हैं, वर्चुअल होस्ट फ़ाइलों के बजाय आर्क सेंट्रल /etc/httpd/conf/extra/httpd-vhosts.conf का उपयोग करता है। हालाँकि, व्यक्तिगत होस्ट का विन्यास बहुत अधिक है।
wp78de

समस्या यह है कि मेरे पास कुछ उपकरण हैं जो कई वर्चुअल होस्ट फ़ाइलों पर निर्भर हैं, और मैं इन उपकरणों को छोड़ने से नफरत करूंगा यदि इससे बचने का एक तरीका है
Gman Smith

2
हम मूल प्रश्न से अधिक से अधिक विचलन करते हैं, लेकिन आप अन्य निर्देश फ़ाइलों को शामिल करने के लिए निर्देश का उपयोग कर सकते हैं और अपना मुख्य
कॉन्फिगरेशन

0

मैंने स्वयं आर्क लिनक्स का कभी उपयोग नहीं किया है, लेकिन आपके प्रश्न ने मुझे परेशान कर दिया है।

AL और विशेष रूप से उनके पैकेज मैनेजर, pacman के लिए डॉक्स पढ़ने से, मुझे यह आभास होता है कि उनके पास सख्त नियम हैं कि कैसे चीजों को किया जाना चाहिए, उनके अनुसार "उनके सामने रखें" के अनुसार सेट करें जैसा कि उनके फ्रंट पेज पर देखा गया है । उदाहरण के लिए, उनके पैकेज मानकों पर एक नज़र है ; यह पहली बार है जब मैंने किसी भी लिनक्स सिस्टम के लिए ऐसा मानक देखा है। काश अन्य वितरण उनके पास होते (या उन्हें और अधिक स्पष्ट करते)।

AL पर उबंटू-स्वाद वाला अपाचे 2 प्राप्त करने के लिए, मैं कहूंगा "नहीं"। यदि उनके पास एक अच्छी तरह से कार्य प्रणाली है जहाँ चीजों को स्थापित किया जाना चाहिए आदि, मैं उनकी सिफारिशों का पालन करूँगा और इसके बजाय सिस्टम का उपयोग करना सीखूँगा। यदि आप समस्याओं में भाग लेते हैं और सहायता के लिए पूछते हैं, तो वे आपको मानक पैकेजों को स्थापित करने के लिए कहेंगे।


आर्क नियम केवल "बहुत ज्यादा मत करो" के लिए नीचे उबालें; वे उबंटू और डेबियन की तरह सख्त और व्यापक नहीं हैं । लेकिन इसी तरह, डेबियन / उबंटू में अपाचे सहायकों का एक बहुत व्यापक सेट है, जबकि आर्क / etc / httpd के लिए अनलस्टेड अपस्ट्रीम लेआउट के साथ चिपक जाता है।
ग्रेविटी

सहमत, मैं यह भी तर्क दूंगा कि आपको आर्क पर "स्टॉक" अपाचे / httpd मिलता है।
wp78de
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.