跳至正文

Tech Sharings

春节放假安排

各位客户、同事和朋友: 根据国务院办公厅通知,2022年春节放假时间安排如下:2022年1月31日至2月6日放假共7天。 祝各位新春快乐!虎年大吉!

如何在 WordPress 页面插入百度地图

一、申请百度地图API Key   1. 注册百度账号,登录百度地图开放平台:http://lbsyun.baidu.com/,在页面底部找到“立即注册”,点击进入;   2. 创建应用:应用名称自己取个可辩识的就好,应用类型选择“浏览器端”,应用服务默认全选,Referer白名单按格式填写你的网站域名,完成后点击“提交”;   3. 按照百度的要求, 开发者需要经过实名认证,这里有个人开发者和企业开发者两种选择,按实际需要选择认证方式即可。注:如果是企业开发者进行商业应用,是需要向百度缴纳年授权费的 😉   4. 在“我的应用”里找到对应应用的访问应用(AK)一栏,就是我们后面要用到的Access Key访问密钥。 二、创建百度地图,获取引用代码   1、打开百度地图生成器:http://api.map.baidu.com/lbsapi/createmap/,按步骤创建地图;     ①定位中心点,即我们要定位的位置。已有标识的最好,没有标识的,选一个最接近的地址。地图级别可填写数字,最高19级,也可通过地图上的 +、- 号来调整。     ②设置地图,可以按照自己的需要,修改地图的外观——地图的宽和高、地图上显示的按钮(缩放、缩略图、比例尺),以及鼠标和键盘对地图的操作等。一般默认即可。     ③添加标注,可以添加自己想要标注的位置和信息。   2、点击黄色的“获取代码”按钮,生成百度地图引用代码; 百度地图生成工具基于百度地图 Javascript API v2.0版本开发,为了正常使用百度地图API服务,代码中需要加入你的密钥,即前面申请的 AccessKey ,修改处: 三、生成引用百度地图HTML文件 把上一步生成的百度地图引用代码保存为一个 HTML 文件,如 baidumap.html,我们把它上传到网站的根目录下,在浏览器中打开,就可以看到自己定义的百度地图了。 四、将百度地图插入WordPress页面中 打开你想要插入百度地图的页面,更改区块格式为“自定义HTML”,输入以下代码: 这样我们就轻松地用一个 iframe 标签将百度地图嵌入到网页中了,当然地图的宽高、在网页中显示的位置可自己写CSS调整,也可像本文例子中简单地只调整宽和高。 在 baidumap.html 文件中将 width:700px 修改为 width:100%,如下:      在页面的引用中,也可作相应调整,我加大了 height 的值,使其上下有些间距,如下: 五、让百度地图API支持HTTPS 经过上面的改造后,在 Google Chrome 中浏览时,却提示“加载不安全脚本”,不能显示地图上的控件,网站的小绿锁标识也不显示。这是由于 JavaScript API 没有启用 https 服务。我们只需将 api 的网址 http 改为 https,再加一个特殊字段 (s=1)即可解决。修改如下:     

元旦放假安排 及 2022年公休假期计划

各位客户、同事和朋友: 根据国务院办公厅通知,2022年元旦放假时间安排如下:2022年1月1日至3日放假共3天。祝各位元旦快乐! 另将2022全年公休计划预告如下:

Linux 编译错误:cc: fatal error: Killed signal terminated program cc1

近日临时在 CentOS 服务器上重新编译 php,下载源码、解压、configure 配置需要的选项,直到 make 过程中突然中断,报错: cc: fatal error: Killed signal terminated program cc1确认不是代码版本问题和编译配置错误,于是怀疑云主机内存不够(还在跑应用,top查看可用内存不足1GiB)。百度一下果然有内存不够引起这个错误的。 以下是使用交换分区的临时解决方案(先 su 为 root 用户): # dd if=/dev/zero of=/swapfile bs=64M count=16# mkswap /swapfile# swapon /swapfile# make # swapoff /swapfile# rm /swapfile前面每一行命令对应的说明如下: # 用 dd 命令创建大小为 64 * 16 = 1024 GiB 的空白文件为 /swapfile,如果不够可以把 16 改为 32、64等(即 2 GiB、4 GiB等,以此类推,只要硬盘够大)# mkswap 初始化 /swapfile 文件为交换分区# swapon 设置 /swapfile 文件为系统交换分区# 重新执行刚才失败的 make # 卸载 /swapfile 交换分区# 删除 /swapfile 文件,释放磁盘空间注意,增加交换分区只是个对运行内存不够用的临时替代方案,代价是磁盘空间消耗,以及对应物理磁盘的频繁读写。隐患:一方面磁盘访问比内存访问慢得多,另一方面会影响磁盘使用寿命(尤其对SSD)。对于内存不足,增加物理内存才是终极合理的解决方案。

用acme.sh申请免费SSL证书攻略

