Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程

看了好多人的博客,有的不全 or 有问题,整理了一下,适合小白

新手先整理几个小问题

1.为啥使用 Linux 搭建服务器?

一个是因为主流的云服务器太贵,买个低配的容易崩,听说 Linux 比较稳定,之后

2.PHP 和 Apache 啥关系?

一说到 php,  很多人会本能地想到 apache, 其 php 和 apache 没有半毛钱的关系

php 是语言, 而apache是web服务器

3.What is LAMP?

LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python

4.啥是 Linux 包管理器,为啥我的用不了?

(1)Linux 的常用包管理器 apt rpm yum 安装系统时是没有的,需要自己安装,就类似 windows 里面的添加/删除程序

(2)Ubuntu 默认的包管理器为 apt,而 rpm,yum 是 Redhat 的软件包管理器

(3)Ubuntu 绝大多数用 apt 就够了,当然也可以用 rpm yum 包管理器

1.安装 rpm 

apt install rpm

2.安装 yum

apt install yum

5.怎么查看 apt 管理的所有包,使用命令:

apt list

怎么查看 apt 所有已经安装的包,使用命令:

apt list --installed

一、Ubuntu 安装 MySQL

1.打开 Ubuntu 终端,使用下面速度命令进入管理员权限

sudo su

输入系统的密码

2.Ubuntu 上安装 mysql 非常简单只需要几条命令就可以完成

apt-get install mysql-server

apt-get install mysql-client

apt-get install libmysqlclient-dev

执行命令时会提示输入 Y 表示同意

3.Ubuntu 安装 net-tools

apt install net-tools

4.检查是否安装成功

sudo netstat -tap | grep mysql

如果看到有 mysql 的socket处于 listen 状态则表示安装成功

5.登陆mysql数据库可以通过如下命令:

mysql -u root -p
-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到 mysql
(默认会有一个 root 用户,密码为空)

6.然后就可以查看当前的数据库

show databases;

7.然后就是 MySQL 的一些操作了

分享我整理的 MySQL 常用命令:MySQL 常用命令大全

二、Ubuntu 安装 Apache2

1.Ubuntu 安装 Apache2

apt-get install apache2

输入 Y 同意

2.检查是否安装成功,在浏览器输入地址:

http:localhost

截图:

3.apache 的默认的一些目录

默认文档根目录是在 ubuntu 上的 /var/www 目录

配置文件是 / etc/apache2/apache2.conf

配置存储在的子目录在/etc/apache2 目录

4.我怎么手动开启/关闭 Apache 服务器呢?

(一般 Apache 服务器会自动启动)

(1)重启 Apache 服务器(常用)

sudo /etc/init.d/apache2 restart

(2)开启 Apache 服务器

sudo /etc/init.d/apache2 start

(3)关闭 Apache 服务器

sudo /etc/init.d/apache2 stop

三、安装安装 php 7.0

1.这里安装比较多,也是为了以后少一些麻烦,使用命令

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:ondrej/php && sudo apt-get update

sudo apt-get -y install php7.2

# 如果之前有其他版本PHP,在这边禁用掉

sudo a2dismod php5
sudo a2enmod php7.2 # 安装常用扩展(建议安装)
sudo apt-get -y install php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml php7.2-intl php7.2-odbc php7.2-cgi # 安装其他扩展(按需要安装)
sudo apt-get install php7.2-gd
sudo apt-get install php7.2-soap
sudo apt-get install php7.2-gmp
sudo apt-get install php7.2-pspell
sudo apt-get install php7.2-bcmath
sudo apt-get install php7.2-enchant
sudo apt-get install php7.2-imap
sudo apt-get install php7.2-ldap
sudo apt-get install php7.2-opcache
sudo apt-get install php7.2-readline
sudo apt-get install php7.2-sqlite3
sudo apt-get install php7.2-xmlrpc
sudo apt-get install php7.2-bz2
sudo apt-get install php7.2-interbase
sudo apt-get install php7.2-pgsql
sudo apt-get install php7.2-recode
sudo apt-get install php7.2-sybase
sudo apt-get install php7.2-xsl
sudo apt-get install php7.2-dba
sudo apt-get install php7.2-phpdbg
sudo apt-get install php7.2-snmp
sudo apt-get install php7.2-tidy
sudo apt-get install php7.2-zip

