Ubuntu16.04 安装 php7.2 Nginx Mysql8

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

Ubuntu16.04 安装 php7.2 Nginx Mysql8_第1张图片
卸载apache2,依次执行以下命令

service apache2 stop
apt remove apache2*
apt autoremove

安装Nginx

apt install nginx

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

Ubuntu16.04 安装 php7.2 Nginx Mysql8_第2张图片
开始配置Nginx让其能支持PHP。

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

  1. Nginx作为web服务器通过80端口来负责监听http请求,监听到有请求就直接交给PHP的fpm模块进行处理。
  2. 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文件。该文件配置了监听路径:
Ubuntu16.04 安装 php7.2 Nginx Mysql8_第3张图片
通过该图得知,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

向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;

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

开始安装Mysql8

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

Ubuntu16.04 安装 php7.2 Nginx Mysql8_第4张图片
下载完成之后将下载的以.deb结尾的文件直接拖入终端命令行,这时系统会提示你安装软件,按照提示命令安装即可。

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

apt install lrzsz

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

dpkg -i mysql-apt-config_0.8.13-1_all.deb

运行命令后,终端会弹出选择界面,直接选择第一个即可,然后点击回车按钮。
Ubuntu16.04 安装 php7.2 Nginx Mysql8_第5张图片
然后会提示选择版本,直接选择默认的即可,直接回车
Ubuntu16.04 安装 php7.2 Nginx Mysql8_第6张图片
然后会继续弹出界面,选择OK,然后回车即可。
Ubuntu16.04 安装 php7.2 Nginx Mysql8_第7张图片
然后执行以下命令进行系统源的更新,可能花费时间较长。

apt upgrade
apt update

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

apt install mysql-server

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

mysql -u root -p

Ubuntu16.04 安装 php7.2 Nginx Mysql8_第9张图片
如果看见上图则代表安装成功,可以用PHP进行连接了。

你可能感兴趣的:(Ubuntu16.04 安装 php7.2 Nginx Mysql8)