Pi400 电源指示灯闪烁/SDRAM failure/死机黑屏情况的处理

Pi400 电源指示灯闪烁/SDRAM failure/死机黑屏情况的处理

背景

最近Pi400出现不稳定情况,有时候出现电源指示灯闪8次,有的时候出现死机/花屏情况,查询了Raspberry网站,发现这个8次闪烁定义为SDRAM故障,至于花屏/死机情况没有相关信息,尝试过更换SD卡,虽然有效,但是待机时间长了又会出现此类现象,尝试了rpi-update(更新kernel和VideoCore firmware),不过不但情况没改善,反而更频繁了,当时考虑是否需要维修了,可是过保了,而且这机器也用了一段时间,最近才有此情况,考虑到系统一直是64位的,是否是系统不稳定造成的,更换了32位系统后,可以启动了,不过此类情况并没有消失。心中忐忑,个人觉得这种情况有两个可能:

  1. CPU虚焊跟SDRAM交互出现了问题 – 可以尝试拆开,用热风枪加助焊剂尝试复位,不过这个方法成功的概率很低,底下的pad可能已经氧化了。
  2. 底层硬件跟系统出现了兼容问题 – 可以尝试更新固件,但是Pi400有嘛,你别说还真有自动更新的工具,我就是靠这个暂时缓解了这个问题,如果恢复到以前的情况,可能真修复了。

通过上面对几个可能性的解释,我介绍一下如果通过更新固件方法;如果你在使用Raspberry Pi Diagnostics对SD卡进行测试Failed,就也可以通过以下方法解决,前提是SD卡是没问题的情况下啦。

更新Pi400固件

  1. 通过Raspberry Pi Imager工具更新bootloader eeprom
    a. 打开Raspberry Pi Imager,选择操作系统->Misc utility image->bootloader->SD Card Boot
    b. 选择SD卡,这里使用一个空卡作为更新bootloader的卡
    c. 点击烧录
    d. 烧录完成后,将SD卡插入设备开机,此时指示灯会连续闪烁,并不会停顿,屏幕如果出现了绿色,就表示更新bootloader完成了
    e. 更换回原来的SD启动系统
    e. 执行sudo rpi-update,更新kernel和VideoCore firmware

    #已经更新完了,这里只是做演示
    $ sudo rpi-update 
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    *** Performing self-update
    *** Relaunching after update
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    FW_REV:7d6d960523325b4c52804183f4b56e0bb9297102
    *** Your firmware is already up to date (delete /boot/.firmware_revision to force an update anyway)

    f. 完成后会提示重启
    g. 观察系统是否已经稳定了

  2. 通过rpi-eeprom-update更新eeprom
    a. 执行sudo rpi-eeprom-update,如果下面的bootloader和VL805(应该是USB HUB控制芯片),都是up-to-date的状态,那么可能真是坏了,如果不是,那么是有可能的,因为系统会经常更新,出现不兼容的情况也是很自然的

    $ sudo rpi-eeprom-update 
    BOOTLOADER: up to date #已经是最新stable版本
    CURRENT: Wed 11 Jan 2023 05:40:52 PM UTC (1673458852)
    LATEST: Wed 11 Jan 2023 05:40:52 PM UTC (1673458852)
    RELEASE: stable (/lib/firmware/raspberrypi/bootloader/stable)
           Use raspi-config to change the release.
           #可使用raspi-config选择release/beta等版本
    
    VL805_FW: Using bootloader EEPROM
    VL805: up to date #已经是最新版本
    CURRENT: 000138c0
    LATEST: 000138c0

    b. 执行sudo rpi-eeprom-update -d -a,更新eeprom,完成后,会有提示reboot。
    c. 执行sudo reboot,等待系统重启
    d. 执行sudo rpi-eeprom-update,确认是否都是最新的状态
    e. 执行sudo rpi-update,更新kernel和VideoCore firmware

    #已经更新完了,这里只是做演示
    $ sudo rpi-update 
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    *** Performing self-update
    *** Relaunching after update
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    FW_REV:7d6d960523325b4c52804183f4b56e0bb9297102
    *** Your firmware is already up to date (delete /boot/.firmware_revision to force an update anyway)

    f. 完成后会提示重启
    e. 观察系统是否已经稳定了

