在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)

默认情况下,Ubuntu 16.04 LTS Xenial Xerus随附PHP7,因此您不必依赖第三方PPA来安装PHP7。 在本教程中,我们将研究如何在Ubuntu 16.04 LTS Xenial Xerus上安装Apache,MariaDB和PHP7(LAMP堆栈)。

更新资料:本教程也在Ubuntu 16.10 Yakkety Yak上成功进行了测试。

步骤1:更新Ubuntu 16.04 LTS

在安装任何软件之前,始终最好更新存储库和软件包。 SSH进入您的Ubuntu 16.04服务器,然后输入以下命令。

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

步骤2:安装Apache Web服务器

输入此命令以安装Apache Web服务器。

sudo apt-get install apache2 apache2-utils

安装后,应自动启动Apache。 使用systemctl检查其状态。

systemctl status apache2

输出:

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Wed 2016-04-20 18:32:57 EDT; 32s ag
o

如果它没有运行,请使用systemctl来启动它。

sudo systemctl start apache2

重启Ubuntu 16.04后,使Apache自动启动也是一个好主意。

sudo systemctl enable apache2

检查Apache版本:

apache2 -v

输出:

Server version: Apache/2.4.18 (Ubuntu)
Server built: 2016-04-15T18:00:57

现在,在浏览器的地址栏中,键入Ubuntu 16.04 LTS服务器的公共IP地址。 您应该看到“它有效!” 表示Apache Web服务器正在正确运行的网页。

在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)

您可以使用以下命令来获取Ubuntu 16.04服务器的公共IP地址。

sudo apt-get install curl

curl http://icanhazip.com

如果要在本地Ubuntu 16.04机器上安装LAMP,只需键入 127.0.0.1 要么 localhost 在浏览器地址栏中。

最后,我们需要 www-data (Apache用户)作为Web根目录的所有者。

sudo chown www-data /var/www/html/ -R

步骤3:安装MariaDB

MariaDB是MySQL的直接替代品。 它是由MySQL团队的前成员开发的,他们担心Oracle可能会将MySQL变成封闭源代码产品。 许多Linux发行版和公司已迁移到MariaDB。 因此,我们将安装MariaDB而不是MySQL。

sudo apt-get install mariadb-server mariadb-client

安装后,MariaDB服务器应自动启动。 使用systemctl检查其状态。

systemctl status mysql

输出:

● mysql.service - LSB: Start and stop the mysql database server daemon
 Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
 Active: active (running) since Wed 2016-04-20 18:52:01 EDT; 1min 30s ago
 Docs: man:systemd-sysv-generator(8)

如果它没有运行,请使用以下命令启动它:

sudo systemctl start mysql

要使MariaDB在重新启动Ubuntu 16.04时自动启动:

sudo systemctl enable mysql

现在运行安装后安全脚本。

sudo mysql_secure_installation

当要求您输入MariaDB根密码时,请按Enter键,因为尚未设置根密码。 然后输入y设置MariaDB服务器的根密码。

在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)

接下来,您只需按Enter即可回答所有剩余的问题。 这将删除匿名用户,禁用远程root登录并删除测试数据库。 此步骤是MariaDB数据库安全性的基本要求。

在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)

步骤4:安装PHP7

输入以下命令以安装PHP7和PHP7扩展。

sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl libapache2-mod-php7.0

启用Apache php7.0模块,然后重新启动Apache Web服务器。

sudo a2enmod php7.0

sudo systemctl restart apache2

步骤5:测试PHP

要测试PHP7的cli版本,我们只需要输入以下命令:

[email protected]:~$ php --version
PHP 7.0.4-7ubuntu2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
  with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

要使用Apache服务器测试PHP,请先创建一个 test.php Web根目录中的文件。

sudo nano /var/www/html/test.php

将以下PHP代码粘贴到文件中。

<?php phpinfo(); ?>

保存并关闭文件。 现在,在浏览器地址栏中,输入 server-ip-address/test.php。 更换 sever-ip-address 与您的实际IP。 当然,如果您在本地计算机上遵循本教程,请输入 127.0.0.1/test.php 要么 localhost/test.php

您应该看到服务器的PHP信息。 这意味着PHP处理很好。 您可以发现Zend OPcache已启用。

在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)

Apache PHP7.0模块与PHP-FPM

现在基本上可以通过两种方法在Apache Web服务器上运行PHP代码:

  • Apache PHP模块
  • PHP-FPM。

上面的配置使用Apache PHP7.0模块来处理PHP代码。 很好,如果您对此感到满意,请删除 test.php 立即提交文件,以使其他人无法看到您的服务器信息,并且不遵循以下说明。

但是,如果要使用PHP-FPM来运行PHP代码,则需要启用Apache mod_proxy_fcgi 使用以下命令的模块:

sudo a2enmod proxy_fcgi

然后编辑虚拟主机配置文件。 本教程以默认虚拟主机为例。

sudo nano /etc/apache2/sites-available/000-default.conf

添加 ProxyPassMatch 该文件的指令。

....

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPassMatch ^/(.*.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/html/

.....

保存并关闭此文件。 重新启动Apache2。

sudo systemctl restart apache2

启动php7.0-fpm

sudo systemctl start php7.0-fpm

启用php7.0-fpm在启动时启动。

sudo systemctl enable php7.0-fpm

检查状态:

systemctl status php7.0-fpm

输出:

● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
 Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor pre
set: enabled)
 Active: active (running) since Wed 2016-04-20 19:21:05 EDT; 2s ago

现在,如果您刷新 test.php 浏览器页面上,您会发现服务器API是 FPM/FastCGI 这意味着Apache Web服务器将把PHP请求传递给PHP-FPM。

apache2的php-fpm

为了服务器的安全,您应该删除 test.php 立即归档,以防止窥视。

恭喜! 您已在Ubuntu 16.04 LTS Xenial Xerus上成功安装了Apache,MariaDB和PHP7。

Sidebar