【超详细】Ubuntu 20.04 安装 Apache+PHP网页环境 图文教程,常见问题和解决方案

本文将介绍在Ubuntu20.04 LTS环境下安装Apache的全过程,针对其中可能出现的一些坑也会提供解决方案。

🎈 作者:Eriktse
🎈 简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)🚀
🎈 个人博客:www.eriktse.com

Apache 介绍

Apache是一款由Apache基金会提供的开放源代码的Web服务器软件,是一种多用途的、可移植的,也可以修改的HTTP服务器,其常用的Web服务器软件之一;

Apache服务器支持主流操作系统,包括UNIXLinuxMac OS XWindows等。

通常情况下,它可以和MySQL数据库、Perl以及PHP脚本解释器配合使用,构成LAMP架构,就可以搭建动态网站系统。Apache是世界使用排名第一、最流行的Web服务器端软件,是绝大多数的网站都使用的Web服务器端软件。

演示环境

网页环境:Apache(其他的也可以)

PHP版本:8.0

操作系统:Ubuntu 20.04

安装Apache

进入ubuntu系统后,先更新apt

sudo apt update

过程中会提示是否继续,输入y按下回车,继续。

如果这一步卡住或者有网络问题的同学,可以更新apt源为清华源,具体看方法参考资料(注意选择正确的ubuntu版本):https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
使用命令lsb_release -a可以查看系统版本信息。
在修改完/etc/apt/source.list后用命令source /etc/profile对配置进行刷新。

然后安装Apache,在apt中它的名字是apache2:

sudo apt-get install apache2

安装完成后,访问http://localhost/看看是否出现以下界面:

如果你用的是虚拟机,可以通过ip addr命令查询到当前虚拟机的内网ip,然后从自己的电脑上打开网页查看,当然你直接在虚拟机进入localhost也是可以的。

此时服务器只安装了Apache,但是没有安装php,所以php暂时是无法被解析的。

我们需要安装php,在apt源中安装即可,这里以php8.0为例:

sudo apt-get install php8.0

这里直接安装可能会遇到报错:

E: Unable to locate package php8.0
E: Couldn't find any package by glob 'php8.0'

需要安装一个第三方PPA源,逐行执行以下命令:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php8.0
安装php拓展的方法是:sudo apt-get install php8.0-<拓展名>,例如sudo apt-get install php8.0-mysqli

安装完成后需要在Apache中启用php8.0,用以下命令启用:

a2enmod php8.0

/var/www/html目录下新建一个index.php文件,里面写入:

<?php
phpinfo();    
?>
新建文件的方法是,先cd到对应的目录:cd /var/www/html,再输入命令:touch index.php

现在重新访问http://localhost/index.php,应该可以看见php的相关信息。

至此,你已经成功完成了Apache服务器的搭建,php程序已经可以运行了。

常见问题和解决方案

以下罗列一些在安装和使用Apache时常见的问题和解决方案:

Apache的网页地址在那里?

默认是在/var/www/html里面,当然可以自己为不同域名指定不同的路径。

如何重启Apache

用命令systemctl restart apache2

如何查看Apache当前启用的mods

可以使用httpd -M命令查看apache的已经启用的mods

也可以在Apache的安装目录conf/httpd.conf文件中的LoadModule指令中查看。

用指令sudo ls -la /etc/apache2/mods-available/可以查看所有启用的mods。

如何修改php版本

修改对应的mods即可,例如我要从php7.0变为php8.0。

首先安装php8.0:

sudo apt-get install php8.0
同时还要重新安装各种PHP拓展,如果需要的话。

用命令关闭当前的php7.0 mod。

a2dismod php7.0

在用命令开启新的php8.0 mod。

a2enmod php8.0

此时可以用php探针再查一下php版本。

php提示缺少某些拓展怎么办

比如php提示缺少mysqli拓展。

打开/etc/php/8.0/apache2/php.ini,找到extionsion=mysqli并将前面的;删除,重启Apache。

如果还是提示缺少拓展,可能是你没有安装对应的拓展。安装完成后重启Apache即可。

总结

以上是对Apache安装过程的全部教程,感谢大家的阅读。

🎈 本文由eriktse原创,创作不易,如果对您有帮助,欢迎小伙伴们点赞👍、收藏⭐、留言💬

19岁,性别未知,ACM-ICPC现役选手,ICPC亚洲区域赛银牌摆烂人,CCPC某省赛铜牌蒟蒻,武汉某院校计算机...

4 声望
0 粉丝
0 条评论
推荐阅读
【C++算法基础】#2暴力枚举的方法论与优化技巧 - 大力出奇迹
暴力枚举法(Brute Force)是许多刚接触编程或算法的选手最容易上手,也最明显的算法。虽然暴力枚举往往效率极低,但是可以很快地解决一些问题。

Eriktse阅读 121

关于 Ubuntu 20.04 LTS 的网络(dchp/dns/route/PPPoE)
前言旧时代网络管理软件 net-tools、NetworkManager新时代网络管理软件 iproute2、resolvectl新时代旧时代大致可按 2010 年划分检查网卡是否已插入网线直接查看文件 {代码...} ip addr 或 ip link 命令查看网卡状...

qbit2阅读 15k

初学后端,如何做好表结构设计?
这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。

王中阳Go4阅读 1.8k评论 2

封面图
一分钟搞明白!快速掌握 Go WebAssembly
最近因为各种奇怪的原因,更多的接触到了 WebAssembly。虽然之前很多博客也翻过写过各种文章,但总感觉欠些味道。于是今天梳理了一版,和大家一起展开学习。

煎鱼4阅读 2.3k

git/pip/easy_install/apt代理/源设置
在公司内网环境中,访问公网往往需要经过公司的代理,对于浏览器、IDE等开发工具,都提供了设置代理的配置,而git、pip、easy_install等CLI工具,则需要通过命令或配置文件进行代理设置;对于Python、Ubuntu、Mav...

乘着风1阅读 5.6k

Laravel入门及实践,快速上手ThinkSNS+二次开发
【摘要】自从ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都说技术门槛抬高了,其实你与TS+的距离仅仅只是学习一个新框架而已,所以,我们今天来说说Laravel的入门。

ThinkSNS1阅读 2.5k

C++编译器和链接器的完全指南
C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节。编译器和链接器是两个非常重要的概念。本文将详细介绍C++中的编译器和链接器以及它们的工作原理和使用方法。

小万哥2阅读 1.1k

封面图

19岁,性别未知,ACM-ICPC现役选手,ICPC亚洲区域赛银牌摆烂人,CCPC某省赛铜牌蒟蒻,武汉某院校计算机...

4 声望
0 粉丝
宣传栏