参考资料:

  1. Raspberry Pi 4 Boot EEPROM – https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom
  2. Raspberry Pi 4 not booting – SDRAM Failure – https://forums.raspberrypi.com/viewtopic.php?t=317088
    3。Using rpi-update – https://www.raspberrypi.com/documentation/computers/os.html#using-rpi-update

Synology NAS中的Calibre-Web安装配置

Synology NAS中的Calibre-Web安装配置

Calibre是一个电子书管理软件,分别支持Windows、MacOS、Web等,这里介绍如何在Synology的Docker中配置Calibre-Web的Docker镜像。

在Synology NAS的Docker中部署Calibre-Web镜像

  1. 拉取Calibre-Web镜像

    • 打开群辉Docker,点击注册表,搜索linuxserver/calibre-web镜像,右单击并下载
    • 下载完镜像后,在容器中点击新增,选择linuxserver/calibre-web
  2. 配置Calibre-Web镜像

    • 按照如下配置设置linuxserver/calibre-web运行
      可以将下列内容创建成Calibre-Web.json文件,通过容器中的操作按钮导入配置文件

      {
      "CapAdd" : [],
      "CapDrop" : [],
      "cmd" : "",
      "cpu_priority" : 50,
      "enable_publish_all_ports" : false,
      "enable_restart_policy" : true,
      "enable_service_portal" : null,
      "enabled" : true,
      "env_variables" : [
      {
       "key" : "PATH",
       "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      {
       "key" : "HOME",
       "value" : "/root"
      },
      {
       "key" : "LANGUAGE",
       "value" : "en_US.UTF-8"
      },
      {
       "key" : "LANG",
       "value" : "en_US.UTF-8"
      },
      {
       "key" : "TERM",
       "value" : "xterm"
      },
      {
       "key" : "S6_CMD_WAIT_FOR_SERVICES_MAXTIME",
       "value" : "0"
      },
      {
       "key" : "S6_VERBOSITY",
       "value" : "1"
      },
      {
       "key" : "S6_STAGE2_HOOK",
       "value" : "/docker-mods"
      },
      {
       "key" : "TZ",
       "value" : "Asia/Shanghai"
      },
      {
       "key" : "OAUTHLIB_RELAX_TOKEN_SCOPE", #可选
       "value" : "1"
      },
      {
       "key" : "PUID",
       "value" : "1000"
      },
      {
       "key" : "PGID",
       "value" : "1000"
      },
      {
       "key" : "DOCKER_MODS",
       "value" : "linuxserver/mods:universal-calibre" #可选,设置后可以开启Ebook converter,可以配置书籍格式转换功能
      }
      ],
      "exporting" : false,
      "id" : "10567f8f382f86e9e8d6b306395d5212d3ddc87e08597a5429023d8206de447b",
      "image" : "linuxserver/calibre-web:latest",
      "is_ddsm" : false,
      "is_package" : false,
      "links" : [],
      "memory_limit" : 0,
      "name" : "Calibre-Web",
      "network" : [
      {
       "driver" : "host",
       "name" : "host"
      }
      ],
      "network_mode" : "host",
      "port_bindings" : [],
      "privileged" : true,
      "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
      },
      "use_host_network" : true,
      "volume_bindings" : [
      {
       "host_volume_file" : "/docker/docker_config/calibre-web/config", 需要NAS本地创建该路径
       "mount_point" : "/config",
       "type" : "rw"
      },
      {
       "host_volume_file" : "/docker/docker_config/calibre-web/metadata_provider", #需要NAS本地创建该路径,配置完后,可以通过外部增加获取书籍内容的api
       "mount_point" : "/app/calibre-web/cps/metadata_provider",
       "type" : "rw"
      },
      {
       "host_volume_file" : "/eBooks/books", #需要NAS本地创建该路径
       "mount_point" : "/books",
       "type" : "rw"
      },
      {
       "host_volume_file" : "/docker/docker_config/calibre-web/temp", #需要NAS本地创建该路径,升级的数据需要预先下载到此处
       "mount_point" : "/tmp",
       "type" : "rw"
      }
      ]
      }
  3. 运行Calibre-Web镜像

    • 点击Docker的运行并在calibre-web镜像中的log中观察错误,如果遇到错误,首先应检查相关文件夹的权限设置是否正确

      可能出现问题的地方有tmp路径(/docker/docker_config/calibre-web/temp),一般需要将NAS本地temp目录的权限设置为Everyone具有读写功能
      可通过FileStation修改目录权限