转载自广联在线微信公众号。请扫描本页底部二维码关注和查看原文。 本文依 github 上 acme.sh 文档及网络公开资源整理,环境为阿里云ECS,网站部署环境为 CentOS 7 + nginx。 安装 acme.sh wget -O - https://get.acme.sh | sh -s email=my@example.com# 为acme.sh开启t自动更新acme.sh --upgrade --auto-upgrade 在阿里云工作台“RAM访问控制”,创建一个新用户(假定网站域名解析在阿里云管理),分配Access Key 和 Secret,并授予域名管理的权限 AliyunDNSFullAccess 。暂时设置到网站主机的环境变量,为后面生成证书做准备。 export Ali_Key="abcdefghijklmnopqrstuvwx"export Ali_Secret="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234" 生成证书 acme.sh --issue --dns dns_ali -d www.example.com --nginx     此时 acme.sh 会自动调用阿里云API 添加域名TXT记录,并在验证通过后生成SSL证书。 安装证书。安装的目标路径和文件名应当与nginx的配置文件内容相对应。 acme.sh --install-cert -d www.example.com         --key-file /etc/nginx/ssl/www.example.com/www.example.com.key   --fullchain-file /etc/nginx/ssl/www.example.com/www.example.com.cer --reloadcmd "systemctl restart nginx" 检查crontab crontab -l     经过以上配置,acme.sh 就自动生成SSL证书并在网站生效了。并且acme.sh 添加的定时任务会检查SSL证书是否过期和自动更新。  

为 WordPress 服务器添加 Memcached 支持

转载自广联在线微信公众号。请扫描本页底部二维码关注和查看原文。 在 WordPress 中开启 Memcached 缓存支持,可以加快网站访问速度。具体原理和配置请参考 WordPress 文档。本文着重介绍下在 Docker 方式部署的 WordPress 5.7 服务器上安装 Memcached 的方法步骤。 Docker 容器的 Linux 环境中包含一套 dpkg 和 apt 的包管理工具,所以如果在运维 Docker 部署的业务时临时需要用到什么软件,一般情况可以跟 Ubuntu 一样办法,使用 apt install 命令来安排常用软件。 先准备好一个 Docker 方式部署的 WordPress 网站实例。 进入 docker 容器的运行环境。 [root@ip-172-31-35-228 centos]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4ce6a0bf360d wordpress:latest "docker-entrypoint.s…" 5 days ago Up 5 days 0.0.0.0:8010->80/tcp, :::8010->80/tcp ubuylogi_wordpress_1 b6bd40497f6f mysql:5.7 "docker-entrypoint.s…" 5 days ago Up 6 minutes 3306/tcp, 33060/tcp ubuylogi_ubuy_db_1 [root@ip-172-31-35-228 centos]# docker exec -it 4ce6a0bf360d /bin/bash root@4ce6a0bf360d:/var/www/html# cd root@4ce6a0bf360d:~# vim bash: vim: command not found         可以看到,vim 等一些常用的工具并不存在 直接用 apt-get update 更新源。 root@4ce6a0bf360d:~# apt update Get:1 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB] Get:2 http://deb.debian.org/debian bullseye InRelease [113 kB] Get:3 http://deb.debian.org/debian bullseye-updates InRelease [36.8 kB] Get:4 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [29.4 kB] Get:5 http://deb.debian.org/debian bullseye/main amd64 Packages [8178 kB] Fetched 8401 kB in 2s (5057 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 1 package can be upgraded. Run 'apt list --upgradable' to see it. root@4ce6a0bf360d:~# 先安装等下要用到的一些工具软件。apt install -y vim wget root@4ce6a0bf360d:~# apt install -y vim wget Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libgpm2 vim-common vim-runtime xxd …… 同样方法安装 zlib1g-dev 和 memcached root@4ce6a0bf360d:~# apt install -y zlib1g-dev memcached Reading package lists... Done Building dependency tree... Done Reading state information... Done …… 安装 memcached 后别忘了启动服务。 root@4ce6a0bf360d:~# /etc/init.d/memcached start Starting memcached: memcached. root@4ce6a0bf360d:~# 下载 libmemcached 并编译和安装(以下省略各命令的输出)。 root@4ce6a0bf360d:~# cd root@4ce6a0bf360d:~# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz root@4ce6a0bf360d:~# tar -zxvf libmemcached-1.0.18.tar.gz root@4ce6a0bf360d:~# cd libmemcached-1.0.18 root@4ce6a0bf360d:~/libmemcached-1.0.18# ./configure --prefix=/usr/local/libmemcached --with-memcached root@4ce6a0bf360d:~/libmemcached-1.0.18# make && make install ……         这一版 libmemcached 在我的环境中编译会出错,如下: CXX clients/memflush.o clients/memflush.cc: In function 'int main(int, char**)': clients/memflush.cc:42:19: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] 42 | if (opt_servers == false) | ~~~~~~~~~~~~^~~~~~~~ clients/memflush.cc:51:21: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] 51 | if (opt_servers == false) | ~~~~~~~~~~~~^~~~~~~~ make[1]: *** [Makefile:5832: clients/memflush.o] Error 1 make[1]: Leaving directory '/root/libmemcached-1.0.18' make: *** [Makefile:3700: all] Error 2 root@4ce6a0bf360d:~/libmemcached-1.0.18#         原因是 clients/memflush.cc 源文件中有两处指针类型变量与布尔型的对比操作,用vim打开源文件把false改为 NULL 再重新 make 即可。 接下来为 php 安装 memcached 插件 root@4ce6a0bf360d:~/libmemcached-1.0.18# pecl install memcached pecl/memcached can optionally use PHP extension "igbinary" (version >= 2.0) pecl/memcached can optionally use PHP extension "msgpack" (version >= 2.0) downloading memcached-3.1.5.tgz ... Starting to download memcached-3.1.5.tgz (83,015 bytes) ....................done: 83,015 bytes 15 source files, building running: phpize Configuring for: PHP Api Version: 20190902 Zend Module Api No: 20190902 Zend Extension Api No: 320190902 libmemcached directory [no] : /usr/local/libmemcached zlib directory [no] : use system fastlz [no] : enable igbinary serializer [no] : enable msgpack serializer [no] : enable json serializer [no] : enable server protocol [no] : enable sasl [yes] : no enable sessions [yes] : building in /tmp/pear/temp/pear-build-defaultuser2i8dVo/memcached-3.1.5 …… Build process completed successfully Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20190902/memcached.so' install ok: channel://pecl.php.net/memcached-3.1.5 configuration option "php_ini" is not set to php.ini location You should add "extension=memcached.so" to php.ini root@4ce6a0bf360d:~/libmemcached-1.0.18#     安装过程中,libmemcached 头文件路径填入上面 configure libmemcached 时指定的路径,zlib 头文件路径保持 no (pecl 自动检测),下面除了 sasl 改为 no 之外,其它都按默认。 libmemcached 安装完成后,需要从上一步输出的最后几行找到memcached so库的安装路径,填入 php 配置文件中。 root@4ce6a0bf360d:~# vim /usr/local/etc/php/php.ini [Memcached] extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20190902/" extension = memcached.so 接下来可以确认一下 memcached 模块已经被 php 加载。(可能需要重启 php 服务) root@bd570ad1c1a5:~/libmemcached-1.0.18# php -m | grep mem memcached 最后重启 Docker 容器验证。如果以上步骤都执行成功,WordPress 的 object-cache.php 和 wp-config.php 文件也做了相应正确的设定,就可以在网站后台看到 Memcached 的缓存运行情况——包括命中率等数据的显示了。

