分类 网站建设 下的文章

1、mysql只能使用sudo mysql免密登陆/如何关闭sudo mysql免密登陆?

MariaDB 10.31关闭免密登陆方法:
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;SET PASSWORD = PASSWORD('foo');
然后flush一下即可。

2、php不生效。

1、检查是不是配置文件夹sites-enable还有其他配置文件影响。
2、在Ubuntu下安装的php-fpm是7.4版本的,端口不是9000,而要这么设置:(见安装wordpress的教程)

3、wordpress不能上传文件、不能安装插件,弹出ftp来。

首先确认wordpress的文件夹改成了777
然后在配置文件里加这些:
修改wp-config.php文件

define("FS_METHOD", "direct");

define("FS_CHMOD_DIR", 0777);

define("FS_CHMOD_FILE", 0777);

4、typecho进后台显示404

一般的出现这种情况时,nginx.conf里的的location设置都是类似这样

location ~ .*\.php$

要支持pathinfo,要改成

location ~ .*\.php(\/.*)*$

5、typecho点击文章标题无法进入文章,地址栏变了,但不会进入文章

在location里加入如下一行试试

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

1 背景

Ubuntu 20.04是目前较常用的稳定版本,也是很多云服务器厂商提供的最新系统,很多人用来搭建服务器,以支持自己的个人网站。常用的博客系统例如wordpress、typecho都需要nginx、mysql、php环境。
然而,网上的LNMP教程极其老旧,有以下问题:

  • 大部分都是基于centos系统的教程,与ubuntu情况有出入。
  • 使用的Ubuntu版本很旧,大部分都是18.04甚至还有在用16.04的,已经过时。有的明明是20.04,但是还在用apt-get,动摇对文章可行性的信心。
  • 文章中提出的操作不可行,或者跳步,对初学者不友好。
  • 排版混乱,可读性差,让人失去阅读兴趣。

本文旨在解决上述问题,提供一个在Ubuntu 20.04下,完全可行的安装搭建LNMP的教程。
涉及版本:
Ubuntu 20.04 LTS
nginx 1.18
MariaDB 10.31
PHP-FPM7.4等
注意,本文是在普通用户具有sudo权限的情况下适用的!

2 安装nginx

2.1 更新可用软件包列表

sudo apt install

2.2 安装nginx

sudo apt install nginx

2.3 编辑nginx配置
输入命令cd /etc/nginx/sites-enable进入目录,然后sudo rm -f default删除里面的默认配置。
命令sudo vim test新建配置文件,然后输入以下内容:

server {
    listen       80;
    root   /var/www/html;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    #
    location / {
        index index.php index.html index.htm;
    }
    #error_page  404              /404.html;
    #redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/html;
    }
    #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

2.4 启动、设置开机启动nginx

sudo systemctl start nginx
sudo systemctl enable nginx

2.5 在本地浏览器中访问以下地址,查看 Nginx 服务是否正常运行。

http://云服务器实例的公网 IP

如果显示如下内容,说明配置成功。
fdc40877928729679d392eb304a3f12c.png

3 安装数据库

3.1 安装mariadb数据库(也就是可以看成mysql的社区版本)。

sudo apt install mariadb-server mariadb-client

3.2 执行以下命令,启动 MariaDB 服务。

systemctl start mariadb

3.3 执行以下命令,设置 MariaDB 为开机自启动。

systemctl enable mariadb

3.4 执行以下命令,验证 MariaDB 是否安装成功。

sudo mysql

3.5 执行以下命令,退出 MariaDB。
q

4 安装PHP

4.1 安装php

sudo apt install php7.4-cli php7.4-common php7.4-mysqlnd php7.4-fpm

4.2 *观察安装的版本,如果是7.4,则执行以下命令,启动 PHP-FPM 服务。否则根据版本自行调整。从此往下均只支持7.4,其他版本未做验证,特此说明!

systemctl start php7.4-fpm

执行以下命令,设置 PHP-FPM 服务为开机自启动。

systemctl enable php7.4-fpm

4.3 修改nginx配置以支持php
输入

sudo vim /etc/nginx/sites-enable/test

按下i进入编辑模式,然后把里面fastcgi_pass那一行改成:

fastcgi_pass   unix:/var/run/php/php7.4-fpm.sock;