Calibre-Web配置

  1. 数据库配置

    • 数据库文件配置,事先需要将一个空的书籍数据库文件放到NAS本地/eBooks/books路径下,该数据库文件可以使用Windows/MacOS版本的应用程序自行创建,文件名默认为metadata.db
      Calibre for Windows:https://calibre-ebook.com/download_windows
      Calibre for MacOS:https://calibre-ebook.com/download_osx

      如果出现配置数据库文件后出现readonly错误,需要通过Docker中的控制台去修改metadata.db的用户权限,只需要修改成跟其他产生的文件的一样即可。

    • 访问http://NAS_IP:8083/,默认用户名admin,密码admin123 (可根据需要修改)

    • 在跳出来的数据库设置中,配置成/books,并保存,也可以在权限管理中,找到编辑Calibre 数据库配置中修改

    • 在权限管理中找到编辑基本配置,修改如下内容

      基本配置->功能配置->启用上传(请确保用户也有上传权限) = 勾选
      基本配置->扩展程序配置
      ->Calibre 电子书转换器路径 = /usr/bin/ebook-convert
      ->KEpubify 电子书转换器路径 = /usr/bin/kepubify
      ->Unrar程序路径 = /usr/bin/unrar
      #保存
  2. 在线阅读配置

    权限管理->用户列表->点击xxxx用户名->编辑用户xxxx->允许在线阅读 = 勾选
    #保存

参考资料

  1. Calibre项目官网:https://calibre-ebook.com
  2. Calibre-Web项目主页:https://github.com/janeczku/calibre-web
  3. linuxserver/calibre-web项目主页:https://github.com/linuxserver/docker-calibre-web

Phicomm K2 PSG1218无线路由器更换固件方法

Phicomm K2 PSG1218无线路由器更换固件方法

K2 PSG1218 A6硬件DRAM 256MB,无线支持802.11a/b/g/n/ac,有线支持10/100Mbps。
更换固件的步骤有:准备工作、刷Breed web控制台、刷第三方固件

1. 准备工作

需要下载如下几个文件和路由器刷breed_Web控制台助手v5.9,当然也可以直接通过TFTP和SSH配合一起使用。
breed_web firmware: https://breed.hackpascal.net/breed-mt7620-phicomm-psg1208.bin
padavan firmware(RT-AC54U-GPIO-1-PSG1218-64M_3.4.3.9-099.trx): https://opt.cn2qq.com/padavan/RT-AC54U-GPIO-1-PSG1218-256M_3.4.3.9-099.trx

2. 刷Breed web控制台

  • 启动路由器刷breed_Web控制台助手v5.9版本.exe,将电脑网线联到K2的LAN口,配置好路由器登陆帐号和路由器IP后,勾选尝试备份all,随后选择Phicomm K2 PSG1218 MTK全自动方案。点击开始刷机。
  • 完成后,按住K2的reset,并插拔一下电源线,等3秒后,通过配置页面192.168.1.1访问breed,如果页面可以打开就成功了。

3. 刷第三方固件

  • 打开breed web地址后,在固件更新中选择公版,并在固件中选择你需要更新的固件。
  • 点击上传更新,等待完成后,重启路由器就完成了更新。

Home Assistant 中 HACS部署

Home Assistant 中 HACS部署

