使用Linux部署网站与博客

Linux作为一个服务器操作系统,可以实现很多服务器程序的部署。本文以部署网站博客为例,迅速上手Linux操作系统。

通过在虚拟机中部署WordPress及其他若干开源项目,掌握LNMP(Linux, Nginx, MySQL, PHP)环境的搭建和配置。在Linux系统中下载并安装Nginx(或Apache2)、MySQL(MariaDB)、PHP及相关插件,确保这些组件可以协同工作。此外,实验中还将使用VMware Workstation Pro作为虚拟机软件,部署Debian 12操作系统,借助MobaXterm和Visual Studio Code等工具进行SSH终端连接和文件编辑。

环境配置

实验中我使用了LNMP环境作为实验环境。

Nginx

apt update
apt install nginx -y
# 下载Nginx
​
systemctl disable --now apache2
apt purge apache2
apt autoremove
# 删除系统自带的apache2
​
systemctl enable --now nginx
systemctl status nginx
# 设置nginx开机自启动并检查
Nginx完成安装

Nginx浏览器访问

MariaDB

下载MariaDB并设置。

apt install mariadb-server -y
mysqladmin password '123456'
# 设置密码
mysql -uroot -p123456
SHOW DATABASES;
# 显示当前所有数据

数据库的安装

PHP

安装PHP和所需插件

apt install -y php8.2 php8.2-{fpm,cli,common,mysql,xml,curl,gd,mbstring,zip,bcmath,intl,soap,imap,opcache}

测试php是否可用,首先需要到网站的设置文件中启用php,将php结尾的页面传送给php服务端。文件位于/etc/nginx/sites-available/default

server {
    listen 80;
    server_name default_server;
​
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
​
    location / {
        try_files $uri $uri/ =404;
    }
​
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
​
    location ~ /\.ht {
        deny all;
    }
}

重新加载Nginx的设置

nginx -t
systemctl reload nginx
重新加载php

随后编辑一个php脚本用于测试是否可以正常访问服务器的php页面。

/var/www/html/info.php

<?php phpinfo(); ?>

然后打开浏览器访问对应的URL,就可以查看php信息。

PHP信息页面

Wordpress

网站设置

首先需要新建一个Nginx的网站设置文件,可以直接将原来的设置复制过来。在同一个服务器下的网站需要不同标签分辨开来。可以使用端口,但是唯一不足就是需要记住不同的端口。另一种方法就是利用不同域名来区分,为不同网站分配不同的子域名。在实验中使用这个方法来进行设置。在这里没有设置端口映射,暂时先指向一个内网IP。

分配子域名

然后在Nginx处设置网站/etc/nginx/sites-available/wordpress.conf

server {
    listen 80;
    server_name wordpress.arorms.cn;
​
    root /var/www/wordpress;
    index index.php index.html index.htm index.nginx-debian.html;
​
    location / {
        try_files $uri $uri/ =404;
    }
​
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
​
    location ~ /\.ht {
        deny all;
    }
}

然后启用网站

ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

启用网站

下载WordPress

根据设置,首先前往目录/var/www/然后下载wordpress

cd /var/www
wget https://wordpress.org/latest.tar.gz
tar -xvf latest.tar.gz

下载并解压wordpress

设置WordPress

现在可以通过浏览器访问到刚刚部署的WordPress,访问wordpress.arorms.cn即可看见相关页面。

访问部署的WordPress

数据库设置

在图10中,需要到终端手动设置数据库并填入相关信息。

mysql -uroot -p123456
CREATE DATABASE wordpress;
# 创建新数据库

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '123456';
# 创建新用户并设置密码

GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
# 设置权限

FLUSH PRIVILEGES;
# 刷新权限

EXIT;

设置数据库

手动安装脚本

此处提示无法直接写入wp-config.php脚本,需要手动到网站根目录下编辑这样一个脚本文件。/var/www/wordpress/wp-config.php

手动写入

然后安装。随后是一些基本的站点信息设置,最后完成WordPress的部署。

WordPress的使用

WordPress的仪表盘

WordPress的帖子编辑页面

Typecho

如果使用过Markdown作为记录笔记的标记语言,肯定在本地使用相关软件记录下来需要在其他地方查看,比如需要在手机查看自己写的markdown笔记等。可以通过在服务器上编辑markdown笔记。typecho就是一个支持markdown标记语法的网页工具,这样实现了仅需要编辑,就可以多平台访问你的笔记。

设置网站

cd /etc/nginx/sites-available/
vim typecho.conf
# 编辑一个新的typecho.conf
server {
    listen 82;
    server_name dev2.arorms.cn;
​
    root /var/www/typecho;
    index index.php index.html index.htm;
​
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
​
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
​
    location ~ /\.ht {
        deny all;
    }
}