Docker的安装和使用——初学者快速上手

转载自广联在线微信公众号。请扫描本页底部二维码关注和查看原文。 Docker 是一款非常强大又易用的容器管理工具。使用Docker,可以像VM一样为应用程序提供一个隔离的运行环境,但又不像VM那样占用很多系统资源。事实上,配合docker-compose工具,一个现成Docker容器的配置和启动可以在几十秒内完成,用户通常不需要关心OS和支撑软件的安装和配置。更重要的是,Docker是开源、免费(CE版)和跨平台的。你可以在Linux、Windows和macOS之间任意选择。下面用在 CentOS 7 上使用 Docker 部署 MySQL 服务器为例,说明一下 Docker 的安装和使用过程。 其实现在新的 CentOS 已经不默认带有 Docker 的源了,代之以 Podman。Podman 的用法和作用跟 Docker 非常相似,但我们在这里还是先讨论更常用的 Docker。熟悉 Docker 的朋友们如果有兴趣,可以读一下 Podman 的使用说明,相信不用花太多时间就可以上手。   在 CentOS 7上安装Docker 环境:     添加 Docker 源: $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo     安装: $ sudo yum install docker-ce    加入开机自启动: $ sudo systemctl start docker $ sudo systemctl enable docker   安装 docker-compose 工具 $ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose   下面用 docker-compose 工具来部署MySQL:   在你的 home 中自建一个目录用来保存 yaml 文件。 $ cd ~ && mkdir mysql_docker   用 vi 工具编辑生成一个 docker-compose.yml 文件,内容参考下图:$ vim docker-compose.yml     自动下载镜像并启动容器$ sudo docker-compose up -d 自测。可以用 docker ps 检查容器启动情况, netstat -ntlp 查看 3306 端口的占用情况,也可以直接用 mysql 命令行来测试数据库登录和连接。    这样,MySQL 服务器就在本机3306端口搭建好了。只需要建立一个 yaml 文件再运行 docker-compose,这跟在 CentOS 上从代码安装配置MySQL服务器比起来,是不是简单多了?接下来你可以用数据库客户端来测试它,这里就不展开了。如果有疑问请直接私信,需要的话以后可以另写一篇来讲解。  

点我,点我
QQ
  • 售前咨询 点击这里给我发消息
邮箱
  • Email
关注微信
  • 扫码关注公众号