Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 23730|回复: 0

Ubuntu18.04下搭建LNMP教程-超详细图文(Nginx+MySQL+PHP含各种解决报错问题)

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-6-16 07:04:52 | 显示全部楼层 |阅读模式
      笔者最近在VM15.0上安装了Ubuntu18.04,先来安装一个LNMP(Nginx+MySQL+PHP)网站服务器架构,为后续的实验做准备~ 
     
    LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。
    L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
     
     操作系统:Ubuntu18.04
     版本:php 7.2.24  +  mysql 5.7 + nginx 1.14 
     
      目录: 
      1.更新源
      2.安装php7.2
      3.安装nginx
      4.安装mysql
      5.配置nginx解析php
      6.测试
     
     
      常见问题: 
      1.更新源报错?
      2.php7.2版本没有mcrypt?
      3.安装时没有设置mysql密码的情况下,怎么修改mysql密码?
      4.基础命令安装,例如:vim,net-tools等~
     
     
      笔者在安装过程中,也出现了很多问题,经过查阅很多资料以及借鉴了很多技术博客,笔者终于搭建好了LNMP环境。 
     
     
     
     
     
    搭建好的结果图是这样的:
     
     
     
     

     
    接下来,我们开始介绍搭建过程吧~
     
     
    1.首先要更新
     
    sudo apt-get update
    sudo apt-get upgrade

     

     
     
    sudo apt-get update
     
    注:这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在软件包管理器里看到的软件列表,都是通过update命令更新的。
     

     

    sudo apt-get upgrade
     
    注:这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
     
    总而言之,update是更新软件列表,upgrade是更新软件。
     
     
     
     
     
    问题一:你第一次执行这条命令的时候,很可能安装结束会报错(如下图),没关系,多执行几次此命令就好啦~
     
     
     
     
     
     
    更新完成啦~
     
     
     
    2.安装php
     
    首先查看一下是否安装了php及版本
     
    php -v

     

     
    通过下图我们可以看到,没有安装php
    那么我们安装php7.2(其他版本也可以,笔者这里安装的是php7.2版本)
     
    sudo apt install php7.2-cli

     

     
     
    安装完成后
    再查看一下php版本
     
    php -v
     
    php7.2安装完成~
     
     
     
    安装mcrypt,这是php7.2版本相比其他php低版本缺少的模块,后续也会用到,因此这里我们也需要安装~
     
    我们如何安装mcrypt?首先,打开一个终端窗口并使用以下命令安装必要的依赖项:
     
    sudo apt-get -y install gcc make autoconf libc-dev pkg-config
    sudo apt-get -y install php7.2-dev
    sudo apt-get -y install libmcrypt-dev

     

     
    一旦安装了依赖项,就可以使用以下命令安装mcrypt:
    sudo pecl install mcrypt-1.0.1

     

    就这样简单,Mcrypt现已安装。你现在可以按照那些需要Mcrypt的软件了。
     
    安装成功~
     
    3.安装nginx
     
    执行命令:
    sudo apt-get install nginx

     

     
     
    安装完成后,在Ubuntu18.04的浏览器中输入本机IP地址:80端口
     
     
    问题二:如何查看本机ip?
     
    在终端里输入命令  ifconfig
    发现没找到命令,根据提示,安装net-tools
    sudo apt install net-tools

     

    安装完成后,再次输入ifconfig,你就可以看到自己的ip啦~
     
     
    这个就是测试nginx安装成功的页面~
     
     
     
    4.安装mysql
     
    执行命令:
    sudo apt-get install mysql-server mysql-client
    sudo apt-get install php7.2-mbstring php7.2-mcrypt php7.2-mysql php7.2-xml

     

     
    虽然我看到很多教程上说,在安装过程中会出现设定MySQL初始密码的的步骤。
    不过我在安装过程中,真的是什么都没发生,为此,笔者以为是自己安装过程出了问题,卸载重装,结果就是这个问题,导致后面有些坑的出现。
     
    mysql安装完成后
     
    执行命令:
    mysql -u root -p

     

     
    会出现错误
     
     
    问题三:如何在没有设置mysql密码的情况下,修改mysql密码?
     
     
     
    当然,有些小伙伴没有安装vim,因此你需要先安装vim模块
    sudo apt install vim

     

    vim模块安装完成后
     
    执行命令:
     
    sudo vim /etc/mysql/debian.cnf

     

    进入这个页面
     
     
    把这个账户和密码记下来~
    账户应该是一样的,密码每个人的都不一样哦~
     
    在终端输入:
    mysql -u你记下来的账户名(debian-sys-maint) -p你记下来的密码(ZBms.......PV这个是笔者的)

     

     
     
    这样就进去了
     
    接着给mysql设置密码
     
    依次执行命令:
    1 show databases;
    2 use mysql;
    3 update user set authentication_string=PASSWORD("你设置的密码") where user='root';
    4 update user set plugin="mysql_native_password";
    5 flush privileges;
    6 quit;

     

     
     
     
     
    好啦~这样就完成了mysql5.7的安装~
     
     
    5.配置Nginx解析PHP
     
    首先修改你Nginx配置文件,执行命令:
     
    sudo vim /etc/nginx/sites-available/default

     

     
    41行改成下图 
     
     
    将56行到63行之间改成下图:
     
     
    保存退出

     

    重启Nginx:
     
    sudo service nginx restart

     

     
    接下来我们修改PHP相关配置文件:
     
    sudo vim /etc/php/7.2/fpm/pool.d/www.conf

     

     
    在37行加入下图红框中的代码~
     
     
     
    修改之后,我们重启php7.2-fpm
    sudo service php7.2-fpm start

     

     
     
    然后在/var/www里面新建info.php文件
     
    注:新建文件的命令  sudo touch info.php(你新建的文件)
     
    写入代码:
     
     
    保存退出
     
    进入浏览器,localhost/info.php
     
    成功~~~
     
     
    然后在/var/www里面新建mysql.php文件
     
    写入以下代码:
    1 <?php echo ‘<h1>Page loaded with PHP!</h1>‘;
    2 $conn = mysqli_connect(‘localhost‘, ‘site_admin‘, ‘your_password‘);
    3  
    4 if(!$conn){
    5 die(‘<h2>Error: </h2>‘ . mysqli_connect_error());
    6 }else{
    7 echo ‘<h2>Successfully Connected to MySQL Database!</h2>‘;
    8 }
    9 ?>

     

     
     
    叮咚~~
    完成~
     
     
     
     
     
    总结:在安装过程中还是遇到很多问题,不过还是一一解决了,感谢一些技术博客的教程给我提供了解决方案,不断成长,一起努力!
     
     
     
     
    参考资料:
     
    https://blog.csdn.net/u010953692/article/details/88761006
    https://blog.csdn.net/ljflm/article/details/86543329
    http://www.mamicode.com/info-detail-2327939.html
     
     
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-22 19:49 , Processed in 0.359962 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表