home assistant supervisor如果已经安装成功就可以开始添加HACS商店,这个商店里面有更为丰富的集成套件,方便控制更多的设备,完成安装后需要注册Github账号获取授权。

  • 要求
    Home Assistant 版本>= 2022.11.0
    运行了一个支持的Home Assistant安装包
    启用了集成功能
    可以访问Home Asssistant配置文件所在的文件系统
    知道如何访问Home Assistant log文件
    HACS中没有附加组件
    有稳定的网络连接没有数据流量的限制

  • 下载安装-脚本模式
    a. 前往插件商店 – 配置->加载项->加载项商店
    b. 安装SSH附加组件(Terminal & SSH或SSH & Web Terminal)
    c. 按照文档配置您选择的SSH附加组件
    d. 启动SSH附加组件
    e. 连接到SSH附加组件
    f. 运行HACS下载脚本
    wget -O - https://get.hacs.xyz | bash -
    如果出现bad address之类的安装提示,有可能是网络问题,这时可以通过手动下载安装包安装
    g. 安装完成后,重启登录,如果看到右侧出现HACS的条目,则说明HACS已经安装成功,需要点击HACS进行github账户授权才能正常使用

  • 手动安装
    a. 前往插件商店 – 配置->加载项->加载项商店
    b. 安装Samba share
    c. 配置Samba share
    d. 启动Samba share
    e. 下载最新的hacs包:https://github.com/hacs/integration/releases/latest/download/hacs.zip
    f. 使用文件管理器访问\HomeAssistantIP\config\custom_components\,输入之前配置的用户名和密码
    g. 将下载的hacs.zip解压到\HomeAssistantIP\config\custom_components\路径下
    h. 然后重启设备Pi400
    g. 重启登录后,如果看到右侧出现HACS的条目,则说明HACS已经安装成功,需要点击HACS进行github账户授权才能正常使用

参考资料

HomeAssistant安装到树莓派4

HomeAssistant安装到树莓派4

官方网站有过HomeAssistant Core的安装教程,如果有需要装HACS扩展商店的话,就需要安装HomeAssistant Supervisor后才能安装HACS商店。
这里以树莓派Pi400为例,使用的系统是树莓派的64位系统。

  • 通过管理员账号执行依赖包安装,HomeAssistant Supervisor采用的是Docker运行方式
    su -orsudo su -

    apt-get install \
    apparmor \
    jq \
    wget \
    curl \
    udisks2 \
    libglib2.0-bin \
    network-manager \
    dbus \
    lsb-release \
    systemd-journal-remote -y
  • 安装Docker-CE

    curl -fsSL get.docker.com | sh
  • 安装OS-Agent:
    a. 从OS Agent GitHub 发行版页面下载最新的Debian包:
    https://github.com/home-assistant/os-agent/releases/latest
    b. 安装更新下载的OS-Agent包:
    sudo apt install os-agent_1.4.1_linux_aarch64.deb

    注意: 替换deb文件名,这里只是个例子,如果是树莓派64位系统,请下载aarch64的deb包
    你可以测试安装是否成功:
    gdbus introspect --system --dest io.hass.os --object-path /io/hass/os
    这里不应该返回错误。如果你得到一个object introspection带interface等内容的。说明OS Agent已经正常工作了。
    你可能需要安装libglib2.0-bin去执行gdbus命令。

  • 卸载OS Agent,如果需要卸载

    sudo apt-get remove os-agent
  • 安装HomeAssistant Supervised Debain包

    wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
    apt install homeassistant-supervised.deb #安装下载后的deb包
    #安装过程中可能需要对硬件系统进行选择,Pi400+64位系统,这里选择raspberrypi4-64
  • 支持的设备

    generic-x86-64
    odroid-c2
    odroid-c4
    odroid-n2
    odroid-xu
    qemuarm
    qemuarm-64
    qemux86
    qemux86-64
    raspberrypi
    raspberrypi2
    raspberrypi3
    raspberrypi4
    raspberrypi3-64
    raspberrypi4-64
    tinker
    khadas-vim3
  • 配置
    默认的$DATA_SHARE路径是/usr/share/hassio。这个路径是用于存储所有home assistant相关的内容的。
    你可以在安装时重新配置这个路径。

    DATA_SHARE=/my/own/homeassistant dpkg --force-confdef --force-confold -i homeassistant-supervised.deb
    #可以将/my/own/homeassistant替换为自己的路径
  • 故障排查
    如果在安装运行过程中出现了错误,使用:
    journalctl -f #获取系统的log
    如果你不熟悉Linux或者无法修复出现的问题,建议你使用Home Assistant OS。

