Ubuntu LNMPR环境搭建(Ubuntu 20.04 + Nginx1.8 + PHP 7.3 +

本文环境 Windows10,Ubuntu 20.04,Nginx1.8,PHP 7.3,Mysql8.0,Redis5.0著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。

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

一、Ubuntu 20.04 SSH配置先用命令查看ubuntu 是否安装ssh-serverps -e|grep ssh

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

安装ssh-serversudo apt-get install openssh-server启动ssh-server/etc/init.d/ssh start

二、安装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 在虚拟机外访问也能看到

二、安装PHP7.3 和 PHP扩展安装命令sudo apt-add-repository ppa:ondrej/phpsudo apt-get updatesudo 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 -vPHP 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 GroupZend 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方式,效果确实比较好。

先配置Nginxcd /etc/nginx/sites-availablesudo cp default default.baksudo 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日志出现错误

sudo cat /var/log/nginx/access.log192.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

最后分别启动Nginx和PHP-FPMsudo /etc/init.d/nginx restartsudo /etc/init.d/php7.3-fpm startsudo /etc/init.d/php7.3-fpm restart测试一下:

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

cd /var/www/htmlsudo 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命令sudo apt-get install mysql-server mysql-client查看Mysql版本owenunix@DESKTOP-CC1MK5I:/var/www/html$ mysql -Vmysql 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 stopsudo usermod -d /var/lib/mysql/ mysqlsudo service mysql startsudo service mysql restart运行命令来测试mysql是否能成功运行。mysql -uroot -p您的密码

首次安装密码应该是空的

修改root密码123456//开启无密码登录skip-grant-tablessudo service mysql stopsudo vim /etc/mysql/mysql.conf.d/mysqld.cnfskip-grant-tablessudo service mysql restart//设置登录密码123456mysql -uroot -puse 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-tablessudo service mysql stopsudo vim /etc/mysql/mysql.conf.d/mysqld.cnf#skip-grant-tablessudo service mysql restart修改外网可以连接Mysqlsudo service mysql stopsudo vim /etc/mysql/mysql.conf.d/mysqld.cnf注销掉 #bind-address = 127.0.0.1sudo service mysql restart

查看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)

Mysql的PHP扩展测试cd /var/www/htmlsudo 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命令sudo apt-get updatesudo apt-get install redis-server查看Redis版本owenunix@DESKTOP-CC1MK5I:~$ redis-server -vRedis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923启动Redis服务器redis-server

启动Redis客户端

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

redis-cli

七、安装PHPredis 扩展用来连接Redis数据库命令sudo apt-get install php7.3-redis查看安装php相关软件包dpkg -l | grep ‘php’

php.ini添加扩展文件sudo vim /etc/php/7.3/cli/php.iniextension=redis.so

查看php已安装扩展php -mphp -m | grep redisredisroot@DESKTOP-CC1MK5I:/home/owenunix#重启php服务sudo /etc/init.d/nginx restartsudo /etc/init.d/php7.3-fpm startsudo /etc/init.d/php7.3-fpm restart

Redis的PHP扩展测试cd /var/www/htmlsudo 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();?>

Buy me a cup of coffee 🙂 你可以用爱得到全世界,你也可以用恨失去全世界

Ubuntu LNMPR环境搭建(Ubuntu 20.04 + Nginx1.8 + PHP 7.3 +

相关文章:

你感兴趣的文章:

标签云: