建成后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 源代码中。斯蒂芬·基特的很好的答案将告诉您如何获取这些命令。