tlanyan

tlanyan 查看完整档案

广州编辑  |  填写毕业院校  |  填写所在公司/组织 tlanyan.me 编辑
编辑

个人博客: https://tlanyan.me

个人动态

tlanyan 发布了文章 · 3月1日

使用jemalloc优化Mysql、PHP内存占用

原文链接:https://tlanyan.me/use-jemall...

本站托管在自购的CN2 GIA VPS服务器上,内存只有2G,偶尔会出现内存紧张而导致系统把RedisMysql等内存大户kill掉的情况。增加swap 可以解决这个问题,但swap性能比内存差太多,因此想到使用jemalloc优化内存占用。

jemalloc介绍

jemalloc是facebook推出的内存分配器,目前在firefox、facebook服务器、android 5.0 等服务中大量使用。 jemalloc最大的优势是其强大的多核/多线程分配能力,在内存足够大时, CPU的核心数量越多,程序线程数越多,jemalloc的分配速度越快。根据测试数据,在高并发时性能优于Google推出的tcmalloc和Glibc的ptmalloc。

除了性能高,jemalloc还降低了内存碎片化,能更好的利用内存。

使用jemalloc优化Mysql、PHP内存占用

Redis默认使用了jemalloc,redis-cli info memory有如下输出:

... mem_not_counted_for_evict:0 mem_replication_backlog:0 mem_clients_slaves:0 mem_clients_normal:0 mem_aof_buffer:0 mem_allocator:jemalloc-5.1.0 active_defrag_running:0 lazyfree_pending_objects:0

Mariadb/mysql、PHP等则默认使用系统自带的ptmalloc,因此可以替换成jemalloc获得更好的内存使用率。

首先安装jemalloc:

CentOS系统 yum install -y jemalloc # Ubuntu/Debian系统 apt install -y libjemalloc2

安装完成后,CentOS系统在/usr/bin目录下会有jemalloc.sh文件。可以通过jemalloc.sh 后续命令执行命令,例如jemalloc.sh node app.js,从而用上jemalloc分配和管理内存。

对于Ubuntu/Debian系统,或者CentOS系统上以systemctl启动的服务,需要通过如下方式用上jemalloc:

  1. 设置LD_PRELOAD环境变量:export LD_PRELOAD=libjemalloc.so路径:$LD_PRELOAD,然后再运行命令/使用systemctl重启服务。其中CentOS系统下libjemalloc.so的路径是/usr/lib64/libjemalloc.so.2,Ubuntu/Debian的路径是/usr/lib/x86_64-linux-gnu/libjemalloc.so.2。聪明如你,应该能想到把export语句放置到.bashrc文件中,以便后续都生效;
  2. 设置系统全局使用,方法是新建/etc/ld.so.preload文件,把libjemalloc.so路径写入文件,然后重启Mariadb、PHP-FPM等服务。

本站采取第二种方式,配置好/etc/ld.so.preload后重启Mariadb、PHP-FPM,可通过下面的命令查看是否用上了jemalloc:

  1. lsof -Pn -p $(pidof mariadbd) | grep jemalloc,配置正确的话会有jemalloc.so的输出;
  2. cat /proc/$(pidof mariadbd)/smaps | grep jemalloc,和上述命令有类似的输出。

查看PHP-FPM的方式同理。

总结

本文简要介绍了使用jemalloc优化Mysql、PHP内存占用的方法和操作步骤,并给出查看进程是否用上jemalloc的命令,达到优化内存占用的目的。

通过上述配置,内存优化能有多少呢?说实话对于小内存服务器改进并不大,只是聊胜于无罢了。

参考

  1. Enabling jemalloc on Percona Server for MySQL 5.7 and 8.0 Series
  2. How to use Node.js with Jemalloc?
  3. CentOS 7系统增加swap
  4. 几个查看Redis内存信息的命令
查看原文

赞 1 收藏 1 评论 0

tlanyan 发布了文章 · 3月1日

cron未按照本地时间执行任务

原文链接:https://tlanyan.me/cron-runs-...

今天在一台国外服务器上发现一个问题:cron执行任务未按照预期的时间执行。查看任务日志,发现相差了8个小时,正好是与中国时区的差异。

服务器上之前已经设置了使用北京时间:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,为何cron执行任务时还是按照UTC时间执行呢?

