DAY28 - 在主机上建立WordPress网站与SSL设定

前言:

本篇是纪录如何在Ubuntu 20.04 LTS 底下搭建LEMP + WordPress + SSL
这一篇算是资源回收,因为这是出自我之前写在个人部落格的内容 XD

以下就是操作流程,先说结论:Ubuntu要装LEMP (LNMP) 很方便
20分钟内(含等待下载时间)就完成整个系统的建置...手速更快的应该不用10分钟

Step1

安装Ubuntu 20.04 LTS 我的server在Linode 系统装好後就直接SSH连线

#更新系统
sudo apt-get update

#安装Nginx
sudo apt install nginx

#安装 MariaDB
sudo apt-get install mariadb-server mariadb-client

#启动 Nginx & MariaDB

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

#安装 PHP7.4
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

#安装 PHP相关套件
sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip

Step2

Nginx、MariaDB、PHP相关设定

资料库设定

#资料库初始设定 (设定资料库root密码)
sudo mysql_secure_installation

#新增资料库跟使用者 (给WordPress用)
#下面的帐号密码资料库名称请自行替换

sudo mysql -u root -p

CREATE DATABASE 资料库名称;

CREATE USER '使用者名称'@'localhost' IDENTIFIED BY '密码';

GRANT ALL ON 资料库名称.* TO '使用者'@'localhost' WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT;

sudo systemctl restart mariadb.service

PHP设定

#编辑php.ini内容 主要是把上传档案限制开大
sudo nano /etc/php/7.4/fpm/php.ini

#以下是php.ini要改的部分
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0

#上传档案大小限制,不要开太大...
upload_max_filesize = 20M

max_execution_time = 360

下载WordPress

#先下载wordpress

cd /tmp
wget https://tw.wordpress.org/latest-zh_TW.tar.gz
tar -xvzf latest-zh_TW.tar.gz

sudo chown -R www-data:www-data wordpress/
sudo chmod -R 755 wordpress/

sudo mv wordpress/ /var/www/html/

Nginx设定

#编辑 Nginx设定档
sudo nano /etc/nginx/sites-available/wordpress

#以下是设定档的内容(直接贴上..server_name要改成自己的网址)

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/wordpress;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

#存档离开後
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

sudo rm /etc/nginx/sites-enabled/default

sudo systemctl restart nginx.service

完成以上步骤,打开浏览器,输入网址,应该就可以看到WordPress安装画面,这边有个小坑...如果是用Chrome会看不到网页...要用IP
因为Chrome预设只能开启https的网址,SSL目前还没装...
用其他浏览器就可以看到画面~如IE (Edge ...我还是习惯叫它IE) 或Firefox
接下来最後的步骤把SSL装上

Step3

SSL 安装&设定

sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

#让certbot 自动修改Nginx设定
sudo certbot --nginx

#自动更新设定
sudo crontab -e
0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log

补充:
通常主机内除了放网站外,我还会放Jupyter Notebook Server
Colab虽然超级好用,但我通常是要放一些临时性的档案
如上网发问的范例档案,平常在写的档案还是放在自己的主机内
如果有人敲碗的话,再补充这方面的设定

以上就是铁人赛第28天的内容 :)


参考资料:


<<:  Day25 X ESR: Rendering On The Edge

>>:  DAY26 CNN(卷积神经网路)

[JS] You Don't Know JavaScript [Scope & Closures] - Using Closures?

前言 目前为止我们都专注在解释辞法范围,以及他会对程序中的变量与使用产生什麽影响,本章节会将角度转移...

Day 12:145. Binary Tree Postorder Traversal

今日题目 题目连结:145. Binary Tree Postorder Traversal 题目主...

DAY14 Kotlin基础 Class 2!兼第二周回顾

昨天有稍微提到 public、private 这样的东西,直接把昨天的程序拿来修改一下: fun m...

Day 17 - 卷积神经网络 CNN (2)- 战国时代之版图扩张

再看一次... 注:成功大学 连震杰教授 百家争鸣 我们了解在1998 LeNet / 2012 A...

Day11 - 模型与管理网站

今天内容主要为实作模型和使用Django提供的管理网站进行资料操作。 模型 设计模型 今天将建立两个...