使用 Apache 2.4、PHP 5 和 MariaDB(而不是 MySQL)的 Ubuntu 15.10 LAMP 服务器教程
本教程适用于这些操作系统版本
- Ubuntu 14.04 LTS (Trusty Tahr)
在此页
- 初步说明
- 安装 MariaDB 作为 MySQL 的替代品
- 安装 Apache 2.4
- 安装 PHP 5.6
- 测试 PHP 并获取有关 PHP 安装的详细信息
- 在 PHP 中获得 MySQL/MariaDB 支持
- 安装 APCu PHP 缓存以加速 PHP
- 在 apache 中启用 SSL 网站
- 安装 phpMyAdmin
- 链接
LAMP 是 Linux、Apache、MySQL、PHP 的缩写。本教程展示了如何在支持 PHP 5.6 (mod_php) 和 MySQL 的 Ubuntu 15.10 (Wiley Werewolf) 服务器上安装 Apache 2 Web 服务器。此外,我将安装 PHPMyAdmin 以简化 MySQL 管理。 LAMP 设置是 CMS 系统(如 Joomla、Wordpress 或 Drupal)的完美基础。
初步说明
在本教程中,我将使用 IP 地址为 192.168.1.100 的主机名 server1.example.com。这些设置可能因您而异,因此您必须在适当的地方替换它们。
我建议使用最小的 Ubuntu 服务器设置作为本教程的基础,它可以是虚拟服务器或根服务器映像以及来自网络托管公司的 Ubuntu 15.10 最小安装,或者您可以使用我们的最小服务器教程从头开始安装服务器。
我以 root 权限运行本教程中的所有步骤,因此请确保您以 root 身份登录:
sudo su
安装 MariaDB 作为 MySQL 的替代品
我们将安装 MariaDB 而不是 MySQL。 MariaDB 是由原始 MySQL 开发人员 Monty Widenius 维护的 MySQL 分支。与 MySQL 相比,MariaDB 与 MySQL 兼容并提供有趣的新功能和速度改进。运行以下命令来安装 MariaDB 服务器和客户端:
apt-get -y install mariadb-server mariadb-client
现在我们为 MariaDB 设置一个 root 密码。
mysql_secure_installation
你会被问到这些问题:
Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y
使用“mysql 命令”测试 MariaDB 的登录
mysql -u root -p
并输入您在上面设置的 MariaDB root 密码。结果应该类似于下面的屏幕截图:

要离开 MariaDB shell,请输入命令 \quit\ 并按回车键。
安装阿帕奇 2.4
Apache 2 作为 Ubuntu 软件包提供,因此我们可以像这样安装它:
apt-get -y install apache2
现在将您的浏览器指向 http://192.168.1.100,您应该会看到 Apache2 默认页面(它有效!):