参考资料

如何安装Aria2到WD MyCloud Gen1 FW4.0

如何安装Aria2到WD MyCloud Gen1 FW4.0

WD MyCloud FW4.0 – WDMyCloud v04.06.00-111 : Core F/W

Aria2是个离线下载软件,可以安装在路由器或者树梅派,NAS上也可以的,由于是轻量级的软件,没有UI界面,可以通过shell发命令下载,当然你也可以通过下载网页版界面去控制和管理。
Aria2控制界面你可以安装在路由器或WDMyCloud里面,或者本地机器,配置界面主要是做下载文件的入口,并不会需要一直开启,这里会介绍控制界面安装在WD MyCloud内和Merlin Router内。

关于FW4.0源的问题

由于FW4更新后,里面自带的源无法使用,看了些资料说是安装包需要64K对齐才可以安装,这样的话你就需要重新编译成特定的格式才可以,这是比较麻烦的,不过好在网上已经有朋友编译好了一些可以直接安装在WD MyCloud上的软件包,我们更换源地址就可以通过apt-get install去安装了。

开启WD MyCloud SSH

通过浏览器进入WD MyCloud界面后,进入->设置->网络->网络服务->SSH=开,默认用户名:root、密码welc0me,第一次SSH登陆后会需要修改密码。

WDMyCloud:~#nano /etc/apt/sources.list
  #deb http://ftp.us.debian.org/debian/ jessie main
  ## Note, wheezy is not 64K page aligned.  
  ##deb http://ftp.us.debian.org/debian/ wheezy main
  #deb http://ftp.us.debian.org/debian/ sid main
  #deb http://ftp.us.debian.org/debian/ experimental main
  #deb-src http://ftp.us.debian.org/debian/ jessie main

  ## Note, It is from mobibrw.com
  deb http://www.mobibrw.com/deb/wdmycloud/4.0/wheezy wheezy main
  deb http://www.mobibrw.com/deb/wdmycloud/4.0/jessie jessie main
# 保存退出
WDMyCloud:~#apt-get update # 更新安装包清单

Aria2

  1. 安装
    WDMyCloud:~#apt-get install aria2
  2. 配置
    WDMyCloud:~#mkdir /etc/aria2
    WDMyCloud:~#nano /etc/aria2/aria2.conf
    # aria2.conf 可以通过网上自行获取,各大论坛都有
    # 需要自己配置好下载保存的路径,例如如下配置
    dir=/DataVolume/shares/Public/Downloads
    input-file=/etc/aria2/aria2.session
    log=/etc/aria2/aria2.log
    rpc-listen-port=6800 # RPC监听端口, 端口被占用时可以修改, 默认:6800
    rpc-secret=password # 设置的RPC授权令牌, v1.18.4新增功能
    # 保存退出
  3. 创建自启动脚本
    #将aria2的deamon文件拷贝到/etc/aria2/目录下
    WDMyCloud:~#cp aria2 /etc/aria2/
    WDMyCloud:~#nano /etc/init.d/aria2 #可参照/etc/init.d/vsftpd和KireinaHoro aria2 deamon文件进行修改
    ......
    DAEMON=/usr/bin/aria2c
    CONF=/etc/aria2.conf
    ......
    # 保存退出
    WDMyCloud:~#chmod 755 /etc/init.d/aria2
    WDMyCloud:~#chown root:root /etc/init.d/aria2
    WDMyCloud:~#nano aria2.session #敲个空格,保存退出
    WDMyCloud:~#nano aria2.log #敲个空格,保存退出
    WDMyCloud:~#cd /etc/init.d/
    WDMyCloud:~#update-rc.d aria2 defaults #将aria2设置为开机自启动
    WDMyCloud:~#reboot

