TypechoJoeTheme

Roookie博客 | 记录 · 收纳 · 分享

统计
登录
用户名
密码

知识分子没文化

我们把世界看错了,反而说它欺骗了我们

在ubuntu上手动搭建LNMP环境

2021-01-28
/
0 评论
/
254 阅读
/
正在检测是否收录...
01/28

目录:

music

环境说明:

Linux:ubuntu 20.04

Nginx:1.18

Mysql:8.0

PHP:7.3

前言:

什么是LNMP?简单来说,就是网站的运行环境,即L(Linux) +N(Nginx) +M(Mysql/MariaDB)+P(php/Perl/Python),这四类开源软件技术,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

现在有软件能很方便地安装LNMP环境,比如宝塔面板,优点就是简单快捷,对于使用者的技术要求不高,适合没有基础的非专业人士建站使用,但同时由于过于方便,在建站中反而学习不到相关的技术,因此我在建站过程中果断弃用宝塔面板。选择自己手动搭建LNMP环境。

当时搭建LNMP环境的过程中,网上找了很多资料和博客都是良莠不齐,同时也踩了不少坑,不过好在最后还是搭建成功了,所以就把整个过程整理整理记录下来,防止以后遗忘。

不想自己折腾的小伙伴可以直接安装宝塔面板一键安装LNMP环境,不同版本的Linux系统安装宝塔命令的命令不同,相关方法可以查阅我的另一篇博客:Linux系统安装宝塔面板

以下就是ubuntu环境中我配置LNMP环境的全过程:

一、安装nginx

引用相关百科中的内容简单介绍一下nginx: nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

安装nginx的命令很简单,就一句话:

sudo apt install nginx

安装完之后,访问服务器IP地址,即可访问到Nginx的初始页面:

二、安装php及部分组件

sudo apt install php-common php-cli php-fpm php-mysql php-mbstring php-curl php-gd php-twig php-json php-opcache php-readline

此命令没有指定版本,默认安装的是最新版本的php和组件,如果要安装旧版本的php,参照以下方法:

# 1.添加仓库:
sudo apt install software-properties-common
# sudo apt install python-software-properties
sudo add-apt-repository ppa:ondrej/php
# 2.更新软件源
sudo apt update
# 3.安装指定版本php
sudo apt install php[版本号]-common php[版本号]-fpm php[版本号]-mysql php[版本号]-mbstring php[版本号]-curl php[版本号]-gd php[版本号]-json php[版本号]-opcache php[版本号]-readline

三、配置Nginx文件

第一步中,我们已经能够成功访问Nginx页面了,此时再次配置Nginx文件,使其可以处理php页面。

关于Nginx文件的配置,我也是在网上查了很多东西才有点头绪的(所以就想多哔哔几句)。

一般来说(适用于在ubuntu环境下使用apt命令安装的nginx),nginx的配置文件是/etc/nginx目录下的nginx.conf,这个文件中的配置信息可以用include语句从其他目录引入配置文件。其中,这个目录(/etc/nginx)下的sites-enabled文件夹就是被引入的,同目录下还有一个名为sites-available的文件夹,这两个文件夹的作用是不同的,简单介绍一下。sites-available文件夹里面放的是不生效的网站配置文件,sites-enabled文件夹里是目前生效的网站配置文件。在默认未修改的情况下,sites-available文件夹中存放了一个nginx静态页面的配置文件default,对应sites-enabled文件夹中放的是default这个文件的软连接(不知道什么是软连接的同学点这里,简单说就是类似于快捷方式),这样一来就能访问到默认页面了。

所以,就可以这样修改配置文件,即需要建立新站点时,在sites-available中新建一个配置文件(文件名不做要求),在这个文件中写入站点的配置信息并保存,然后在sites-enabled文件夹中建立指向这个配置文件的软连接,即可完成配置。当然,有聪明的小伙伴肯定能想到,为什么要这么麻烦呢,直接更改sites-enabled下的配置文件不行么,那当然是可以了,接下来的配置方法就是基于这个思路的。

哔哔了这么多,现在就开始吧:

# 直接在sites-enabled文件夹下面进行编辑
cd /etc/nginx/sites-enabled

# 删除/etc/nginx/sites-enabled文件夹中的默认配置文件
sudo rm default

touch命令在这个文件夹中新建一个配置文件website,然后进行编辑

# 新建配置文件
sudo touch website
# 编辑这个配置文件
sudo nano website

将下面的配置直接粘贴到这个文件中,关于这段配置的含义及修改方法,下面注释中做了简单说明,更详细的配置可以参考这篇文章:nginx 配置详解(新手必看)

