大部分操作都是根据转载中的操作一样
那么中间又遇到什么坑了呢
文档中没有安装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日志报了什么错
发现没什么错,有错也不是访问时候报的错。
之后查看nginx报了什么错
cat /var/log/nginx/error.log
发现下面一条最新的报的错是 /run/php/php7.2-fpm.sock 没找到, 当时就恍然大悟,好尴尬, 因为复制的是7.2的配置, 安装的是7.3的所以没有找到。
更改nginx配置文件
更改为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
卸载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进行连接了。