Aria2 控制界面UI

  1. 常见的界面
    YAAW – https://github.com/binux/yaaw
    AriaNG – https://github.com/mayswind/AriaNg
    webui-aria2 – https://github.com/ziahamza/webui-aria2

    以上三种界面可自选一种,这里以webui-aria2为例子,因为部署简单,不需要额外安装其他的软件包

  2. UI安装在WD MyCloud内

    WDMyCloud:~#git clone https://github.com/binux/yaaw.git
    # 将获取的yaaw文件夹拷贝到/var下面
    WDMyCloud:~#cp -r yaaw /var/
    WDMyCloud:~#nano /etc/apache2/ports.conf
    ......
    #new for yaaw-aria2-ui
    Listen 8888 #监听8888端口
    ......
    # 保存退出
    WDMyCloud:~#nano /etc/apache2/conf.d/ara2-ui-yaaw.conf
    # new for Aria UI
    # 新增8888端口虚拟主机配置文件,一定要在conf.d目录下存放
    <VirtualHost *:8888>
        ServerAdmin webmaster@localhost
        ServerName localhost
        DocumentRoot /var/yaaw
    
        LogLevel warn
    
        <Directory /var/yaaw>
            DirectoryIndex index.php index.html index.htm
            Options -Indexes +FollowSymLinks +MultiViews  
            AllowOverride All
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/yaaw_error.log
        CustomLog ${APACHE_LOG_DIR}/yaaw_access.log combined
    
    </VirtualHost>
    # 保存退出
    WDMyCloud:~#nano apache2ctl configtest
    # 如返回配置文件OK,则重启apache2服务
    WDMyCloud:~#nano /etc/init.d/apache2 restart
    # 如返回启动OK,通过浏览器访问http://wdmycloud_ip:8888/
    #
    # JSON-RPC Path = http://token:password@wdmycloud_ip:6800/jsonrpc password为/etc/aria2/aria2.conf中定义的rpc-secret的内容,点击保存,页面会刷新,rpc连接正常后就可以开始下载了
  3. UI安装在Merlin Router内

    root@MerlinRouter:/#amtm #安装entware环境
    root@MerlinRouter:/#opkg update
    root@MerlinRouter:/#opkg install ca-bundle ca-certificates lighttpd lighttpd-mod-fastcgi php7-fastcgi
    root@MerlinRouter:/#cd /opt/share/
    root@MerlinRouter:/#mkdir www
    root@MerlinRouter:/#cd www
    root@MerlinRouter:/#wget -c -O ariang.zip https://github.com/mayswind/AriaNg/releases/download/1.2.5/AriaNg-1.2.5-AllInOne.zip --no-check-certificate
    root@MerlinRouter:/#mkdir ariang
    root@MerlinRouter:/#unzip ariang.zip -d ariang/
    root@MerlinRouter:/#rm ariang.zip
  4. 配置lighthttpd和php

    root@MerlinRouter:/#nano /opt/etc/lighttpd/lighttpd.conf
    server.port                 = 81
    server.upload-dirs          = ( "/opt/tmp" )
    # 保存退出
    root@MerlinRouter:/#nano /
    ......
    server.modules += ( "mod_fastcgi" )
    ......
    # 保存退出
    root@MerlinRouter:/#reboot
  5. 连接Aria2

    • Merlin Router AriaNG
      a.打开 http://wdmycloud_ip:81/
      b.AriaNG设置->RPC,地址配置中输入Aria2服务器地址,协议选择http,端口设置跟你的aria.conf中定义的一样,密钥设置成跟你的aria.conf中定义的一样
      c.页面出现重新加载的提示,点击一下,如果Aria2状态变成已连接,说明都已经通了。
    • WDMyCloud + Yaaw
      a.打开 http://RouterIP:81/
      b.点击设置,输入http://token:password@wdmycloud_ip:6800/jsonrpc password为/etc/aria2/aria2.conf中定义的rpc-secret的内容,点击保存,页面会刷新,rpc连接正常后就可以开始下载了