apache默认虚拟主机的文档根目录在Ubuntu上是/var/www/html,主要配置文件是/etc/apache2/apache2.conf。配置系统在 /usr/share/doc/apache2/README.Debian.gz 中有完整的记录。
安装 PHP 5.6
我们可以安装 PHP 5.6 和 Apache PHP 模块,如下所示:
apt-get -y install php5 libapache2-mod-php5
然后重新启动 Apache:
systemctl restart apache2
测试 PHP 并获取有关 PHP 安装的详细信息
默认网站的文档根目录是 /var/www/html。我们现在将在该目录中创建一个小的 PHP 文件 (info.php) 并在浏览器中调用它。该文件将显示有关我们的 PHP 安装的许多有用的详细信息,例如已安装的 PHP 版本。
nano /var/www/html/info.php
<?php
phpinfo();
?>
然后将 info.php 文件的所有者更改为 www-data 用户和组。
chown www-data:www-data /var/www/html/info.php
现在我们在浏览器中调用该文件(例如 http://192.168.1.100/info.php):

如您所见,PHP5 正在运行,并且它通过 Apache 2.0 处理程序运行,如服务器 API 行所示。如果进一步向下滚动,您将看到所有已在 PHP5 中启用的模块。 MySQL 没有在那里列出,这意味着我们还没有在 PHP 中支持 MySQL/MariaDB。
在 PHP 中获取 MySQL/MariaDB 支持
要在 PHP 中获得 MySQL 支持,我们可以安装 php5-mysqlnd 包。我将在这里安装新的 MySQL 驱动程序包 php5-mysqlnd 而不是旧的 php5-mysql 包,因为旧驱动程序在与 MariaDB 一起使用时显示有关 MySQL 库版本不匹配的错误消息。安装一些其他 PHP5 模块是个好主意,因为您的应用程序可能需要它们。您可以像这样搜索可用的 PHP5 模块:
apt-cache search php5
选择你需要的并像这样安装它们:
apt-get -y install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
现在重新启动 Apache2:
systemctl restart apache2
安装 APCu PHP 缓存以加速 PHP
APCu 是一个免费的 PHP 操作码缓存器,用于缓存和优化 PHP 中间代码。强烈建议安装其中之一以加速您的 PHP 页面。
APCu 可以按如下方式安装:
apt-get install php5-apcu
现在重新启动 Apache:
systemctl restart apache2
现在在浏览器中重新加载 http://192.168.1.100/info.php 并再次向下滚动到模块部分。你现在应该在那里找到很多新模块:

当您不再需要 info.php 文件时,请不要忘记删除它,因为它提供了您服务器的敏感信息。运行以下命令删除该文件。
rm -f /var/www/html/info.php
在 apache 中启用 SSL 网站
SSL/TLS 是一个安全层,用于加密 Web 浏览器和服务器之间的连接。在您的服务器上执行以下命令以启用 https:// 支持。跑步:
a2enmod ssl
a2ensite default-ssl
它启用 ssl 模块并将 /etc/apache2/sites-enabled 文件夹中的符号链接添加到文件 /etc/apache2/sites-available/default-ssl.conf 以将其包含到活动的 apache 配置中。然后重新启动 apache 以启用新配置:
systemctl restart apache2
现在通过在网络浏览器中打开 https://192.168.1.100 来测试 SSL 连接。

您将收到 SSL 警告,因为服务器的 ssl 证书是“自签名”ssl 证书,这意味着默认情况下浏览器不信任该证书,您必须先接受安全警告。接受警告后,您将看到 apache 默认页面。

浏览器中 URL 前面闭合的“绿色锁”表示连接已加密。要消除 SSL 警告,请将自签名 SSL 证书 /etc/ssl/certs/ssl-cert-snakeoil.pem 替换为来自 SSL 机构的正式签名 SSL 证书。
安装 phpMyAdmin
phpMyAdmin 是一个 Web 界面,您可以通过它管理 MySQL 数据库。安装它是个好主意:
apt-get -y install phpmyadmin
您将看到以下问题:
Web server to configure automatically: <-- Select the option: apache2
Configure database for phpmyadmin with dbconfig-common? <-- Yes
Password of the database's administrative user: <-- Enter the MariaDB root password
MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.
Web server to reconfigure automatically: <-- apache2
这里的答案序列截图:




MariaDB 默认为 root 用户启用一个名为 \unix_socket\ 的插件,该插件阻止 root 用户登录 PHPMyAdmin 以及与 MySQL 的 TCP 连接为 root 用户工作。因此,我将使用以下命令停用该插件:
echo "update user set plugin='' where User='root'; flush privileges;" | mysql --defaults-file=/etc/mysql/debian.cnf mysql
之后就可以在http://192.168.1.100/phpmyadmin/下访问phpMyAdmin了:


链接
- 阿帕奇:http://httpd.apache.org/
- PHP:http://www.php.net/
- MySQL:http://www.mysql.com/
- MariaDB:https://mariadb.com/
- Ubuntu:http://www.ubuntu.com/
- phpMyAdmin:http://www.phpmyadmin.net/