米米的博客

做了一点微小的工作

本文将介绍几种常见的搭建 Nginx(以及 PHP)环境的方法。

包管理工具

使用包管理工具安装无疑是最方便、可控的。我们以 Ubuntu 为例,使用以下命令即可安装 Nginx。

1
apt install nginx

PHP 和一些常用的 PHP 拓展库也可以一并安装:

1
apt install php php-fpm php-mysql php-mbstring php-curl php-zip php-imagick

安装完成后需要进行配置。比较关键的是以下两个配置文件:

  • php-fpm 配置文件 /etc/php/7.2/fpm/pool.d/www.conf
  • Nginx 配置文件 /etc/nginx/nginx.conf

这里的 7.2 是笔者测试时安装的 PHP 版本,可以根据情况替换。为了避免权限问题,需要确保两者的用户名一致。即

  • php-fpm 配置文件中的 listen.ownerlisten.group
  • 以及 Nginx 配置文件中的 user

是相同的。默认情况下它们都是 www-data,如果自己修改就需要注意两处都要改。

最后需要为 Nginx 启用 PHP。可以参考默认的网站配置文件 /etc/nginx/sites-available/default,其中有一段关于 location ~ \.php$ 的配置被注释掉了。根据需要启用这段配置即可,注意 fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; 同样需要设置得与 php-fpm 配置文件中一致。

源码安装

源码安装的优点是可以方便地自定义各种第三方库。

准备工作

首先还是用包管理工具安装必须的依赖包:

1
apt install g++ zlib1g-dev libjemalloc-dev libssl-dev libpcre3 libpcre3-dev

Nginx 源码在此处下载,我们以 1.14.0 版本为例。你可以换成更新的版本。

1
2
3
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar -xzf nginx-1.14.0.tar.gz
cd nginx-1.14.0

编译安装

然后编译安装 Nginx。

1
2
./configure --user=www-data --group=www-data --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
make && make install

configure 参数中的 usergroup 都设置为了 www-data。如果要修改为其它用户,需要注意一并修改 php-fpm 配置文件中的相关设置,否则会出现权限问题。
此外,如果是通过 ssh 连接的远程服务器,在执行 make 时可以开一个 screen,避免连接断开导致编译终止。

LNMP

如果你是萌新,请按照👇教程安装搭建 lnmp 环境!
lnmp 环境一键安装脚本

1
2
3
4
5
#下载并安装lnmp环境,将1.4替换为最新版本
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz
tar -xzf lnmp1.4.tar.gz
cd lnmp1.4
./install.sh lnmp

请按照脚本的提示选择你要安装的各个组件版本,若不确定,选择默认选项即可。安装完成后,命令行输出:

LNMP安装成功

此时访问服务器地址会出现如下界面:

默认服务器首页

这就说明安装成功了。

在我的世界中,制作不同区域的地图后,可以使用物品展示框将它们挂起来,这样便能拼出一幅巨大的高分辨率地图。这是笔者对一个经营了多年的存档拍摄的「卫星图」:

MCPE卫星图

效果还是挺不错的。

为了荣耀!

还记得上一篇文章介绍的使用 Teensy 3.2 将摩尔斯电键变为键盘的方法么?经过研究,笔者决定使用 Arduino Leonardo 实现之。相比 Teensy 3.2,Arduino Leonardo 价格更低(因为在国内更流行),并且实现起来也较为简单。电键则采用全新产品,无需手动走线、打磨底座等,避免了使用二战时期古董带来的种种问题。

Arduino Leonardo

Arduino Leonardo 是基于 ATmega32U4 微控制器的开发板。它有 20 个输入 / 输出引脚(在写入程序时可以定义各个引脚的作用,其中最多有 7 个可用于 PWM 输出、12 个可用于模拟输入),一个 16 MHz 的晶体振荡器,一个 Micro USB 接口,一个 DC 接口,一个 ICSP 接口,一个复位按钮。
Leonardo 不同于之前所有的 Arduino 开发板,它没有单独的 USB 转 UART 芯片,而是直接使用 ATmega32U4 的 USB 通信功能。这使得 Leonardo 不仅可以通过串口与计算机通信,还可以模拟成 USB 鼠标或者键盘 —— 这也正是笔者选择它的原因。更多内容可以参考 Arduino Leonardo 介绍文档,在 DOCUMENTATION 选单中还包含完整电路图。

阅读全文 »

The finished Morse key sitting happily on my laptop. Full project details below.
这是最终完成的摩尔斯键盘与笔记本电脑的合影~整个项目的细节如下。

Background: I can just about remember growing up around beautifully designed analogue devices like rotary dial phones, typewriters, and record players. I've always like the idea of converting these largely defunct objects into digital devices, and my Dad's old Morse key seemed like a simple project to get started on.
背景:打从记事以来,我就生活在设计精美的模拟设备的环境中,比如旋转式拨号电话,打字机和唱片机。我一直有把这些大部分现在不常用的东西转换成数字设备的想法,而这其中,老爸的旧摩尔斯电键看起来像是一个简单的项目。

阅读全文 »
0%