参考资料

VPS安装WordPress

安装Wordpress

本次内容以CentOS7+BBR配置为例

安装前的准备

  • 安装依赖软件包
    # yum install epel-release yum-utils
    #启用php7的安装包,目前Wordpress推荐php7
    # yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
    # yum-config-manager --enable remi-php72
    #安装依赖包 nginx需要搭配php-fpm调用php
    # yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl
    # yum install epel-release yum-utils
    # yum install y nginx mariadb phpMyAdmin
  • 下载Wordpress
    1. 访问 https://wordpress.org/download/#download-install 下载最新版本
    2. 将下载的tar.gz压缩包放到VPS的站点文件存放目录
    3. 解压压缩包,会生成一个Wordpress目录
      # cd /usr/share/nginx
      # mkdir yourdomain.com
      # tar -xvf latest.tar.gz /usr/share/nginx/

      配置软件

  • 配置php php-fpm
    打开配置文件并配置参数
    # nano /etc/php-fpm.d/www.conf

    #找到将下面配置修改为sock方式`
    ...
    user = nginx #默认为空
    group = nginx #默认为空
    ...
    #listen = 127.0.0.1:9000
    listen = /var/run/php-fpm/php-fpm.sock
    ...
    listen.owner = nginx #默认apache
    listen.group = nginx #默认apache
    listen.mode = 0660
    ...
    #修改完后保存退出

    将php-fpm加入启动列表
    # systemctl enable php-fpm

  • 配置mariadb
    # mysql_secure_installation #安装并设置管理员帐号
  • 配置Nginx 包括phpMyAdmin和Wordpress站点
    建立快捷方式
    # ln -s /usr/share/phpmyadmin /usr/share/nginx/yourdomain.com
    # nano /etc/nginx/conf.d/yourdomain.com.conf

    server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name yourdomain.com www.yourdomain.com;
    root /usr/share/nginx/yourdomain.com/wordpress/;
    ssl_certificate /usr/share/nginx/cert/cert.cert; #申请证书产生的文件
    ssl_certificate_key /usr/share/nginx/cert/key.key; #申请证书产生的文件
    ssl_trusted_certificate /usr/share/nginx/cert/fullchain.fullchain; #申请证书产生的文件
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
          root /usr/share/nginx/yourdomain.com/wordpress/;
          index index.php index.html index.htm;
          location ~ ^/(.+\.php)$ {
              try_files $uri $uri/ /index.php$is_args$args;
              fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # or 127.0.0.1:9000
              fastcgi_index index.php;
              fastcgi_intercept_errors on;
              fastcgi_buffers 32 32k; #can fix the css syle issue for wordpress adminpage
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include /etc/nginx/fastcgi_params;
          }
          location ~* ^/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                  root /usr/share/nginx/yourdomain.com/wordpress/;
          }
    }
    location /phpMyAdmin {
        root /usr/share/nginx/yourdomain.com/;
        index index.php index.html index.htm;
        location ~ ^/phpMyAdmin/(.+\.php)$ {
            try_files $uri =404;
            root /usr/share/nginx/yourdomain.com/;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # or 127.0.0.1:9000
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }
        location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
            root /usr/share/nginx/yourdomain.com/;
        }
    }
    location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }
    }
    #保存退出

    #使用nginx -t测试配置文件是否正确
    # nginx -t
    #重启nginx服务
    # systemctl restart nginx

  • 配置mariadb数据库
    打开 https://yourdomain.com/phpMyAdmin 站点登陆后创建一个非管理员帐号管理一个数据库给wordpress,数据库名字例如wordpress_database。
  • 安装Wordpress
    打开 https://yourdomain.com 在页面提示下进行安装,输入wordpress数据库名字数据库使用者帐号等相关信息,点击发送后进行安装。
  • 配置Wordpress SSL
    Wordpress支持SSL访问方式,无须做额外配置