上网查了一下,原来是设置本地时间前cron已经在运行了,因此按照默认的UTC时间调度执行任务。问题的解决办法也很简单,重启cron服务即可:systemctl restart cron

PS:如果是CentOS系统,服务名为crond,因此重启命令为:systemctl restart crond

参考

  1. cron running at different timezone and date command shows different time zone
  2. crontab中的百分号
查看原文

赞 1 收藏 1 评论 0

tlanyan 发布了文章 · 3月1日

Ubuntu升级到20.04后Bitvise无法连接

原文链接:https://tlanyan.me/bitvise-ca...

单位服务器从Ubuntu 18.04 LTS升级到最新版Ubuntu 20.04 LTS以来,小问题不断。今天同事又反应了新问题:原来用的好好的Bitvise现在无法连接了。

根据其提供的信息,问题的关键在于这句话:”no mutually supported key exchange algorithm“。即最新版Ubuntu用了更安全的密钥交换算法,而Bitvise不支持这些算法,因此无法完成连接。

Bitvise连接Ubuntu 20.04报错

Bitvise连接Ubuntu 20.04报错

解决办法是之一是在ssh配置文件/etc/ssh/sshd_config末尾加入如下行:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256 MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1

接着重启sshd服务:systemctl restart sshd,这样Bitvise便可以正常工作了。

修改服务端配置就让现有的客户端正常工作,这是兼容的做法。如果希望使用新版Ubuntu的安全设置,解决办法是换客户端,例如改用Putty、Xshell等ssh客户端。本人用的Mac,自带的OpenSSH客户端支持新型安全算法,因此不受上面问题影响。

参考

  1. Ubuntu升级20.04后无法启动的解决办法
  2. Ubuntu升级后提示undefined symbol: AS_APPSTREAM_METADATA_PATH
  3. Windows系统免费SSH客户端
查看原文

赞 1 收藏 1 评论 0

tlanyan 发布了文章 · 2020-04-26

redis批量删除key

转载请注明原文:https://tlanyan.me/redis-batch-delete-keys

由于误用插件,某台服务器的redis实例存在数百万无用的key。为了删除无用数据,上网查找redis批量删除key的方法,发现使用过程中都有问题。经过本人的研究,终于找到redis批量删除key的正确用法。本文分享最新版Redis批量删除key的方法,希望能帮到遇到同样问题的网友。

redis批量删除key

网上许多文章和教程给出的redis批量删除key命令是:

redis-cli KEYS "$PATTERN" | xargs redis-cli DEL

在本人的情况中,这条命令存在两个问题:

  1. redis-cli KEYS "$PATTERN"的结果会出现编号,不是纯粹的key列表,如下所示:

    [root@node1]# redis-cli keys "*"

    1. ":default:is_blog_installed"
    2. ":site-options:1-notoptions"
本人用的是Redis 5版本,未测试低版本Redis是否也会添加1),2)这样的编号。可以想到,因为编号的存在,管道后DEL删除的key就不对;
  1. 如果key存在空格,管道后面的DEL将无法正确删除key。例如key是"123 4566",传送到管道后面删除,就变成了删除两个key,与预期不符合。

经过一番研究,本人找到redis批量删除key的正确命令是:

redis-cli --raw KEYS "$PATTERN" | xargs -I {} redis-cli DEL "{}"

重点有两个,分别解决上述命令存在的问题:

  1. 使用 --raw 参数,去掉结果编号;
  2. xargs使用占位符,删除key时将整个结果传过去,避免了空格问题。

改正后的命令在本人的情况下运行正常,就是删除两百多万个key有点慢,花了半个多小时。

redis批量移动key

如果你知道有用key的模式,并且有用key数量很小,可以通过redis批量移动key,然后flushdb的方法快速删除,效率比上文提到的批量删除大量无用key高很多。

操作方法如下:

  1. 批量移动key:redis-cli --raw KEYS "$PATTERN" | xargs -L1 -I{} redis-cli MOVE {} 1,其中命令最后的1是备份数据库的编号;
  2. 清空当前数据库:redis-cli flushdb
  3. 还原key:redis-cli -n 1 --raw KEYS "$PATTERN" | xargs -L1 -I{} redis-cli MOVE {} 0

注意清空当前数据库的命令是 flushdb,不能用 flushallflushdbflushall的区别是:flushdb 只会清空当前数据库的数据,而flushall会清空当前redis实例的所有数据。

redis-cli参数

上述命令使用redis-cli工具完成,在编号为0的默认数据库上操作。对于需要密码、远程redis主机的情况,redis-cli有如下有用参数:

-n:操作的数据库;

-a:redis数据库密码

-h:redis主机ip,通过-h可以远程批量删除key

-p:redis端口

更多参数请参考帮助文档。

参考

1. Quickly move and delete Redis keys by pattern

2. [How to atomically delete keys matching a pattern using Redis](https://stackoverflow.com/questions/4006324/how-to-atomically-delete-keys-matching-a-pattern-using-redis target=)

查看原文

赞 2 收藏 1 评论 2

tlanyan 发布了文章 · 2020-04-26

谨慎购买不退款商家的VPS

一些VPS商家整理 文中所言,买服务器一定要仔细看商家服务条款(TOS),特别注意退款政策。本人今天盲目信任之前的商家印象,买了一款用起来浑身难受,但不能退款的服务器,非常蛋疼。本文简要介绍事情经过,希望大家买服务器时引以为戒,谨慎购买不退款商家的VPS

2020.04.24更新:今天早上多次测试,发现网络正常,说明昨晚网速慢和抗D无关,是线路带宽小,晚高峰炸的厉害。

事情经过

前不久本站受到DDoS攻击(详情参考 本站近期发生的几起安全事件),产生了买高防服务器的想法。今天逛论坛看到CN2路线可能要涨价的消息,觉得还是早点买好:

cn2可能会涨价

碰巧看到 HKServerSolution 有高防服务器优惠,配置价格看起来很给力:圣何塞VDS、2核2GB内存、20G SSD、750G单向流量、30M带宽、50G防御、三网回程CN2 GIA、年付$84.64(人民币599)、适合做站。

本人之前听说HKServerSolution,但一直没用过,原因当然是这家的服务器很贵,几乎没有月付100以下的服务器。这家走高端路线,服务器价格是许多商家的好几倍,优点则是从不超售(卖那么贵,不超售也能赚钱),服务器和线路很稳定。

出于对HKServerSolution印象的好感,加上回程三网GIA确实很诱人,还有50G防御,决定入手这一款,并且买的年付。没想到,这是花钱买让自己蛋疼的开始。

入手之后,例行 yum update -y 更新系统,发现网速不对劲。刚开始以为yum源的问题,后来觉得应该不可能,就单纯测试网络,发现果然是网络太慢了!咨询商家客服,入网带宽是30M,但高防模式一直开启,所以入网很慢:

与商家客服聊天

根据客服描述,可能是ipv6或者系统模板造成入网很慢。于是本人试过禁用ipv6,把系统重装成CentOS 7,问题依旧。好不容易装上Nginx测试出网,发现峰值能跑到3MB/s,平均能保持1MB/s左右,商家这点没骗人。

出网速度正常,但是入网速度真的很蛋疼。买了那么多服务器,第一次遇到这么蛋疼的服务器,敲个命令要等半小时!

服务器下载速度很慢

感觉用这机器能把我弄疯,于是想到退款。接着去看商家的TOS,没想到HKServerSolution竟然不允许退款:

HKServerSolution退款政策

不退款没办法了,只好将就着用吧。其他机器上十来分钟就能部署好环境,这家机器上折腾了两个多小时才弄好,大部分时间都花在下载上面,蛋疼无比。

经验教训

这件事情主要怪我事先没看TOS,要是知道不能退款,就不会直接年付。不过本人认为HKServerSolution也有一些槽点:

  1. 产品价格很贵,但用户没得到贵该有的服务,比如不能退款,回复也很慢;
  2. 服务器写着30M带宽,但经本人各种测试,入网带宽几乎不会超过300KB/s,购买页面没有说明。

从这件事得到的两点深刻教训:

  1. 买产品之前要仔细阅读服务条款,特别要注意产品使用限制(能否上外网、挂PT等)和退款政策;
  2. 一定要谨慎购买不退款商家的VPS,建议先月付尝试,好用再年付。

这是第一次购买HKServerSolution的机器,不清楚其他机型是否也是这种情况(个人感觉应该不会)。不过这家的服务政策是这样,想买还是谨慎点。

另外一个小经验:(基本上)国人商家才有不退款政策,国外商家一般都提供限期退款保障,不满意可无条件退款(机器、ip没玩坏的情况下)。

查看原文

赞 0 收藏 0 评论 0

tlanyan 发布了文章 · 2020-04-06

macOS 10.15.4 ssh无法连接解决办法

原文:macOS 10.15.4 ssh无法连接解决办法

今天早上醒来,发现Mac自动安装了最新版的macOS,也就是Catalina 10.15.4。上午用着挺好,没什么异常。下午登录服务器,发现无法连接。用"-v"选项查看ssh连接调试信息,到"connecting"就不动了:

OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/tlanyan/.ssh/config
debug1: /Users/tlanyan/.ssh/config line 20: Applying options for node1
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to node1 port 12345

上网查了一下,几天前就有人遇到这个问题。本人升级新系统较晚,因此今日才发现。

经过本人组合测验,终于找到问题原因所在,本文给出macOS 10.15.4 ssh无法连接解决办法。

ssh无法连接解决办法

遇到同样问题又不想看废话的网友,请打开终端安装 openssh 以解决该问题:

# 未安装brew请先安装:
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install openssh

安装完后,打开一个新窗口,ssh -V 应该输出如下:

OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020

再用ssh连接服务器,会发现问题已经解决。

解决历程

刚发现ssh无法连接到服务器,心里一凉:服务器上托管着网站,不会服务器挂了吧?转念一想觉得不可能,网站有监控呢,挂了肯定会报警。浏览器打开网站,一切正常。但是返回iTerm2用ssh连接服务器,还是不通。尝试其他几个服务器,情况一样。

想着会不会是设置了代理的问题?关掉代理软件,果然ssh正常连接到服务器。但不用代理软件是不可能的,为了找出原因并解决,陆续做了如下尝试:

  • 分别用iTerm2和系统自带终端,都不能连接,说明不是iTerm2的问题;
  • 查看环境变量,确认没有设置http_proxy等影响工作的环境变量;
  • 切换zsh和bash,问题依旧,说明和shell没关系;
  • 切换代理软件PAC和全局模式,全局模式能正常连接,说明PAC的某个设置影响了ssh的正常工作;
  • PAC模式下用curl、wget、telnet等软件,工作正常,只有ssh工作异常;
  • 把主机名换成ip,能正常连接到服务器;
  • 把主机名换成域名,无法连接。

以上种种情况说明,升级到macOS 10.15.4后,ssh确实受到了影响,无法连接到主机别名、域名的服务器,ip方式则不受影响。

ssh是系统内置软件,ssh -V 查看版本信息:

OpenSSH_8.1p1, LibreSSL 2.7.3

想着用brew安装openssh会不会好点呢?于是果断 brew install openssh,安装完后打开新终端,问题解决!

总结

升级到macOS 10.15.4后,如下两种情况的ssh使用不会受到影响:

  1. 用ip连接服务器的;
  2. 之前就已经用openssh客户端的。

如果你用着系统内置的ssh,并像我一样喜欢用别名或者域名连接服务器,安装openssh是问题的终极解决办法。当然,如果不嫌麻烦,连接的时候关闭代理也是出路。

参考

1. So, uh, I think Catalina 10.15.4 Broke SSH?

查看原文

赞 0 收藏 0 评论 0

tlanyan 发布了文章 · 2020-04-06

翻译po文件并转换成mo文件的三种办法

转载自:翻译po文件并转换成mo文件的三种办法

.po和.mo文件是WordPress中语言相关的两种文件。po 是Portable Object(可移植对象)的缩写,存放待翻译的字符串信息,可直接用文本编辑器打开编辑;mo 是Machine Object的缩写,二进制文件,程序运行时从mo文件查找字符串的翻译。

本文介绍翻译po文件并转换成mo文件的三种办法。

Poedit

Poedit是一个跨平台、功能强大的po文件翻译软件,本人刚接触WordPress时翻译文本用的就是Poedit。Poedit支持安全检查,防止翻译过程中漏掉关键的"%"。打开po文件,翻译完成保存后会自动生成.mo文件,将其上传到WordPress对应的languages文件夹即可。

Poedit

https://po2mo.net/

.po文件是文本文件,因此可以用vs code等文本编辑器打开和编辑。如果不想安装类似Poedit的软件,翻译完后可以上传到 https://po2mo.net/,通过在线服务转换成.mo文件。

po2mo

msgfmt

习惯了Linux和vim,安装软件和网页版在线转换服务都不如敲命令转换来得直接。幸运的是,GNU getext 是Linux系统自带的核心文本工具之一,提供 msgfmt 命令将.po文件翻译成.mo文件:

msgfmt -o xxxx.mo xxxx.po

GNU getext 包还提供 msgunfmt 命令将.mo文件转换成.po文件:

msgunfmt -o xxxx.po xxxx.mo

参考

1. GNU gettext工具简介

2. Compile PO files to MO files

查看原文

赞 1 收藏 1 评论 0

tlanyan 发布了文章 · 2020-04-06

Linux查看网络流量

文章原文:Linux查看网络流量

作为一个非职业运维,不时需要查看Linux服务器上的网络流量状况。本文介绍几个常用的Linux查看网络流量命令,并简要介绍其用法。部分命令系统已经内置,某些命令则需要从软件仓库或者自行编译安装,本文以CentOS系统为例介绍软件安装方法。

查看总流量

ip

ip 命令来自 iproute2util 包,是查看、配置网络/路由的工具。作为 ifconfig 的替代品,ip 命令功能更强大,用法更语义化。

ip命令在大多数系统上都已经默认安装,也可通过 yum install -y iproute 安装。ip 的 "-s -h" 参数查看各网卡的总流量,下图是 ip -s -h link 的输出结果:

ip命令输出结果

nload

nload 命令可以查看各个网络设备的当前网络速率,也会展示流经设备的总流量。

nload 来自EPEL软件库,CentOS安装命令为:yum install -y epel-release && yum install -y nload。查看eth0网卡流量 nload eth0命令输出如下:

nload查看网络流量

PS:netstat -sifconfig -s 都可以查看收发的总包(netstat分协议给出),但不会给出字节数据。

查看实时网速网速

nload 命令可以输出当前网速,上面已经介绍过,本节不再赘述。

dstat

dstat 是一个用来替换vmstatiostatnetstatnfsstatifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂。

dstat 默认没有安装,安装命令为:yum install -y dstatdstat -tnf 1 10 输出接下来10秒内每秒的网络数据:

dstat输出

sar

sar 是System Activity Report的缩写,是一款全面的Linux系统运行状态统计和性能分析工具,可从磁盘IO、CPU负载、内存使用等多个维度对系统活动进行报告。

sar 命令来自 sysstat 包,可使用这个命令安装:yum install -y sysstatsar -n TCP 1 10可查看接下来10秒内的tcp数据:

sar查看tcp数据

查看连接/进程流量

ss/netstat

ssnetstat 是查看活动链接/监听端口的常用命令。ssnetstat 的替代,性能更好,建议使用。

ssiproute2util 包的一部分,因此在大多数系统上默认安装,也可通过yum install -y iproute安装。netstat 来自 net-tools 包,新版系统上需要自行安装:yum install -y net-tools

下图是用ss查看tcp连接的输出:

ss查看tcp连接

iftop

iftop 是一款实时流量监控工具,可以查看每个连接的实时速率。

iftop 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y iftopiftop -nN -i eth0实时查看eth0网卡的各个连接和网速:

iftop查看实时网速

nethogs

nethogs 是为了查看单个进程流量而设计的工具,按照进程进行带宽分组。

nethogs 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y nethogsnethogs -d 2 eth0 每2秒刷新流经eth0网卡的进程流量信息:

nethogs输出

其他

tcpdump可以用来抓包,保存的数据可以用wireshark打开和查看。

参考

1. Linux sar命令详解

2. 30 Linux System Monitoring Tools Every SysAdmin Should Know

查看原文

赞 2 收藏 2 评论 2

tlanyan 发布了文章 · 2020-03-29

买VPS,CPU和内存哪个重要?

转载请注明出处:买VPS,CPU和内存哪个重要?

许多新手,包括之前的我,买VPS时总有一个疑问:CPU和内存哪个重要?哪个对系统的性能影响更大?

CPU和内存哪个重要?

内存比CPU重要

永远不会错的答案是:分用途和场景。然而根据本人多年的测试和实践,得出的答案是:绝大部分情况下内存比较重要,尽量购买内存大/内存主频高的VPS

得出这样一个结论,有以下依据支持:

  1. 本人之前跑科学计算程序,同样的编译参数,2.2G CPU、1600MHz DDR3内存的Mac笔记本竟然比3.5G CPU、1333MHz DDR3内存的服务器运行更快。该程序不涉及到硬盘读写,只用到CPU和内存,(大概率)说明快的内存可能比高主频的CPU更重要(程序为memory-bounded型);
  2. 本人见过很多个人或小企业建网站,上来就买4核8G的服务器。然而大半年过去了,网站的日ip仅有寥寥几十不到百,白白浪费钱;本人也见过1核1G内存搭配swap的VPS,配置好缓存后,稳稳承载日ip上万的网站;查看系统状态,除了内存紧张,cpu大多时间都比较空闲;
  3. cpu性能不够,最多只是慢;内存(加swap)不够,那可是会让服务崩盘的。内存不够时,OOM killer大概率就先把数据库、Redis等重要服务杀死,然后服务就GG了。前几天很火的新闻:Redis 官网昨日宕机,错误提示为无法连接 Redis,就说明内存有多重要;
  4. 即使是很多密集计算型的场合,内存过小也会严重限制cpu发挥,从而影响整体性能。

总结起来就是:绝大部分场景,内存才是限制系统性能的主要因素,而cpu一般都是性能过剩。

因此,用来托管网站、后台程序的VPS,个人推荐cpu内存比至少是1:1,即1核1G,2核2G等;1:2是比较合适的,即1核2G,特殊情况可以考虑1:4或者1:8的VPS。

CPU比内存更重要的场景

也有一些场景,CPU比内存更重要,需要配置性能强劲的CPU。本人能想到的场景有:

  1. API网关、防火墙、路由器等流量入口的服务器,要对流量做密集计算、校验、转发,CPU不强那肯定是不行的;
  2. 只用做流量转发、网络代理的服务器,其实和前一条类似,CPU必须要强,内存够用就行,至于硬盘,基本上用不到;
  3. 密码爆破、挖坑等算力比拼的场景,CPU不给力那就没得玩了。

如果你出于这些需求买服务器,优先考虑CPU吧。例如很多 NAT VPS,2核cpu配258m/384m内存,但做中转已经完全够用了。

总结

分场景买合适配置的VPS,这句话总是不会错。除了上面说的,还有不少特殊场景要单独考虑。例如对于下载服务器,大带宽VPS 就比内存和CPU更重要;而存储型服务器,硬盘容量就应该优先考虑。

至于本人,买VPS一般是做网站、应用程序后端等用途,考虑因素如下:内存大小、硬盘速度、带宽/流量,最后才是CPU。大内存的VPS,可以做搭建网站、内网穿透Gitlab托管 等多种用途,同时花费更低。

参考

1. What makes a computer fast and powerful?

2. 一些VPS商家整理

3. WordPress性能优化

查看原文

赞 1 收藏 1 评论 0

tlanyan 发布了文章 · 2020-03-29

WordPress一键脚本

原文出处:WordPress一键脚本

不时要帮朋友搭建WordPress博客,今天抽空写了CentOS7/8系统的WordPress一键脚本,方便今后使用。

WordPress一键脚本

一键脚本用法如下:

wget https://raw.githubusercontent.com/tlanyan/Scripts/master/wordpress.sh && bash wordpress.sh

按照提示输入域名,脚本会自动安装PHP、MariaDB等必备软件,最后输出如下配置信息:

WordPress安装成功!
===============================
WordPress安装路径:/var/www/test.tlanyan.me
WordPress数据库:wordpress
WordPress数据库用户名:wordpress
WordPress数据库密码:WtNUR6avj0sKaMl9
博客访问地址:http://test.tlanyan.me
===============================

注意事项

1. 脚本适合在裸机/新机器上执行,建议配置为1c1g及以上配置,并开启swap;

2. 脚本安装最新版的PHP 7.4、MariaDB 10.4。其中MariaDB无需root密码,以root身份执行mysql即可登录获取root权限;

3. 脚本参照 WordPress性能优化 对程序做了整体优化,包括使用Redis存储session,Nginx启用fastcgi_cache、gzip功能,PHP开启Opcache优化、安装BBR。

4. 脚本没有开启和配置https,如需开启请参考 使用Let's Encrypt获取免费证书

5. 请将域名解析到vps的ip,打开博客网址即进入博客安装配置界面,填写必要信息后,一个崭新的博客就此开启!

查看原文

赞 2 收藏 1 评论 0

认证与成就

  • 获得 287 次点赞
  • 获得 2 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 2 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-05-29
个人主页被 2.1k 人浏览