Soru Apache'yi belirli bir sürüme nasıl yükleyebilirim?


Ubuntu güncellemesinden dolayı Apache 2.2'yi 2.4'e yükseltme hatasını yaptım — birçok şey ters gitti.

Sonra sürümü nasıl belirleyeceğimi bilmiyorum apt-get remove apache2. apt-get install apache2 her zaman 2.4 yükler.

Nasıl yapabilirim?


24
2017-10-09 05:55


Menşei




Cevaplar:


Aşağıdakileri yapmanız gerekir:

apt-cache showpkg <pachagename>

Yukarıdaki komut, bu paket için mevcut sürümlerin listesini görüntüler. Sonra gerekli sürümü seçin ve aşağıdakileri yapın.

apt-get install <packagename>=<complete version name>

Örnek:

apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7

20
2017-10-09 06:17



Ubuntu 16'da bana ait olan tek sürüm 2.4. Bu büyük bir problem. Çünkü 2.4 sitemi tamamen bozmuş sorunları biliyor. - felwithe
Apache2 için Sürüm 2.2.14-5ubuntu8.7 bulunamadı - Braian Mellor
Teşekkürler - Bu PPA rotası gitmeye çalışmaktan daha iyi çalıştı. - M Thomas


Ubuntu howto bakın paket iğneleme:

Dosya düzenle /etc/apt/preferences

'Tercihler' dosyası, gerçek sabitlemenin gerçekleştiği yerdir. Bir paketi sabitlemek için Pin Önceliğini yüksek sayıya ayarlayın. İşte bir örnek:

Package: apache2
Pin: release n=raring
Pin-Priority: 1000

Çalışmadan önce test edin apt-get update veya apt-get install ile apt-cache policy apache2

Görmek man apt_preferences detaylar için. Sabitlemeyi seçtim raringsalıverilmeye başlandı, çünkü bu şekilde 2.2.x dalında hala güncellemeler alacaksınız. Ekleyerek paketi APT'ye sunmanız gerektiğini unutmayın. raringdepo URL’leri.

Güncelleştirme:

Gibi raring EOL, hala destekli kullanabilirsiniz precise veya arşivlenmiş raring paketleri http://old-releases.ubuntu.com.

Bunu kullanarak /etc/apt/sources.list.d/raring.list eski paketleri yüklemenizi sağlar:

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse

4
2017-10-09 06:26



Merhaba. Bu tam olarak istediğim gibi görünüyor. Ayrıca, raring'in depo URL'lerini eklemek için de komut ekleyebilir misiniz? Doğru olanları bulamıyorum. - Ravish Bhagdev
Cevabımı güncelledim. - fuero
Güzel yakalama, APT yansıtma listesini düzeltdim raring. Tabii ki kullanmak istiyorsan precise versiyon, /etc/apt/preferences buna göre de değiştirilmelidir. - fuero
Çok teşekkürler. Her neyse, solucanların bir parçası olmak için ... VM rotasını, belirtilen adımları uyguladıktan sonra takip etmeyi (ve ayrıca, -f seçeneğini ve temizlemeyi denemeyi) almak zorunda kalacaklar. Aşağıdaki paketler, karşılanmamış bağımlılıklara sahip. apache2: Bağımlıdır: apache2-mpm-worker (= 2.2.22-1ubuntu1.7), ancak yüklenmeyecek veya apache2-mpm-prefork (= 2.2.22-1ubuntu1.7) olmayacaktır. yüklü veya .... vb etc - Ravish Bhagdev


Apache 2.2'yi, depolarda bulunmayan bir Ubuntu dağıtımına nasıl kurabilirim.

Gereksinimler

Bunu yapmak için gerekli temel paketini yüklemeniz gerekir.

~# sudo apt-get install build-essential

Apache'ye çıktıyı destekleyen tarayıcılara sıkıştırmak için zlib yüklemeniz gerekir. Mevcut sürümü indir zlip Hompage (zlib-1.2.11.tar.gz yazarak), ayıklayın, ayıklanan klasöre gidin, kurun ve yükleyin.

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local
make
sudo make install

Apache 2.2'yi yükle

Curent sürümünü Apache İndirme Sayfası (httpd-2.2.32.tar.gz yazarak), ayıklayın, ayıklanan klasöre gidin, kurun ve yükleyin.

wget http://www-eu.apache.org/dist/httpd/httpd-2.2.32.tar.gz
tar -xvf httpd-2.2.32.tar.gz
cd httpd-2.2.32/
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
sudo make install

Apache'yi başlat:

sudo /usr/local/apache2/bin/apachectl start

Her şey yolunda mı, kontrol et

Şu yöne rotayı ayarla http: // localhost tarayıcınızda, “Çalışıyor!” yazan bir mesaj görmelisiniz.

Bu arada, terminal aracılığıyla bunu yapabilirsiniz:

wget -qO- http://localhost | grep "It works!"

Terminalde böyle bir şey çıktılar:

<html><body><h1>It works!</h1></body></html>

Apache2 için "servis" oluştur

sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22

İpucu: apachectl ile sudo hizmeti apache22 şimdi.

Apache'yi açılışta başlat

