建成後Apache2 http 伺服器從源頭(2.4.23)我沒有a2dissite
和a2ensite
命令。
配置為:
./configure --with-included-apr --prefix=/usr/local/apache2
當我跑步時:
whereis apache2
我得到:
apache2: /etc/apache2 /usr/local/apache2
但which apache2
什麼也沒顯示,也許需要一些符號連結到/usr/bin
? http://localhost
工作正常。
來源版本資訊:
/usr/local/apache2/bin/apachectl -v Server version: Apache/2.4.23 (Unix) Server built: Nov 1 2016 22:52:26
Linux版本:
linux mint 17
3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64
答案1
我猜您是從 Apache Software Foundation 提供的原始碼建構的。腳本a2en...
(和支援配置)是特定於 Debian 的;你會在對應的目錄中找到原始碼Debian 儲存庫。
從原始碼建立httpd
伺服器並且仍然能夠使用a2ensite
等的最佳選擇是使用 Debian 原始碼包:
sudo apt-get install devscripts dpkg-dev build-essential
sudo apt-get build-dep apache2
dget http://httpredir.debian.org/debian/pool/main/a/apache2/apache2_2.4.23-5.dsc
cd apache2-2.4.23
dpkg-buildpackage -us -uc
前兩個命令安裝建置所需的軟體包apache2
;然後dget
下載並解壓縮來源包,dpkg-buildpackage
建立它並產生一系列可以像往常一樣.deb
手動安裝的套件。dpkg
如果該build-dep
行不起作用,則以下內容等效於apache2
:
sudo apt-get install debhelper lsb-release libaprutil1-dev libapr1-dev libpcre3-dev zlib1g-dev libnghttp2-dev libssl-dev perl liblua5.2-dev libxml2-dev autotools-dev gawk dh-systemd
答案2
不要將事物符號連結到/usr/bin
.這是一個非常糟糕的主意,你不應該這樣做。
為什麼?因為大部分/usr
,包括/usr/bin
,都是為套件管理器保留的。任何不是套件管理器的東西,包括你,都不應該接觸那裡的東西。
/usr/local
存在是為了提供安裝本地編譯的軟體的地方。通常,您將提供/usr/local
作為前綴,而不是/usr/local/apache2
. (順便說一句,前綴是 bin 路徑、庫路徑等的前綴。因此,例如 Apache 的命令列工具將進入$PREFIX/bin
,其庫將進入$PREFIX/lib/apache2
,等等。)
問題的解決方案是新增/usr/local/apache2/bin
到 shell 用於尋找二進位檔案的路徑清單中。這通常被稱為$PATH
或簡稱為“您的路徑”,並且可以使用以下命令進行更改:
export PATH="/usr/local/apache2/bin:$PATH"
您可以將其放入 shell 的啟動檔案之一中以使其永久化。
話雖如此,我懷疑你仍然找不到a2ensite
或a2dissite
。如果我沒記錯的話,這兩個指令都是由 Debian 開發人員加入的,然後由 Mint 繼承。因此,它們不包含在上游 Apache 原始碼中。史蒂芬·基特的很好的答案將告訴您如何取得這些命令。