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 终端,使用下面速度命令进入管理员权限
sudu 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 具体交互并没有那么简单,还需要保证规范和高效,在数据交换上,需遵守统一的规范,这个好理解,大家统一数据格式才不会乱套,效率才会更高。