然后按下esc,然后按下:,然后输入wq,然后回车保存退出。
注意:本小节仅支持php-fpm 7.4版本,其他版本未做验证,特此说明!!!!

4.4 验证环境配置
如果/var/www/html文件夹下有其他文件,先用rm命令删掉。
然后执行以下命令,创建测试文件。

sudo vim /var/www/html/index.php

然后,按下i进入编辑模式,输入<?php phpinfo(); ?>,然后按下esc,然后按下:,然后输入wq,然后回车保存退出。
执行以下命令,重启 Nginx 服务。

sudo systemctl restart nginx

然后在本地浏览器中访问如下地址,查看环境配置是否成功。
http://云服务器实例的公网 IP
显示结果如下, 则说明环境配置成功。注意图片仅供示例,具体版本以实际为准!
640812413941a61efe29d7faa546ad80.png
注意:本小节仅支持php-fpm 7.4版本,其他版本未做验证,特此说明!!!!

网上有很多搭建ghost博客的教程,但是有的步骤不详细,也少有使用云数据库搭建的教程,基本都是本地数据库。这篇教程的目的就是想要教大家一步一步搭建ghost博客,同时把数据库放在腾讯云数据库上,不再使用本地数据库。

一、所需环境

华为云服务器(配置:内存2G,硬盘40G,操作系统Ubuntu 18.04)
腾讯云数据库(类型:MySQL,版本5.7)

二、详细步骤
1、安装GCC和G++

1.1、首先查看系统是否已经安装,使用如下命令:
gcc --version
g++ --version
如果正确显示版本则已经安装,直接进入下一步操作。否则,使用如下命令进行安装:

sudo apt-get install gcc
sudo apt-get install g++

1.2、如果没有安装开发编译工具包,则使用如下命令安装:

sudo apt-get install build-essential

2、安装Node.js

执行以下命令,安装Node.js

sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

3、安装nginx

3.1、输入以下命令安装Nginx。

sudo apt-get update
sudo apt-get install nginx

3.2、验证是否正确安装:
在浏览器中通过域名或者 IP 地址进行访问Nginx,如果Nginx正常启动则会打开Welcome to nginx的欢迎页面。
3.3、配置Nginx
新建配置文件
vim /etc/nginx/sites-available/ghost.conf
在配置文件中输入以下内容:

server {

listen 80;
server_name xx.xxx; #这里写自己的域名或者ip地址
location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   Host      $http_host;
    proxy_pass         http://127.0.0.1:2368;
}

}

3.4、把配置文件软链接到sites-enabled中:
sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf
3.5、重启Nginx
sudo service nginx restart

4、创建新用户

4.1、执行以下命令,创建新用户。
adduser 你的用户名
输入此命令后,会要求你输入密码,自己设置即可。
然后要求你输入一系列信息,我们直接按回车表示默认即可。
最后问你是否确认,输入y
4.2、执行以下命令,将新创建的用户添加到superuser组。
usermod -aG sudo 你刚才创建的用户名
4.3、执行以下命令,切换到你刚才创建的用户。
su 你刚才创建的用户名

5、安装Ghost-CLI

sudo npm i -g ghost-cli

6、安装Ghost

6.1、创建一个文件夹:
sudo mkdir -p /var/www/ghost
6.2、更改所有者:
sudo chown [user]:[user] /var/www/ghost
6.3、进入我们刚才创建的文件夹:
cd /var/www/ghost/
6.4、用Ghost-CLI 安装Ghost。
ghost install
接下来会提示我们没有找到本地数据库:

由于我们要使用云数据库,所以无需本地安装数据库,所以直接输入y,按下回车
接下会进行配置:
在配置数据库的时候,host填写云数据库地址,username填写云数据库用户名,表名填写事先在云数据库中创建好的表名。密码填写云数据库密码。如果你的云服务器和云数据库不在同一可用区之内,你需要使用外网地址,否则使用内网即可。
注意,有云数据库如何创建用户、创建数据库、内网外网是什么等基本概念,请参考腾讯云官方文档,或参考本站今后会推出的文章。
根据作者的实际经验,由于访问云数据库需要在地址后面加端口,而将地址:端口直接写在上面host中并不能让配置成功,需要单独使用vi config.production.json打开配置文件,在有关数据库的配置中加一项port,填写云数据库的端口。
如下所示:

7、开始配置用户

至此安装完成,访问http://你的IP或域名/ghost按系统说明配置即可