1.安装 Apache

$ sudo apt update && sudo apt install apache2

中间会遇到停顿询问是否继续, 输入 y 然后 回车.

2.测试 Apache

通过查看 Apache 服务的状态,检查 Apache 是否安装正确.

$ sudo service apache2 status

查看完状态, 你需要按下 q 退出, Apache server的状态.

查看之后,知道Apache的服务已经起来了,那么下一步应该去查看一些Apache web页面.

输入 IP 地址到浏览器的地址栏然后回车就会看到.

如果你不知道自己的 IP地址是多少,那么你可以通过下面的命令查看:

$ sudo ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

当你在浏览器看到上面页面的时候说明已经搞定了.你所看到的页面就是文件

/var/www/html/index.html

如果你想修改页面,直接修改它 /var/www/html/index.html 就行.

3.安装 MySQL

$ sudo apt update && sudo apt install mysql-server

输入 y 然后 回车继续.

安装完成后,我们查看MySQL服务有没有起来.

$ sudo service mysql status

如果起来,你将会看到激活的状态如下:

你可能需要按 q 退查看服务状态,也可能不需要.(我这里不需要)

4.配置 MySQL 安全

为了MySQL 服务器的安全配置,你应该运行  mysql_secure_installation

$ sudo mysql_secure_installation

如果你在步骤 1 创建了root 用户的密码, 可能会提示你在这里输入.否则, 你将被要求创建一个.

你将被问及是否要设置验证密码插件。

除非出于某种原因需要强制执行严格的密码策略,否则没有必要这样做。

到上面这幅图, 这里按下回车就行了,如果你不想设置验证密码插件.

按下回车后会出现如下情况:

如果你没有在步骤1创建root用户的密码,那么你必须现在在这里创建一个.

注意,当您在Linux中输入密码时,不会显示您正在输入的内容(没有星号或圆点)。

输入 y 且按 Enter 键移除匿名用户.

输入 y 且按 Enter 键不运行 root 用户远程登录.这将防止机器人和黑客试图猜测 root 用户密码。

输入 y 且按 Enter 键去移除测试用的数据库.

输入 y 且按 Enter 键去重新加载特权表.

然后,完成.

作为测试,你可以登录到MySQL服务器并运行version命令.

$ sudo mysqladmin -p -u root version

我这里第一个密码是切换到root用户密码, 第二个密码是刚设置的 MySQL的根密码.

输入之前设置的MySQL根密码,应该会看到以下内容:

现在已经成功安装和配置了MySQL!

5.安装 PHP

让我们从更新存储库和使用apt安装PHP包开始。我们还将安装另外两个包libapache2-mod-php和PHP - MySQL,它们允许PHP与MySQL数据库通信.

$ sudo apt update && sudo apt install php libapache2-mod-php php-mysql

当提示安装PHP包时,按 y回车.

6.测试 PHP

一旦包完成安装,我们就可以在命令行中测试PHP了。

$ php -version

如果PHP安装正确,你应该看到类似如下:

非常棒,现在,让我们测试用于Apache的PHP.

在文档根目录中创建一个名为info.php的新文件

Ubuntu 18.04中默认的文档根目录是 /var/www/html/

一旦确定了文档根目录的位置,就可以使用 vi 或 vim 或 gedit 或 其他的文本编辑器创建一个名为info.php的新文件。(如果用不惯 vi, 建议使用可视化文本编辑器 gedit)

在本例中,我们将在/var/www/html/中创建一个新文件

$ sudo vi /var/www/html/info.php

写入 info.php 的内容如下:

<?php
phpinfo();
?>

即如下图

然后保存退出.

现在我们可以在浏览器中加载这个文件,通过在浏览器中输入:

http://your_ip/info.php

我这里是 192.168.1.10 所以我在浏览器中输入的是 http://192.168.1.10/info.php

如果你不知道自己的 IP是多少,你可以通过下面的命令知道:

$ sudo ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

下面我们可以看到PHP信息页面工作正常。

一旦您确认PHP工作正常,删除info.php是很重要的,因为它包含可能对黑客有用的信息。

$ sudo rm /var/www/html/info.php

如果还想安装 phpMyAdmin 那么请继续查看: Ubuntu 18.04上安装 phpMyAdmin

参考: Installing Apache, MySQL, PHP (LAMP) Stack on Ubuntu 18.04

