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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: Ubuntu LNMPR环境搭建(Ubuntu 20.04 + Nginx1.8 + PHP 7.3 + Mysql8.0 + Redis5.0)
本文环境 Windows10,Ubuntu 20.04,Nginx1.8,PHP 7.3,Mysql8.0,Redis5.0\
不懂的可以评论或联系我邮箱:owen@owenzhang.com\
著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。

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

image.png

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

一、Ubuntu 20.04 SSH配置

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

ps -e|grep ssh

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

安装ssh-server

sudo apt-get install openssh-server

启动ssh-server

/etc/init.d/ssh start

image.png

二、安装Nginx

先更新资源列表

sudo apt-get update

下面开始安装

sudo apt-get install nginx

查看nginx版本

nginx -v

输出:

nginx version: nginx/1.18.0 (Ubuntu)

补充说明:

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

启动Nginx服务

sudo service nginx start 启动
sudo service nginx status 启动状态
sudo service nginx enable 开机自动启动
sudo service nginx disable 禁止开机自动启动
sudo service nginx stop 停止
sudo service nginx restart 重启

用命令查看状态

sudo lsof -i:80

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

image.png

image.png

二、安装PHP7.3 和 PHP扩展

安装命令

sudo apt-add-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.3 php7.3-fpm

如果提示:

add-apt-repository: command not found

则运行下面命令即可:

sudo apt-get install software-properties-common python-software-properties

查看php版本

php -v

输出:

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

image.png

三、配置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

cd /etc/nginx/sites-available
sudo cp default default.bak
sudo vim /etc/nginx/sites-available/default

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

image.png

php7.3-fpm启动失败

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

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文件

sudo cat /etc/php/7.3/fpm/pool.d/www.conf

image.png

最后分别启动Nginx和PHP-FPM

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

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)

image.png

image.png

四、安装MySQL8.0

命令

sudo apt-get install mysql-server mysql-client

查看Mysql版本

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版本服务

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失败问题解决

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

解决办法如下:

sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start
sudo service mysql restart

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

mysql -uroot -p您的密码

首次安装密码应该是空的

修改root密码123456

//开启无密码登录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

sudo service mysql stop
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注销掉  #bind-address           = 127.0.0.1
sudo service mysql restart

image.png

查看mysql日志

sudo cat /var/log/mysql/error.log

1130 host is not allowed to connect to this mysql server

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

命令

sudo apt-get install php7.3-mysql

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

image.png

Mysql的PHP扩展测试

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成功";
}

?>

image.png

六、安装Redis5.0

命令

sudo apt-get update
sudo apt-get install redis-server

查看Redis版本

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服务器

redis-server 

image.png

启动Redis客户端

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

redis-cli

image.png

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

命令

sudo apt-get install php7.3-redis

查看安装php相关软件包

dpkg -l | grep 'php'

image.png

php.ini添加扩展文件

sudo vim /etc/php/7.3/cli/php.ini

extension=redis.so

image.png

查看php已安装扩展

php -m
php -m | grep redis
redis
root@DESKTOP-CC1MK5I:/home/owenunix#

重启php服务

sudo /etc/init.d/nginx restart
sudo /etc/init.d/php7.3-fpm start
sudo /etc/init.d/php7.3-fpm restart

image.png

Redis的PHP扩展测试

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();

?>

image.png

Buy me a cup of coffee :)

觉得对你有帮助,就给我打赏吧,谢谢!

2538d4.jpg

目录
相关文章
|
24天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
27天前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
25天前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
26 4
|
29天前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
27天前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效协同开发策略####
本文深入探讨了PHP与MySQL在Web开发中的协同工作机制,通过优化配置、最佳实践和高级技巧,展示了如何提升数据库交互性能,确保数据安全,并促进代码可维护性。我们将从环境搭建讲起,逐步深入到查询优化、事务管理、安全防护及性能调优等核心环节,为开发者提供一套实战驱动的解决方案框架。 ####
|
20天前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
23 0
|
27天前
|
关系型数据库 MySQL PHP
PHP与MySQL的深度整合:构建高效动态网站####
在当今这个数据驱动的时代,掌握如何高效地从数据库中检索和操作数据是至关重要的。本文将深入探讨PHP与MySQL的深度整合方法,揭示它们如何协同工作以优化数据处理流程,提升网站性能和用户体验。我们将通过实例分析、技巧分享和最佳实践指导,帮助你构建出既高效又可靠的动态网站。无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用的技能。 ####
21 0
|
Ubuntu 关系型数据库 MySQL
如何在 Ubuntu 20.04 上安装 MySQL
MySQL是最流行的开源关系数据库管理系统。它速度快,容易使用,容易扩展,并且流行的LAMP和LEMP的一部分。 这篇指南讲解了如何在 Ubuntu 20.04上安装和保护 MySQL。 一、前提条件 确保你以 sudo 用户身份登录 二、在 Ubuntu 上安装 MySQL 在写作这篇文章的时候,Ubuntu 源仓库中最新的 MySQL 版本号是 MySQL 8.0。
53960 4
如何在 Ubuntu 20.04 上安装 MySQL
|
Ubuntu 关系型数据库 MySQL
ubuntu安装mysql
ubuntu安装mysql
548 0
ubuntu安装mysql
|
关系型数据库 MySQL Linux
如何在Ubuntu14.04中安装mysql
接触过MySQL的小伙伴们都知道,在Windows下安装MySQL是一件让人十分头大的事情,但是在Ubuntu等其他Linux系统中安装MySQL就简单很多了,具体的教程如下。
1608 0