设置完成后检查并重新加载

nginx -t
systemctl reload nginx

nginx设置

下载网站文件

通过网络搜索,找到了项目地址https://github.com/typecho/typecho

cd /var/www/
git clone git@github.com:typecho/typecho.git

这里由于是新创建的机器,所以好像因为没有配置密钥对所以无法连接至github,需要手动配置一个。

无法连接至github

cd ~/.ssh
ssh-keygen
# 生成密钥对

一路回车即可,然后查看pub文件结尾的公钥,复制到github上。

图18 创建好的

密钥对

添加好的公钥

然后下载完毕

下载好的网站文件

设置网站

访问dev2.arorms.cn:82即可看到网站的安装页面

网站安装页面

对于图中问题,前往网站根目录,在/usr文件夹中创建uploads文件夹并调整权限。

mkdir /var/www/typecho/usr/uploads
chmod 777 /var/www/typecho/usr/uploads

下一步前往到数据库设置页面,在终端创建一个新的数据库。

mysql -uroot -p123456
CREATE DATABASE typecho;
EXIT;

创建数据库

数据库信息填写和脚本创建

touch /var/www/typecho/config.inc.php
# 然后通过MobXterm左边的SFTP直接将代码写入

随后是一些基本设置

基本设置

然后访问发现部署成功

部署成功

FRP内网穿透

IPv4地址在2019年已分配完毕,今天的个人设备很难拥有一个IPv4地址。而IPv6地址尚未普及,很多情况下还无法访问IPv6的网络。如果想要将项目部署到公网上,必须需要一个公网IP地址。一般来说云平台提供的云服务器都会带有IP地址,可以实现直接访问。而如果是自己的机器或者虚拟机,通常是没有公网IP的,所以需要通过一个在公网下的服务器,将数据转发给客户端和服务端,来实现将项目部署到互联网上,实现公网访问,这里以刚刚实验的虚拟机为例子。

设置FRP服务端

首先需要下载FRP,地址在github上https://github.com/fatedier/frp。FRP服务端需要一个有公网IP的服务器,这里我有一个阿里云的云服务器作为转发数据的服务器,系统是FreeBSD。首先现在服务器下载好相应软件。

云服务器信息

注意这里我的服务器系统是FreeBSD,操作的方法与Linux不一样,主要就是需要下载Frp的服务器端并设置开机自启动,详情可以参考下面客户端设置中的方法,是一样的。

下载好的服务端

其中,要编辑frp服务端的设置。

bindPort = 7000
vhostHTTPPort = 80
​
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

开启

./frps -c ./frps.toml

设置开机自启动,需要编辑/usr/local/etc/rc.d/frp

#!/bin/sh
​
# PROVIDE: frps
# REQUIRE: NETWORKING
# KEYWORD: shutdown
​
. /etc/rc.subr
​
name="frps"
rcvar="frps_enable"
​
start_cmd="${name}_start"
stop_cmd="${name}_stop"
​
frps_start() {
    echo "Starting frps..."
    nohup /root/frp/frps -c /root/frp/frps.toml >/dev/null 2>&1 &
    # 将所有输出丢弃
}
​
frps_stop() {
    echo "Stopping frps..."
    pkill -f "/root/frp/frps -c /root/frp/frps.toml"
}
​
load_rc_config $name
run_rc_command "$1"

随后到/etc/rc.conf中启用这个脚本

frp_enable="YES"

开启frp

service frp start

设置FRP客户端

首先在github上下载完成后,将文件上传到/opt文件夹中,并解压。

下载好的客户端

然后编辑frpc.toml,这是客户端的设置文件

serverAddr = "IP地址或者域名"
serverPort = 7000
​
[[proxies]]
name = "dev2-http"
type = "http"
localPort = 80
customDomains = ["wordpress.arorms.cn"]

随后设置服务,编辑service文件,在/usr/lib/systemd/system新建一个frp-http.service

[Unit]
Description=Frp Client Service
After=network.target
​
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.58.1_linux_amd64/frpc -c /opt/frp_0.58.1_linux_amd64/frpc.toml
​
[Install]
WantedBy=multi-user.target

然后启动并检查服务即可

systemctl enable --now frp
systemctl status frp
运行成功

这里我设置的是根据域名转发,所以需要前往域名解析修改,将域名解析指向代理的云服务器。

域名解析修改

这里已经将wordpress.arorms.cn解析到了云服务器的地方,浏览器访问http://wordpress.arorms.cn并且是公网访问,已经可以访问到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值