然后静静等待安装完成

四、介绍 Nginx

1.什么是 Nginx ?

Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务

2.不太懂,那 nginx 和 php 有什么关系?

php 是一门编程语言,但是只有 php 的话,你的 php 只能在你的服务器里的运行,比如你用 php 写了一个可以通过身高计算人的标准体重的程序,虽然这个程序可以在服务器运行,但是他还不能和客户交互,因为客户现在还不能访问你的 php 程序,他也不会去下载你的 php 程序到自己电脑里运行,他只想默默的通过浏览器告诉你他的身高,然后得到这个程序返回的体重,那么谁来得到这个用户发送过来的请求呢,又怎么把请求数据转发给对应的 php 程序呢 ?

nginx 就是为了解决上述问题而出现的,nginx 是一个已经写好的程序,需要安装配置,作用是专门接收处理客户通过浏览器等发送来的请求,并和你写的 php 程序交互,就这么简单,但是 nginx 不仅可以和你写的 php 程序交互,也可以和你写的其他程序交互,比如 C,python,因为不是所有人都用 php 来写 web 程序,简单点说 nginx 是一个可以监听处理 http 请求(浏览器请求)的程序,会装会配置,知道流程就可以用了,当然深入了解下就更好了。

 这样的话,nginx 就可以比喻处理成处理 http 请求业务的部门,是服务器和外部千千万万浏览器等客户端进行沟通的关口。php 是服务器内部一个数据加工部门,可以加工生成各种页面。客户端发送的 http 请求历经层层路由到达你的服务器,然后被nginx 逮个正着,统一听候 nginx 大人的调度,如果客户请求的是其他静态资源,比如 txt 文本,图片等,nginx 直接找到该资源,并返回给客户端,如果客户请求的是 php 程序,就找到对应的 php 程序,然后把客户数据给这个程序,让这个 php 程序运行一遍,再把这个程序运行的结果返回给客户端。

  当然 nginx 和 php 具体交互并没有那么简单,还需要保证规范和高效,在数据交换上,需遵守统一的规范,这个好理解,大家统一数据格式才不会乱套,效率才会更高。

更多文章

转载请注明出处:https://www.cnblogs.com/xpwi/p/9817440.html

Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程的更多相关文章

  1. ubuntu 12.04下搭建web服务器(MySQL+PHP+Apache) 教程

    最近,经理让我搭建一个服务器,我从网上找了一篇比较好的教程,按教程一步步执行感觉挺顺利,所以准备整理一下这个教程.尊重原版注明出处:http://news.2ky.cn/Linux/ubuntu-12 ...

  2. ubuntu 16.04下搭建web服务器(MySQL+PHP+Apache) 教程

    1.开始说明 下面很多可能参照网上其中以为前辈的,但有所改进吧.这些设置可能会有所不同,你需要根据不同情况进行修改. 安装apache2 2.切换管理员身份 在ubuntu中需要用root身份进行操作 ...

  3. Ubuntu搭建NFS服务器,NFS协议详细分析

    目录 1. Ubuntu搭建NFS服务器 2. NFS协议分析 2.1 实验拓扑: 2.2 在kali抓包分析 1. Ubuntu搭建NFS服务器 ​ NFS(Network FileSystem,网 ...

  4. 快速搭建Web服务器软件PHP+Apache+MySQL

    搭建网站或者博客,需要一个合适的 Web 服务器.除了如下能在购买的虚拟空间上进行操作外,我们也可以在自己的电脑上搞定,因为可以用来方便快捷地测试网站或者博客主题,无论是 Wordpress.Joom ...

  5. ubuntu搭建web服务器

    https://www.linuxidc.com/Linux/2015-11/125477.htm 到“sudo apt-get install libapache2-mod-php5”出现1错误.

  6. ubuntu搭建svn服务器并htpp访问版本库并svn与web同步

    Ubuntu搭建SVN服务器多版本库 1  介绍   Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可 ...

  7. CentOS 6.2下搭建Web服务器

    1Centos 6.2下搭建web服务器 如今,Linux在Web应用越来越广,许多企业都采用Linux来搭建Web服务器,这样即节省了购买正版软件的费用,而且还能够提高服务器的安全性. 之前我们介绍 ...

  8. Android手机用KSWEB搭建Web服务器成功安装WordPress

    之前部落分享的几个免费Web服务器软件都是用来安装在本地电脑上,搭建Apache.PhpMyAdmin.MySQL等网站运行环境,然后我们就可以在电脑上测试运行Wordpress.Discuz! 论坛 ...

  9. CentOS 6.3下搭建Web服务器

    准备前的工作: 1.修改selinux配置文件(/etc/sysconfig/selinux) 关闭防火墙 (1)把SELINUX=enforcing注释掉 (2)并添加SELINUX=disable ...

随机推荐

  1. 封装 原生 fetch

    1, 简介 fetch方法是 Fetch API的一个方法,提供了一种简单.合理的方式来跨网络异步获取资源. 与原来的XMLHttpRequest比较,fetch更容易与其他的技术结合:比如servi ...

  2. The Annoying Bug

    log里看不出问题,直接客户端就disconnected. gdb 挂了也不会停住,继续跑得跟正常人似的 再连根本不正常的了. 硬件: a , 主板CPU更换过 b,USB3.0 软件: 无有更换,但 ...

  3. HLS:OpenCV和RTL代码转换关系

    OpenCV 图像处理是基于存储器帧缓存而构建的, 它总是假设视频帧数据存放在外部 DDR 存储器中. 由于处理器的小容量高速缓存性能的限制, 因此, OpenCV 访问局部图像性能较差. 并且, 从 ...

  4. 【总结】sqli-labs Less(1-35) 小结

    0x00   工具 phpstudy2016:链接:http://pan.baidu.com/s/1bpbEBCj 密码:fmr4 sqli-labs-master:链接:http://pan.bai ...

  5. Android 4.4 KitKat终于支持录屏(Screen Recording)了!

    本文介绍了Android 4.4 KitKat系统新增加的录屏功能以及录屏方法,和限制因素.如果App由于版权方面的原因,不想被记录屏幕录像的话,APP只需要在相应的SurfaceView请求“Sur ...

  6. (转).NET技术大系概览 (迄今为止最全的.NET技术栈)

    前言 .Net推出13年了,Visual Studio 2015 / .NET Framework 4.6昨天也发布了. 从2002年的.NET 1.0开始,1.1,2.x,3.x,4.x,每个新版本 ...

  7. ECharts概念学习系列之ECharts官网教程之在 webpack 中使用 ECharts(图文详解)

    不多说,直接上干货! 官网 http://echarts.baidu.com/tutorial.html#%E5%9C%A8%20webpack%20%E4%B8%AD%E4%BD%BF%E7%94% ...

  8. mysql 导入 csv 格式数据

    mysql --local-infile -uroot -proot task_ops -e "LOAD DATA LOCAL INFILE '/tmp/data_import/app8.c ...

  9. python-多进程类封装

    #!/usr/bin/python import multiprocessing,time class ClockProcess(multiprocessing.Process): def __ini ...

  10. ASP.NET Core 的启动和运行机制

    目录 ASP .NET Core 的运行机制 ASP .NET Core 的启动 ASP .NET Core 的管道和中间件 参考 ASP .NET Core 的运行机制 Web Server: AS ...