在 Ubuntu 16.04 上使用从源代码编译的 apache2.4.28 时如何安装 PHP5.6?

在 Ubuntu 16.04 上使用从源代码编译的 apache2.4.28 时如何安装 PHP5.6?

我尝试从源代码编译 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选项

如何编译:

  1. 下载所需版本的源文件

  2. 安装构建要求:

    sudo apt-get install build-essential
    
  3. 按照以下步骤安装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
    
  4. 按照以下步骤编译 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
      
  5. 检查它是否正常工作:

    sudo /usr/local/apache2/bin/apachectl start
    
    • 输入http://localhost您的机器的 IP 地址,您将会看到一条消息“它起作用了!”
  6. 使能够boot startup

    sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2
    sudo chmod +x /etc/init.d/apache2
    
  7. 添加到默认值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。

相关内容