我尝试从源代码编译 Apache 2.4.28,但无法使用命令
apt-get install apache2
因为此命令仅安装 Apache 2.4.18。
这是我的安装步骤:
安装依赖项
apt-get install build-essential apt-get install libexpat1-dev apt-get install libpcre3-dev libssl-dev
下载apache2.4.28
cd /usr/local/src wget http://mirrors.viethosting.com/apache//apr/apr-1.6.2.tar.gz wget http://mirrors.viethosting.com/apache//apr/apr-util-1.6.0.tar.gz wget http://archive.apache.org/dist/httpd/httpd-2.4.28.tar.gz
编译apache 2.4.28
tar xzvf apr-1.6.2.tar.gz tar xzvf apr-util-1.6.0.tar.gz tar xzvf httpd-2.4.28.tar.gz mv apr-1.6.2/ httpd-2.4.28/srclib/apr mv apr-util-1.6.0/ httpd-2.4.28/srclib/apr-util ./configure --prefix=/etc/apache2 --enable-mods-shared="reallyall" --enable-mpms-shared="all"
make && make install
ln -s /etc/apache2/bin/apachectl /etc/init.d/apache update-rc.d apache defaults----> It has this warning "insserv: warning: script 'apache' missing LSB tags and overrides" service apache start
执行上述步骤后,Apache 2.4.28 已运行。但是当我使用
apache2 -v ----> it's not show the version of apache2
然后我像这样安装PHP5.6:
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php5.6
当我使用此命令时,它不仅安装 php5.6,而且还安装 apache2.4.18,并且当我通过以下方式测试 PHP 时:
echo "hello world"; ----> it not show any thing.
和
root@ubuntu:~# ps -aux | grep httpd
root 991 0.0 0.1 75268 3848 ? Ss 02:47 0:00 /usr/local/apache2/bin/httpd -k start
@Edit:正如我所改变的评论:
./configure --prefix=/etc/apache2 --enable-mods-shared="reallyall" --enable-mpms-shared="all"
到
./configure --prefix=/usr/local/apache2 --enable-mods-shared="reallyall" --enable-mpms-shared="all"
请帮助我,提前谢谢。
答案1
我认为你做错了几件事。首先是这一行:
./configure --prefix=/etc/apache2 --enable-mods-shared="reallyall" --enable-mpms-shared="all"
本来应该:
./configure --prefix=/usr/local/apache2" --enable-mods-shared="reallyall" --enable-mpms-shared="all"
你--prefix
在编译时选择的选项是错误的。我建议你删除它并修复该--prefix
选项
如何编译:
下载所需版本的源文件
安装构建要求:
sudo apt-get install build-essential
按照以下步骤安装
Zlib
压缩:cd /usr/local/src wget http://www.zlib.net/zlib-1.2.8.tar.gz tar xvfz zlib-1.2.8.tar.gz cd zlib-1.2.8/ ./configure --prefix=/usr/local make
按照以下步骤编译 apache:
将下载的
apache
源文件移入/usr/local/src
,然后cd /usr/local/src tar xvfz httpd-2.4.10.tar.gz cd httpd-2.4.10/ sudo ./configure
如果运行出现
APR
错误:sudo apt install libapr1-dev libaprutil1-dev
如果成功运行:
sudo make sudo make install
检查它是否正常工作:
sudo /usr/local/apache2/bin/apachectl start
- 输入
http://localhost
您的机器的 IP 地址,您将会看到一条消息“它起作用了!”
- 输入
使能够
boot startup
:sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2 sudo chmod +x /etc/init.d/apache2
添加到默认值
runlevels
:sudo /usr/sbin/update-rc.d -f apache2 defaults
来源:
http://www.linuxpathfinder.com/install-apache-from-source-on-ubuntu
答案2
哎哟... 构建 Apache + PHP 可以完成 + 构建过程可能非常漫长 + 容易出错。
以下是我如何使用最新的稳定 PPA 安装最新的 Apache + PHP 的方法,当它稳定下来时,可以轻松地在 5.6 或 7.0 或 7.1 + 即将推出的 7.2 之间切换。
我在 LXD 容器中执行此操作,因此机器(主机级别)仅包含默认代码 + LXD + 无 LAMP 堆栈代码。
以下是我安装最新稳定的 LXD + Apache + MariaDB + PHP (5.6) + OpenSSL + HTTP2 + FPM(现在是运行 HTTP2 所必需的)+ Dovecot 的方法。
我用来设置客户端托管 LXD 容器 LAMP Stacks 的步骤...
# Setup repositories, some of which require a bit of trickery
add-apt-repository ppa:ubuntu-lxc/lxd-stable < /dev/null
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php </dev/null
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/apache2 </dev/null
add-apt-repository ppa:pdoes/dovecot </dev/null
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
echo "deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.2/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/mariadb-$(lsb_release -sc).list
apt-get update
# Install PHP-5.6 based LAMP
apt-get install mariadb-server mariadb-client libmysqlclient-dev
apt-get install php5.6-fpm php5.6-cli php5.6-mbstring php5.6-zip \
php5.6-mysql php5.6-curl php5.6-xml php5.6-xmlrpc \
php5.6-gd php5.6-soap php5.6-gmp php5.6-pspell \
php5.6-sqlite3 php5.6-tidy php5.6-xsl php5.6-bz2 \
php5.6-tidy php5.6-bcmath php5.6-bz2 php5.6-dba
a2enmod mpm_event proxy_fcgi setenvif alias cgid ssl http2 \
expires headers include rewrite
a2enconf php5.6-fpm
# update PHP CLI, when multiple versions installed
update-alternatives --set php /usr/bin/php5.6
# tune FPM pool + php.ini + opcache.ini + xdebug.ini + cold restart FPM
service service php5.6-fpm
采用这种方法将为您提供最新稳定的 Apache + PHP + OpenSSL + 打包代码(无需手动构建)。
当发现错误时,您还将获得上游错误修复。
如果您手动操作,您将必须不断检查许多不同的邮件列表才能知道何时重建+如何应用补丁......这是另一项非常耗时的努力。
顺便说一句,Apache-2.4.28 上周刚刚发布,因此这个 Apache 版本将在打包 + 代码测试后立即出现在 ondrej PPA 中。
可能在本周或下周的某个时候,所以您今天就会安装 Apache-2.4.27。