# HTTP服务配置
server {
    listen 80;
    # www.langp.wang改为你的域名或者“_”
    server_name www.langp.wang;
    # 存放网站文件的根目录,/var/www/html是nginx静态文件所在的默认目录,这里新建一个文件夹website来放新的网站文件
    root /var/www/html/website;

    # 以下的配置信息基本可以不用改了,复制过去就能用
    index index.html index.htm index.php;
    location / {
        try_files $uri $uri/ =404;
    }

    # 加入php的配置,使服务器可以处理php网页
    location ~ \.php$ {
        #include snippets/fastcgi-php.conf;

        # 使用php-fpm(或其他unix套接字):
        fastcgi_pass unix:/run/php/php-fpm.sock;
        # 使用php-cgi(或其他tcp套接字):
        #fastcgi_pass 127.0.0.1:9000;
        # 设置脚本文件请求的路径
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 引入fastcgi的配置文件 
        include fastcgi_params;
    }
}

修改完成后,ctrl + o保存,ctrl + x退出,然后使用以下命令重启Nginx服务,使配置生效:

sudo nginx -s reload
# 或者
sudo service nginx reload

Nginx配置完了,现在来看是否配置成功,在网站根目录/var/www/html/website(或者是你配置文件中自定义的网站根目录)下新建一个文件index.php,在里面键入:

<?php phpinfo(); ?>

然后保存退出。

如果前面配置都没问题的话,现在用浏览器访问服务器ip地址或者解析后的域名就能访问到本机安装的关于php的信息了:

四、安装配置Mysql

Mysql就不用多说了,大名鼎鼎的关系型数据之一。

1. 输入以下命令安装:
sudo apt install mysql-server
2. 修改Mysql加密方式,并修改密码

安装完成之后,先登录mysql

sudo mysql -uroot -p

接下来提示输入密码,直接按回车即可进入

然后修改mysql加密方式和密码:

# 对于的mysql 8以上,使用以下命令更改mysql8的加密方式,为root用户更改密码:
alter user 'root'@'localhost' identified with mysql_native_password by '新密码';

# mysql 8以下:
update mysql.user set plugin='mysql_native_password';
update mysql.user set password=password("新的密码") where user='root';
#或者
set password for root@localhost=password('新的密码');

# 我们也还可以使用mysqladmin命令来进行修改
mysqladmin -u root -p '旧密码' password '新密码';
alter user root@localhost identified by '新密码';

修改完之后,刷新权限信息,输入:

flush privileges;

然后输入exit退出mysql控制台,重新登录mysql,使用刚才的密码就能进入数据库了。

五、上传网站文件

在网站根目录下,将前面测试用的“index.php”文件删除。

然后将相关的网站文件通过FTP工具或者其他手段上传到nignx文件中设置的根目录下,在浏览器输入域名或者IP地址,就能访问到网站了。

六、安装配置phpMyAdmin

到这里,LNMP环境算是安装完了。但是目前只能用命令行方式管理数据库,为了减轻我们的工作量,我们需要安装一个图形界面工具来管理数据库。phpMyAdmin就是这样一个图形化的工具,可以直接在网页端管理数据库,当然,如果有其他数据库工具,这一步可以不安装。

phpMyAdmin的安装命令同样很简单:

sudo apt install phpmyadmin

安装过程中会弹出来几个界面选择:

由于我们安装的服务器软件是nginx,所以这里的apache2lighttpd都不选,直接按Esc退出;

选择yes

输入一个密码

再次输入密码确认,安装就算完成。

安装完成后还要把phpMyAdmin连接到nginx服务器根目录上,因此建立软连接:

sudo ln -s /usr/share/phpmyadmin /var/www/html/website

此时在浏览器中访问:域名/phpmyadmin/index.php,即可访问到phpmyadmin的登陆页面:

mysql的帐号密码即可登录管理数据库。

到这里LNMP环境的搭建就算是全部完成了,把相应的网站文件上传到网站的根目录下,用域名或者ip地址就可以访问了。

另:如果你跟我一样都是安装typecho博客框架,光这样配置是不行,还需要在配置文件中加入以下内容,这一部分是来设置博客伪静态,typecho博客若不进行此处设置,则会出现只能访问首页却访问不了后台和文章的问题:

    if (-f $request_filename/index.html) {
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php) {
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename) {
        rewrite (.*) /index.php;
    }

# 不安装typecho的可以忽略这步
建站LinuxubuntuMysqlNginxLNMP
朗读
赞 · 2
版权属于:

Roookie博客 | 记录 · 收纳 · 分享

本文链接:

https://www.langp.wang/archives/49/(转载时请注明本文出处及文章链接)

评论 (0)
知识分子没文化
我们把世界看错了,反而说它欺骗了我们
53 文章数
6 评论量

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

标签云