大部分操作都是根据转载中的操作一样
那么中间又遇到什么坑了呢

文档中没有安装php-fpm
apt-get install php7.3-fpm

源地址过慢

更换了阿里的源地址
	//首先备份原先的源
	sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
	**1.更改源**
		vim /etc/apt/sources.list
	dG // 删除所有内容
	**2.之后上阿里源**
	//访问地址
	https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b116CS8mZ
	更换了源地址 确实快了
	**3.更新源**
	sudo apt-get update
	**4.更新软件**
	sudo apt-get upgrade

nginx安装报错 502

因为我安装的PHP版本是7.3,跟转载的有一点不一样, 一顿操作之后发现访问PHP报错502

之后我查看系统日志

首先查看PHP日志报了什么错

ubuntu 安装nginx和centos安装nginx区别_nginx

发现没什么错,有错也不是访问时候报的错。

之后查看nginx报了什么错

cat /var/log/nginx/error.log

ubuntu 安装nginx和centos安装nginx区别_nginx_02


发现下面一条最新的报的错是 /run/php/php7.2-fpm.sock 没找到, 当时就恍然大悟,好尴尬, 因为复制的是7.2的配置, 安装的是7.3的所以没有找到。

更改nginx配置文件

ubuntu 安装nginx和centos安装nginx区别_php_03


更改为7.3之后重启nginx之后好使了

错误很愚蠢, 但是学到查错的过程

安装nginx依赖库(我不知道不安装什么后果,我就是看见别的文档中安装了)

1.安装nginx依赖库

1.1安装pcre依赖库

root@yatces-virtual-machine:~# apt-get install libpcre3 libpcre3-dev

1.2安装zlib依赖库
root@yatces-virtual-machine:~# apt-get install zlib1g-dev
1.3安装ssl依赖库
root@yatces-virtual-machine:~# apt-get install openssl

继续努力, 每天学一点

以下是备份

怕转载的删除,复制转载内容

Ubuntu16.04 安装 php7.2 Nginx Mysql8
系统环境为阿里云的云服务器,系统为Ubuntu 16.04。

先更新apt源。

apt update

可以通过 apt list | grep php7 命令查看是否有php7.2的包,默认是没有的,只有7.0的。

由于官方的源没有7.2版本的php,所以要添加额外的源,依次执行以下命令。

apt-get install software-properties-common python-software-properties 
add-apt-repository ppa:ondrej/php
apt update

再次执行 apt list | grep php7 命令就可以发现列表中已经包含有7.2版本的包了。

安装php7.2

apt install php7.2

安装完成,执行 php --version 查看是否安装成功

root@iZbp1e720rsobv4u9x7y85Z:~# php --version
PHP 7.2.18-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May  3 2019 09:23:41) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.18-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

能够输出版本号就代表安装成功。

上述安装php命令会自动安装apache2服务,可以通过 service apache2 status 查看

service apache2 status

ubuntu 安装nginx和centos安装nginx区别_nginx_04


卸载apache2,依次执行以下命令

service apache2 stop
apt remove apache2*
apt autoremove

安装Nginx

apt install nginx

太多了复制一下

Ubuntu16.04 安装 php7.2 Nginx Mysql8
系统环境为阿里云的云服务器,系统为Ubuntu 16.04。

先更新apt源。

apt update
1
可以通过 apt list | grep php7 命令查看是否有php7.2的包,默认是没有的,只有7.0的。

由于官方的源没有7.2版本的php,所以要添加额外的源,依次执行以下命令。

apt-get install software-properties-common python-software-properties 
add-apt-repository ppa:ondrej/php
apt update
再次执行 apt list | grep php7 命令就可以发现列表中已经包含有7.2版本的包了。

安装php7.2

apt install php7.2
1
安装完成,执行 php --version 查看是否安装成功

root@iZbp1e720rsobv4u9x7y85Z:~# php --version
PHP 7.2.18-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May  3 2019 09:23:41) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.18-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
能够输出版本号就代表安装成功。

上述安装php命令会自动安装apache2服务,可以通过 service apache2 status 查看

service apache2 status
1
apache运行状态
卸载apache2,依次执行以下命令

service apache2 stop
apt remove apache2*
apt autoremove
1
2
3
安装Nginx

apt install nginx
1
安装完成后,可以执行 service nginx status 命令查看nginx运行状态

在这里插入图片描述
开始配置Nginx让其能支持PHP。

Nginx转发php请求的详细流程自行百度,这里只是简单介绍一下工作原理。

Nginx作为web服务器通过80端口来负责监听http请求,监听到有请求就直接交给PHP的fpm模块进行处理。
PHP的fpm模块负责监听请求(可以通过端口也可以通过sock套接字,由配置文件决定)。监听到请求之后交给php解释器来执行php代码。
所以现在需要知道PHP的fpm模块的监听路径,fpm的配置文件是位于 /etc/php/7.2/fpm/ 目录下的 php-fpm.conf 文件,这个文件并没有监听配置文件,但该文件最后一行引入了外部配置文件 include=/etc/php/7.2/fpm/pool.d/*.conf,表示引入pool.d目录下的所有以.conf结尾的文件作为配置文件,查看该目录,只有一个www.conf文件。该文件配置了监听路径:
在这里插入图片描述
通过该图得知,fpm监听路径为 /run/php/php7.2-fpm.sock,这个在配置Nginx时需要用到。

开始配置Nginx,安装好的Nginx主配置文件是位于 /etc/nginx/ 目下的nginx.conf文件。
在这里插入图片描述
该配置文件中又引入了 /etc/nginx/sites-available 目录下的所有文件来作为配置文件,所以可以直接在 /etc/nginx/sites-available 目录下编写自定义的访问配置文件。

将 sites-available 目录下的default文件改个名字,然后新建个default文件来作为自定义配置文件

mv default default2
vim default
1
2
向default文件写入以下内容

server {
	#指定让Nginx监听哪个端口
    listen       80;
    #指定访问域名,也就是用这个域名访问时会用这个配置文件
    server_name  domain.cn;
    #指定存放站点的根目录路径
    root         /web/domain;
    #执行顺序
    index index.html index.htm index.php;
    #拦截所有请求,用于伪静态去掉index.php
    location / { 
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /index.php?s=$1  last;
            break;
        }
    }
    #拦截所有.php结尾的请求,交给 fastcgi_pass 选项指定的文件处理,这里就是PHP fpm模块监听的路径,前面要加个unix:
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
至此配置完成,现在可以在站点根目录下创建index.php文件,写入以下内容:

<?php echo 1;
1
保存后,打开配置的 domain.cn 域名,正确看到输出内容后就代表配置成功。

开始安装Mysql8

Ubuntu的apt安装方式里面没有8.0的版本,所以需要自己下载。进入https://dev.mysql.com/downloads/repo/apt/,然后点击下方的Download按钮开始下载。

在这里插入图片描述
下载完成之后将下载的以.deb结尾的文件直接拖入终端命令行,这时系统会提示你安装软件,按照提示命令安装即可。

在这里插入图片描述
执行以下命令安装所需软件。

apt install lrzsz
1
安装完成后再次拖入文件到终端命令行。然后执行以下命令

dpkg -i mysql-apt-config_0.8.13-1_all.deb
1
运行命令后,终端会弹出选择界面,直接选择第一个即可,然后点击回车按钮。
在这里插入图片描述
然后会提示选择版本,直接选择默认的即可,直接回车
在这里插入图片描述
然后会继续弹出界面,选择OK,然后回车即可。
在这里插入图片描述
然后执行以下命令进行系统源的更新,可能花费时间较长。

apt upgrade
apt update
1
2
完成之后就可以在apt列表里面看见mysql 8.0的包了,开始安装Mysql8,执行以下命令

apt install mysql-server
1
第一步会让你输入密码,然后确认密码。确认密码成功之后会弹出界面让你选择加密方式,这里选择第二个5.x版本的,然后点击回车
在这里插入图片描述
如果没有异常提示的话,至此Mysql8.0就安装完成了。可以输入以下命令,然后输入密码来测试是否安装成功

mysql -u root -p
1
在这里插入图片描述
如果看见上图则代表安装成功,可以用PHP进行连接了。