sudo sed -i '2i #\n### BEGIN INIT INFO\n# Provides:             apache2\n# Required-Start:       $remote_fs\n# Required-Stop:        $remote_fs\n# Default-Start:        2 3 4 5\n# Default-Stop:         0 1 6\n# Description:          apache2\n# Short-Description:    The Apache webserver\n### END INIT INFO' /etc/init.d/apache22
sudo /usr/sbin/update-rc.d apache22 defaults

Güvenli Apache

sudo service apache22 stop
sudo adduser --system apache
sed -i -e 's/User daemon/User apache/g' /usr/local/apache2/conf/httpd.conf
sed -i -e 's/Group daemon/Group nogroup/g' /usr/local/apache2/conf/httpd.conf
sudo service apache22 start

Yeni ayarları kontrol et

ps -aux | grep httpd

Son komutun terminal çıkışı "apache" ile başlayan bazı çizgiler gösteriyorsa, her şey yolundadır.

Sitelerinizi yapılandırın

Apache'nizi sadece bir site için yapılandırmak isterseniz, httpd.conf dosyasını düzenleyin.

nano /usr/local/apache2/conf/httpd.conf

Değiştirmek isteyebileceğiniz temel parametreler şunlardır:

ServerName www.example.com:80
DocumentRoot "/usr/local/apache2/htdocs"

<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Birden fazla siteyi yapılandırmak istiyorsanız, httpd-vhosts.conf dosyasına bakın.

nano /usr/local/apache2/conf/httpd.conf

Yukarıdaki gibi <VirtualHost> ile bir <Directory> bölümü eklemeniz gerekecek, ancak VitualHost'un belge kökü için. Örneğin:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
    <Directory "/usr/local/apache2/docs/dummy-host.example.com">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

4
2018-05-31 15:10



Bu yönergeleri takip ederek, ben bu içine koşuyorum: dzenan @ ubuntu16-i386: ~ / httpd-2.2.34 $ sudo /usr/sbin/update-rc.d apachectl defaults insserv: script apachectl: servis apache2 zaten sağlanmış! insserv: şimdi çıkıyorum! update-rc.d: hata: insserv komut dosyasını reddetti - Dženan
Gerçekten, Ubuntu 16.04 üzerinde zaten var /etc/init.d/apache2 radikal olarak farklı içerikli dosya. - Dženan
Hatalı dosyayı kaldırmak bize bu adımı getiriyor, ama sudo service apachectl stop servisi durdurmaz. - Dženan
"Sudo service apachectl stop" sadece adımları izlemediyseniz, sadece işe yaramaz Apache'yi açılışta başlat. Cevabımı okudum, değiştirmeye karar verdim ... ilk olarak, apachectl bir "hizmet" için gerçekten kötü bir isim ve bu bölümün bir parçasını oluşturmak için kötüydü. Yani, bunun yerine şimdi yaparsınız sudo service apache22 start / stop, Aşağıdaki adımları takip ettikten sonra Apache2 için "servis" oluştur. - Johano Fierra
Bu yaklaşımı terk etmeye ve apache ile uyumlu olacak şekilde config dosyamı güncellemeye karar verdim. 2.4. Bu şekilde daha az baş ağrısı. Ama detaylı cevap için teşekkürler! - Dženan


Ubuntu 13.04'ten 13.10'a yükseltildin mi? Ubuntu paket depolarının dışına çıkmadan Apache 2.2'yi geri almanın hiçbir yolu yoktur. Apache yapılandırmanızı düzeltmek, 2.4 ile çalışmak için daha iyidir.


1
2018-02-06 20:41



gerçekten değil, cevabımı gör - Coen Damen
Aslında yanıtladığınız "CoenDamen" Ubuntu paket depolarının dışına çıkıyor ". Ayrıca, cevabınız, bazı yeni Ubuntu yüklemeleri için "olduğu gibi" olmayacaktır, çünkü birkaç bağımlılık eksik olacaktır. - Johano Fierra


Apache2.2'yi yüklemek için aşağıdaki işlemi kullanın:

Daha sonraki bir dağıtımda (ör. 16.04), 2.2.31'i Apache sitesinden indirdim.

Aşağıdaki yapılandırmayı kullanarak oluşturdum:

./configure --enable-so --enable-ssl --with-included-apr --enable-mods-shared=all --enable-load-all-modules --enable-rewrite --enable-proxy --enable-proxy_connect --enable-proxy_http --enable-proxy_ajp --enable-authn_alias --with-npm=prefork --enable-proxy_balancer --enable-proxy_ftp --enable-cache --enable-suexec --enable-disk_cache  > conf.txt

Sonra elbette httpd.conf ve ssl.conf dosyalarını değiştirerek.

Bundan sonra sadece ./httpd -k start'ı çalıştırıyorum

Ve çalışıyor !

apache2.4'ü apt-get ile eklediğimi fakat hiçbir zaman kaldırmamış olduğumu unutmayın. Bu, sistem başlatıldıktan sonra apache2 işlemini durdurmam gerektiği anlamına gelir. Ve sonra apache2.2'yi başlatabiliyorum. Apachect'i kullanmak için apache2.4'ü kurmak zorunda kaldım ama daha sonra kullanıyorum çünkü ./httpd


1
2017-09-16 09:59



Apache 2.2 için apachectl kullanmayla ilgili cevabımla ilgili bir öneride bulunursanız, önce 2.4 sürümünü kaldırmanız gerekebilir (/usr/sbin/update-rc.d -f apachectl remove). - Johano Fierra