翻译自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/

昨天在虚拟机里面安装ubuntu server ,然后配置php开发环境,参考了这篇文章,一次性把所有的东西都安装配置好了,所以想把这篇文章记录下来。希望能够帮助到初学者一次性搞定这些配置(避免纠结),然后就可以愉快地编程了,嘿嘿。

以下是我翻译的内容,完全对照原文,没有自己改动的部分(因为原文已经很完美了):


LAMP 是 Linux,Apache,MySQL,PHP的缩写。本文教你如何在 ubuntu 16.04(Xenial Xerus) server 上安装 Apache2,PHP7(mod_php)和MySQL。此外,还将安装 PHPMyAdmin 工具用于管理 MySQL。

说明

本文中,我使用 server1.example.com 作为主机名,IP为:192.168.1.100。你如果跟我不同,在相应的地方替换就行了。

我推荐使用 minimal Ubuntu server 作为本文操作的基础。

我在root权限下运行所有的命令,所以确保你使用的是root账户:

sudo su

安装 MariaDB 作为 MySQL 的替换

我安装的是 MariaDB 而不是 MySQL。MariaDB 是 MySQL 的作者 Monty Widenius 所维护的 MySQL 分支版本。MariaDB 兼容 MySQL,并且增加了功能,提高了性能。运行下面的命令来安装 MariaDB-server 和 client:

apt-get 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

再输入上面设置 root 密码,就会出现如下所示:

要离开 MariaDB shell,输入 quit 和 回车键就行了。

安装 Apache 2.4

Apache 2 可以直接从 Ubuntu 包中获取,只要这样:

apt-get install apache2

现在打开浏览器,输入 http://192.168.1.100,就能看到 Apache 2 默认页面:

apache 默认文章根目录是 /var/www/html,其主要配置文件为:/etc/apache2/apache2.conf。其配置系统的说明文档在 /usr/share/doc/apache2/README.Debian.gz.

安装 PHP 7

安装 PHP 7 和 Apache PHP 模块:

apt-get install php7. libapache2-mod-php7.

然后重启 Apache

systemctl restart apache2

测试 PHP 获得一些细节信息

默认web站点的文档根目录是 /var/www/html ,我在该目录创建一个info.php文件,然后在浏览器中访问它。这个文件能够显示有关PHP安装的详细信息。

vim /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,结果如下图所示:

如你所看到的,PHP7.0 正在运行,从 Server API 行可以看出,它是通过 Apache 2.0 Handler 运行的,继续向下滚动页面,你就看见所有已经启用的模块。MySQL并不在其中,这是因为我们还没有对PHP添加MySQL/MariaDB支持。

PHP 启用 MySQL / MariaDB 支持

为了使 PHP 支持 MySQL,可以安装 php7.0-mysql 包。同时也可以安装其他所需要的 PHP 模块,使用下面命令来搜索可用的 PHP 模块:

apt-cache search php7.

选择一些模块,安装之:

apt-get -y install php7.-mysql php7.-curl php7.-gd php7.-intl php-pear php-imagick php7.-imap php7.-mcrypt php-memcache  php7.-pspell php7.-recode php7.-sqlite3 php7.-tidy php7.-xmlrpc php7.-xsl php7.-mbstring php-gettext

重启 Apache2

systemctl restart apache2

如上图所示,PHP已经启用了 MySQL/MariaDB 支持。

安装 APCu PHP 缓存来加速 PHP 运行

APCu 是一个免费的 PHP opcode cacher 用来缓存和优化 PHP 中间代码。推荐安装它来加速PHP速度。

安装:

apt-get install php-apcu

重启 Apache:

systemctl restart apache2

刷新一下 http://192.168.1.100/info.php,看到 apcu 模块:

请删除info.php文件,它会显示你服务器的敏感信息。运行下面的命令来删除:

rm -f /var/www/html/info.php

启用 Apache 的 SSL 网站支持

SSL/TLS 是一个安全层,用于加密浏览器与服务器之间的连接。使用下面的命令以启用 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 证书 是 “自己颁发给自己的”,这表示浏览器不信任该证书,所以你必须先接受安全警告,然后才能打开apache 默认页面:

浏览器地址栏URL前面的 “绿色的锁”表明连接是经过加密的。要想解除 SSL 警告,可以从 SSL 证书颁发机构获得一个官方签名的SSL证书,然后替换默认自带的证书:/etc/ssl/certs/ssl-cert-snakeoil.pem。

安装 phpMyAdmin

通过phpMyAdmin可以操作MySQL数据库。安装命令:

apt-get install phpmyadmin

然后看到这些提示,按照红色提示输入就行了:

Web server to configure automatically: <-- Select the option: apache2
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.

MariaDB 默认为root用户启用了“unix_socket”插件,这个插件会阻止root用户登录phpmyadmin和root用户到MySQL的TCP连接。因此,使用命令禁用了它:

echo "update user set plugin='' where User='root'; flush privileges;" | mysql -u root -p mysql

然后输入 MariaDB root 密码。

之后,你就可以通过 http://192.168.1.100/phpmyadmin/ 来访问:


另外,说明一些操作过程中可能会遇到的问题以及解决办法。

(1)安装完访问 phpmyadmin 时,出现错误:The reqeusted URL /phpmyadmin was not found on this server

我的解决办法在这里:链接

(2)成功打开phpmyadmin 之后,输入用户名和密码

Ubuntu 16.04 LAMP server 指南 - 配置 Apache2.4,PHP7,和MariaDB(而不是MySQL)的更多相关文章

  1. Ubuntu 16.04 LAMP server tutorial with Apache 2.4, PHP 7 and MariaDB (instead of MySQL)

    https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ This tut ...

  2. Ubuntu 16.04上安装并配置Postfix作为只发送SMTP服务器

    如果大家已经在使用第三方邮件服务方案发送并收取邮件,则无需运行自己的邮件服务器.然而,如果大家管理一套云服务器,且其中安装的应用需要发送邮件通知,那么运行一套本地只发送SMTP服务器则更为理想. 如何 ...

  3. Ubuntu 16.04.3 Server 版安装过程图文详解

    Ubuntu 16.04.3 Server 版安装过程图文详解 首先,我们会进入系统安装的第一个界面,开始系统的安装操作.每一步的操作,左下角都会提示操作方式! 1.选择系统语言-English2.选 ...

  4. 【Ubuntu 16.04.2_64】安装配置SVN

    [Ubuntu 16.04.2_64]安装配置SVN 转载:https://www.cnblogs.com/yangchongxing/p/10190549.html 检查是否已安装svn # svn ...

  5. UBUNTU 16.04 LTS SERVER 手动升级 MariaDB 到最新版 10.2

    UBUNTU 16.04 LTS SERVER 手动升级 MariaDB 到最新版 10.2 1. 起因 最近因为不同软件的数据问题本来只是一些小事弄着弄着就越弄越麻烦了,期间有这么个需求,没看到有中 ...

  6. Ubuntu 16.04安装JDK并配置环境变量-【小白版】

    系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...

  7. Ubuntu 16.04安装JDK并配置环境变量(转发:https://blog.csdn.net/yan3013216087/article/details/78307258)

    系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...

  8. VMWare虚拟机中Ubuntu 16.04 (linux无桌面)配置静态IP上网

    1. 基础环境说明 虚拟机: VMWare 12.5.2 操作系统: Ubuntu 16.04 (无桌面) 物理主机操作系统: win 7 旗舰版 2. 摸底 VMware在安装之后,会创建2个虚拟的 ...

  9. Ubuntu 16.04安装JDK并配置环境变量

    系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...

随机推荐

  1. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇

    HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打 ...

  2. 【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 很长时间没有来更新博客了,一是,最近有些忙,二是,Core也是一直在摸索中,其实已经完成了一个框架了,并且正在准备在生产环境中 ...

  3. flask+sqlite3+echarts2+ajax数据可视化

    前提: 准备Python + Flask+Sqlite3的平台环境(windows系统) 前面一节介绍flask怎么安装了,剩下sqlite3下载后解压,然后环境变量添加解压路径就行了 附加下载地址: ...

  4. Java概述

    Java概述 一.前奏(常见的DOS命令) dir:列出当前目录下的文件以及文件夹 md:创建目录(文件夹) rd:删除目录 cd:进入指定目录 cd..:退出当前目录,返回到上一级目录 cd\:退回 ...

  5. TypeSDK总体设计思路和架构

    引言:本文旨在提供读者制作一个自己的聚合SDK的思路,抛砖引玉,让更多的读者对聚合SDK有好的理解. 这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代:这是信仰的时期,这是怀疑的时期:这 ...

  6. Python 生成器与迭代器 yield 案例分析

    前几天刚开始看 Python ,后因为项目突然到来,导致Python的学习搁置了几天.然后今天看回Python 发现 Yield 这个忽然想不起是干嘛用的了(所以,好记性不如烂笔头.).然后只能 花点 ...

  7. WEB项目会话集群的三种办法

    web集群时session同步的3种方法 在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上, 如果session不同步的 ...

  8. jQuery与ajax 基础运用

    jQuery是一个轻量级js框架,使用方便快捷,更是封装ajax处理方法,如$.load() $.get() $.post() 等 但最常用的方法还是$.ajax() 一.一般的格式为 $.ajax( ...

  9. mui 手势事件配置

    在开发中监听双击屏幕事件时不起作用,需要在mui.init方法的gestureConfig参数中设置需要监听的手势事件 手势事件配置: 根据使用频率,mui默认会监听部分手势事件,如点击.滑动事件:为 ...

  10. Atitit.日志系统slf4j的使用

    Atitit.日志系统slf4j的使用 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar ...