前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu LNMPR环境搭建(Ubuntu 20.04 + Nginx1.8 + PHP 7.3 + Mysql8.0 + Redis5.0)

Ubuntu LNMPR环境搭建(Ubuntu 20.04 + Nginx1.8 + PHP 7.3 + Mysql8.0 + Redis5.0)

作者头像
OwenZhang
发布2022-03-01 15:29:05
1K0
发布2022-03-01 15:29:05
举报
文章被收录于专栏:Owen's WorldOwen's World

本文环境 Windows10,Ubuntu 20.04,Nginx1.8,PHP 7.3,Mysql8.0,Redis5.0 不懂的可以评论或联系我邮箱:owen@owenzhang.com 著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。

本文是Windows10下的Ubuntu下已实践,放心使用,不懂联系我

2022 年什么会火?Ubuntu LNMPR环境!

一、Ubuntu 20.04 SSH配置

先用命令查看ubuntu 是否安装ssh-server

代码语言:javascript
复制
ps -e|grep ssh

如果没有显示sshd,说明未安装ssh-server

安装ssh-server

代码语言:javascript
复制
sudo apt-get install openssh-server

启动ssh-server

代码语言:javascript
复制
/etc/init.d/ssh start

二、安装Nginx

先更新资源列表

代码语言:javascript
复制
sudo apt-get update

下面开始安装

代码语言:javascript
复制
sudo apt-get install nginx

查看nginx版本

代码语言:javascript
复制
nginx -v

输出:

代码语言:javascript
复制
nginx version: nginx/1.18.0 (Ubuntu)

补充说明:

Nginx 网站目录是 /var/www/html 将项目代码放在这个文件夹下(类似apache/htdocs) Nginx 网站配置文件位置是 /etc/nginx/sites-available/default

启动Nginx服务

代码语言:javascript
复制
sudo service nginx start 启动
sudo service nginx status 启动状态
sudo service nginx enable 开机自动启动
sudo service nginx disable 禁止开机自动启动
sudo service nginx stop 停止
sudo service nginx restart 重启

用命令查看状态

代码语言:javascript
复制
sudo lsof -i:80

也可以在虚拟机上的浏览器输入127.0.0.1可以看见Nginx页面 输入 ifconfig 查看ip 在虚拟机外访问也能看到

二、安装PHP7.3 和 PHP扩展

安装命令

代码语言:javascript
复制
sudo apt-add-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.3 php7.3-fpm

如果提示:

代码语言:javascript
复制
add-apt-repository: command not found

则运行下面命令即可:

代码语言:javascript
复制
sudo apt-get install software-properties-common python-software-properties

查看php版本

代码语言:javascript
复制
php -v

输出:

代码语言:javascript
复制
owenunix@DESKTOP-CC1MK5I:~$ php -v
PHP 7.3.33-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Nov 19 2021 06:25:05) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.33-1+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

三、配置Nginx和PHP-FPM

PHP-FPM 与 Nginx 通信方式有两种: 一种是基于TCP的 Internet domain socket 方式, 一种是 UNIX domain socket 方式。 UNIX domain socket 可以使同一台操作系统上的两个或多个进程进行数据通信。 UNIX domain socket 的接口和 Internet domain socket 很像,但它不使用网络底层协议来通信。

服务器压力不大的情况下,这两种方式性能差别不大,但在压力比较满的时候,用UNIX domain socket方式,效果确实比较好。

先配置Nginx

代码语言:javascript
复制
cd /etc/nginx/sites-available
sudo cp default default.bak
sudo vim /etc/nginx/sites-available/default

修改文件中的注释和7.4改成7.3和路径,如下图所示

php7.3-fpm启动失败

注意: 我们安装的是php7.3,但nginx里缺省值是php7.4-fpm.sock.如果它们不一致,则不能解析php页面,nginx 出现502 bad gateway 错误提示,nginx log日志出现错误

代码语言:javascript
复制
sudo cat /var/log/nginx/access.log

192.168.10.85 - - [07/Jan/2022:11:08:24 +0800] "GET /test.php HTTP/1.1" 502 568 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62"

接着查看PHP-FPM php.ini文件

代码语言:javascript
复制
sudo cat /etc/php/7.3/fpm/pool.d/www.conf

最后分别启动Nginx和PHP-FPM

代码语言:javascript
复制
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php7.3-fpm start
sudo /etc/init.d/php7.3-fpm restart

测试一下:

进入 /var/www/html 目录下 创建文件test.php

代码语言:javascript
复制
cd /var/www/html
sudo vim test.php

<?php phpinfo(); ?>

保存后退出在浏览器中访问 127.0.0.1/test.php 或者在虚拟机外访问 http://192.168.10.85/test.php (192.168.10.85 为虚拟机ip,输入 ifconfig 查看ip)

四、安装MySQL8.0

命令

代码语言:javascript
复制
sudo apt-get install mysql-server mysql-client

查看Mysql版本

代码语言:javascript
复制
owenunix@DESKTOP-CC1MK5I:/var/www/html$ mysql -V
mysql  Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

启动Mysql服务

如果有安装别的版本,需要先停止别的版本服务,再重启该8.0版本服务

代码语言:javascript
复制
sudo service mysql start 启动
sudo service mysql status 启动状态
sudo service mysql enable 开机自动启动
sudo service mysql disable 禁止开机自动启动
sudo service mysql stop 停止
sudo service mysql restart 重启

启动Mysql失败问题解决

代码语言:javascript
复制
owenunix@DESKTOP-CC1MK5I:/var/www/html$ sudo service mysql status
 * MySQL is stopped.
owenunix@DESKTOP-CC1MK5I:/var/www/html$ sudo service mysql restart
 * Stopping MySQL database server mysqld                                                       
 [ OK ]
 * Starting MySQL database server mysqld 
 su: warning: cannot change directory to /nonexistent: No such file or directory
[fail]

su: warning: cannot change directory to /nonexistent: No such file or directory

解决办法如下:

代码语言:javascript
复制
sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start
sudo service mysql restart

运行命令来测试mysql是否能成功运行。

代码语言:javascript
复制
mysql -uroot -p您的密码

首次安装密码应该是空的

修改root密码123456

代码语言:javascript
复制
//开启无密码登录skip-grant-tables
sudo service mysql stop
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
skip-grant-tables
sudo service mysql restart

//设置登录密码123456
mysql -uroot -p
use mysql;
flush privileges;
update mysql.user set authentication_string='', plugin='mysql_native_password' where user='root';
alter user 'root'@'localhost' identified by 'root'; 
set password for root@localhost = '123456';
flush privileges;
quit;
sudo service mysql restart

//注释无密码skip-grant-tables
sudo service mysql stop
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
#skip-grant-tables
sudo service mysql restart

修改外网可以连接Mysql

代码语言:javascript
复制
sudo service mysql stop
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注销掉  #bind-address           = 127.0.0.1
sudo service mysql restart

查看mysql日志

代码语言:javascript
复制
sudo cat /var/log/mysql/error.log

##1130 host is not allowed to connect to this mysql server

五、安装PHPmysql 扩展用来连接数据库

命令

代码语言:javascript
复制
sudo apt-get install php7.3-mysql

写个程序测试一下,在刚才写的test.php后面加上一段数据库连接代码(可以用mysqli或者PDO但是不要用mysql,因为PHP7不支持mysql)

Mysql的PHP扩展测试

代码语言:javascript
复制
cd /var/www/html
sudo vim test.php


<?php             

echo "Mysql连接测试: \n";
$mysql = new mysqli('127.0.0.1', 'root', '123456');
if ($mysql->connect_error) {
    echo "连接Mysql失败: " . $mysql->connect_error ;
}else{
    echo "连接Mysql成功";
}

?>

六、安装Redis5.0

命令

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install redis-server

查看Redis版本

代码语言:javascript
复制
owenunix@DESKTOP-CC1MK5I:~$ redis-server -v
Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923

启动Redis服务器

代码语言:javascript
复制
redis-server 

启动Redis客户端

Redis 服务器已启动,因此您可以启动 redis 客户端以在它们之间进行通信。

代码语言:javascript
复制
redis-cli

七、安装PHPredis 扩展用来连接Redis数据库

命令

代码语言:javascript
复制
sudo apt-get install php7.3-redis

查看安装php相关软件包

代码语言:javascript
复制
dpkg -l | grep 'php'

php.ini添加扩展文件

代码语言:javascript
复制
sudo vim /etc/php/7.3/cli/php.ini

extension=redis.so

查看php已安装扩展

代码语言:javascript
复制
php -m
php -m | grep redis
redis
root@DESKTOP-CC1MK5I:/home/owenunix#

重启php服务

代码语言:javascript
复制
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php7.3-fpm start
sudo /etc/init.d/php7.3-fpm restart

Redis的PHP扩展测试

代码语言:javascript
复制
cd /var/www/html
sudo vim test.php


<?php             

echo "Mysql连接测试: \n";
$mysql = new mysqli('127.0.0.1', 'root', '123456');
if ($mysql->connect_error) {
    echo "连接Mysql失败: " . $mysql->connect_error ;
}else{
    echo "连接Mysql成功";
}

echo "-------------------------------\n";

echo "Redis连接测试: \n";
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('owenkey2','owenzhang',60);
echo $redis->get('owenkey1');

echo "-------------------------------\n";
echo $redis->get('owenkey2');

echo "-------------------------------\n";

phpinfo();

?>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/01/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Ubuntu 20.04 SSH配置
    • 先用命令查看ubuntu 是否安装ssh-server
      • 安装ssh-server
        • 启动ssh-server
        • 二、安装Nginx
          • 先更新资源列表
            • 下面开始安装
              • 查看nginx版本
                • 补充说明:
                  • 启动Nginx服务
                    • 用命令查看状态
                    • 二、安装PHP7.3 和 PHP扩展
                      • 安装命令
                        • 查看php版本
                        • 三、配置Nginx和PHP-FPM
                          • 先配置Nginx
                            • php7.3-fpm启动失败
                              • 接着查看PHP-FPM php.ini文件
                                • 最后分别启动Nginx和PHP-FPM
                                  • 测试一下:
                                  • 四、安装MySQL8.0
                                    • 命令
                                      • 查看Mysql版本
                                        • 启动Mysql服务
                                          • 启动Mysql失败问题解决
                                            • 运行命令来测试mysql是否能成功运行。
                                              • 修改root密码123456
                                                • 修改外网可以连接Mysql
                                                  • 查看mysql日志
                                                  • 五、安装PHPmysql 扩展用来连接数据库
                                                    • 命令
                                                      • Mysql的PHP扩展测试
                                                      • 六、安装Redis5.0
                                                        • 命令
                                                          • 查看Redis版本
                                                            • 启动Redis服务器
                                                              • 启动Redis客户端
                                                              • 七、安装PHPredis 扩展用来连接Redis数据库
                                                                • 命令
                                                                  • 查看安装php相关软件包
                                                                    • php.ini添加扩展文件
                                                                      • 查看php已安装扩展
                                                                        • 重启php服务
                                                                          • Redis的PHP扩展测试
                                                                          相关产品与服务
                                                                          云数据库 Redis
                                                                          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                                                                          领券
                                                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档