Ubuntu 18.04上安装Apache, MySQL, PHP, LAMP的更多相关文章

  1. 如何在Ubuntu 18.04上安装Apache Web服务器

    一. apt库安装 1.在终端输入更新检查命令,sudo apt-get update 2. 在更新完成后(如果不想检查更新,也可直接输入此步)输入:sudo apt-get install apac ...

  2. Ubuntu 18.04上安装 phpMyAdmin

    我们将安装 phpMyAdmin 在 Ubuntu18.04 上配合 Apache 一起工作. 在安装 phpMyAdmin 之前需要已经安装了LAMP栈并提供了web页面. 如果没有安装可以参照 U ...

  3. 如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器(转)

    如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器 什么是Apache Web Server? Apache或Apache HTTP服务器是一个免费的开源Web服务器,由Apac ...

  4. 如何在Ubuntu 18.04上安装Django

    Django是一个免费的开源高级Python Web框架,旨在帮助开发人员构建安全,可扩展和可维护的Web应用程序. 根据您的需要,有不同的方法来安装Django.它可以使用pip在系统范围内安装或在 ...

  5. 如何在Ubuntu 18.04上安装Pip

    一.简介: Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理. 在Ubuntu 18.04上缺省没有安装Pip,但安装非常简单. ...

  6. 在Ubuntu 18.04上安装Tensorflow

    我们将经历几个阶段,安装cuda-9.0,cudnn和tensorflow cpu以及tensorflow gpu版本.最后我们将用cuda-9.0安装pytorch.在MARVEl电影中黑寡妇的“我 ...

  7. 如何在Ubuntu 18.04上安装Go

    如何在Ubuntu 18.04上安装Go 谢鸢发表于云计算教程系列订阅98 介绍 课程准备 第1步 - 安装Go 第2步 - 设置Go路径 第3步 - 测试您的安装 结论 介绍 Go是Google开发 ...

  8. 在Ubuntu 18.04上安装OpenCV 4(C ++和Python)

    OpenCV于11月20日发布了OpenCV-3.4.4和OpenCV-4.0.0.这些版本中有很多错误修复和其他更改.发布重点如下: OpenCV现在是C ++ 11库,需要符合C ++ 11标准的 ...

  9. 在Ubuntu 18.04上安装Git

    步骤1.首先,通过运行以下命令确保您的系统和apt包列表完全更新: apt-get update -yapt-get upgrade -y 第2步.在Ubuntu 18.04上安装Git. 现在让我们 ...

随机推荐

  1. 无序数组中用 快速排序的分治思想 寻找第k大元素

    #include <stdio.h> int *ga; int galen; void print_a(){ ; i < galen; i++){ printf("%d & ...

  2. 关于yyyy-MM-dd格式日期字符串,解析成LocalDateTime遇到的问题

    yyyy-MM-dd -> LocalDateTime 直接把yyyy-MM-dd格式的日期字符串解析成LocalDateTime会抛出异常 try { LocalDateTime localD ...

  3. MySQL学习笔记8——多表查询

    多表查询 多表查询 *合并结果集 *连接查询 *子查询 合并结果集 *要求被合并的表中,列的类型和列数相同(实际上是查询的结果集列类型和列数相同即可) *UNION,去除重复行 *UNION ALL, ...

  4. django haystack报错: ModuleNotFoundError: No module named 'blog.whoosh_cn_backend'

    在配置django haystack时报错: 解决方案: 将ENGINE的值 改为 这样就可以了.

  5. 水平划分table

    大概10年前,接到的任务是要解决一个AuditTrail表的写入性能. performance test的时候,一晚上这个表可以长1百万行,在SQLServer归档到本地文件以后再去删除这1百万条记录 ...

  6. Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...

  7. .NET使用Bogus生成大量随机数据(转载)

    原文地址:https://www.cnblogs.com/sdflysha/p/20190821-generate-lorem-data.html 在演示Demo.数据库脱敏.性能测试中,有时需要生成 ...

  8. Jupyter Notebook使用

    不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了.哎呀 ...

  9. 十、Spring之BeanFactory源码分析(二)

    Spring之BeanFactory源码分析(二) 前言 在前面我们简单的分析了BeanFactory的结构,ListableBeanFactory,HierarchicalBeanFactory,A ...

  10. 全链路跟踪TraceId

    数据库主键:标示唯一一条数据,譬如唯一商品,唯一订单 全局事务ID:实现分布式事务一致性的必备良药 请求ID:requestId,seesionId,标示一个请求或者一次会话的生命周期 身份证ID:代 ...