Linux systemd 配置简述

Linux systemd 配置简述

习惯了诸如 " systemctl {start|status|stop|enable|disable} httpd " 等类似的命令?在Linux中如何将普通的应用程序设置成服务? 这里以 frp client 为例,实现在 Ubuntu 18.04 上的普通的应用程序添加进守护进程以方便配置自启动。 配置service文件 在应用程序的安装或配置位置,新建一个 frpc.service ,然后再来按照区块编辑这个文件: Unit 负责服务的描述,启动顺序和依赖关系。 Before 和 After 定义服务的启动顺序(在某个程序之前或之后)。 require 要求某个服务启动成功,否则不会启动该自定义服务,而 Wants 则不会终止该自定义服务的启动。 [Unit] Description=Frp client daemon After=network.target network-online.target syslog.target Wants=network.target network-online.target Service …

继续阅读

使用putty串口连接树莓派

使用putty串口连接树莓派

最近收到了期盼已久的树莓派:3B和zere 0w,当然要晒一晒了, 就像这样 。 在连包装盒一起里里外外欣赏了个透之后,就有疑问来了:没有HDMI接口的显示器,该怎样给好吃的连无线网络呢?(尽管有的,我还是这么想了)连USB?不太可能行得通(人家只是电源接口而已,USB直连根本不行),还有烧板子的风险。查了查dalao们的博客,ttl串口通讯,好的,猜得八九不离十。 材料 USB转TTL串口连接线(带芯片),serial controller 驱动 连线 红色连接5V,黑色接地,还有两根白绿分别接TXD和RTX。 自带电源供应时就不能连接5V红线,据说会烧板子(娇气)。 附赠 树莓派实验室 出品 引脚图一张: 安装驱动 整理了一下Windows和MacOS的USB转TTL驱动(不用谢): 云盘地址 Windows下没安装驱动是这样滴: 直接双击安装包后即可在设备管理器中查找到对应适配器和端口号: 图中“COM3”即是串口通讯端口号,连接ssh时会用到。右键属性查看串口传输速率(通常为9600bps),后面也会用得到。 访问tty 打开Putty终端,点击Session窗口中Connection type - Seria,填入刚才得到的端口号和传输速率: 点击连接,等一会儿就可以看到tty控制台了。 这时在使用raspi-conf …

继续阅读

Lumen自定义404响应

Lumen自定义404响应

在 App\Exceptions\Handler 中引入: use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 然后在 render() 中更改响应的方式。 如果要渲染成页面,可以先在view文件夹中添加error.blade.php文件,然后在 render() 中 return 前加入判断404的语句: if ($e instanceof NotFoundHttpException){ return response(view("error"),404); } 如果要渲染成Json格式输出,可以直接使用json(): if ($e instanceof NotFoundHttpExcept …

继续阅读

NGINX 开放跨站请求

在Twic lab中新添加了一个CDN项目 T HREF ,将常见的字体、前端框架等静态文件统一放在里面,便于引用。 然而在实际应用时,发现能够直接访问文件,能够在同一域下的其他文件中调用,却不能够在其他域中调用。 解决方法: 在CDN项目的NGINX配置文件中添加响应头: add_header Access-Control-Allow-Origin *; 以开放跨站请求,即可解决问题。

继续阅读

Ubuntu 16.04 升级至 17.10

虽然部分VPS商家如Vultr等在部署时均提供Ubuntu 17.10版本,大多数的提供商(至少我遇到的两三家)的Ubuntu版本都还是在16.10及以下。为了方便使用,当然想把我的所有VPS都弄成同一个操作系统统一版本;既然决定使用Ubuntu 17.10,那么剩下的如何更新呢? 若是Ubuntu17.04,只需 " apt update " 后执行 " do-release-upgrade " 。但是对于以下的版本 (<= 16.10) ,似乎需要折腾一会儿。 更新已安装包 还是照常, apt update 如果有更新,就 apt upgrade 安装并配置更新管理 apt dist-upgrade apt install update-manager-core 安装好后打开 " /etc/update-manager/release-upgrades " ,找到最后一行,将 Prompt= 后的改为 normal ,存盘退出。 开始升级 do-release-upgrade 此操作建议使用VPS提供商的VNC。 如果你是用的VNC,只需一直确认下去就行 …

继续阅读

Openssl 升级 Shadowsocks 报错及其解决

在将openssl升级到1.1.0以上版本后,Shadowsocks 2.8.2 启动时会报undefined symbol: EVP_CIPHER_CTX_cleanup错误,如下: INFO: loading config from ss.json 2016-12-14 22:47:50 INFO loading libcrypto from libcrypto.so.1.1 Traceback (most recent call last): File “/usr/local/bin/sslocal”, line 11, in sys.e …

继续阅读

.htaccess 重写

URL重写 的实现 .htaccess的重写功能的重要性是理所应当的,不仅可以美化URL,还能改善路由的规则。 开启方法非常简单: 在http.conf配置文件中找到下面一行: #LoadModule rewrite_module modules/mod_rewrite.so 将行头的 “#” 注释符号去掉。 在项目的主目录下添加.htaccess文件,打开并加入如下的内容: <ifmodule mod_rewrite.c> RewriteEngine On #URL重写 规则 </ifmodule> URL重写与实际文件夹发生冲突 有时,我们会在主目录下使用URL重写来实现例如文章等的页面的打开。可是当主目录开启了URL重写后再打开子目录,会发现子目录的URL会被重写后的URL覆盖,如何解决? 打开子目录下的项目所在的主目录,添加一个.htaccess文件,加入以下内容: <IfModule mod_rewrite.c …

继续阅读

PHP-JSON

问题引入 今天在编写短信API接口时,遇到了返回码为 JSON 格式的问题。写小程序API接口时也常常会遇到 JSON字符串 与 对象 或 数组 互换的问题。PHP自带有函数 “ json_decode() ” 和 “ json_encode() ” ,在这里可以先借用一下(前者可将 JSON 转换为 对象 ,后者可将 对象 、 数组 转换为 JSON )。 解决方案 下面是将 JSON 转换为 对象 的代码: <?php $json = '{"name":"Twikor","age":"16"}'; $decode = json_decode($json); echo "Welcome,".$decode->name.".You are ".$decode->age."years old."; ?> 输出: Welcome,Twikor.You are 16 years old. 上面的列子很容易的将 JSON 转换成了对象,但是对象不能运用于“ foreach() ”中,那如何将对象 …

继续阅读

.htaccess文件设置网站首页

问题引入 我们都知道, index.php , index.html 为当前目录的默认首页。但是在有些时候默认首页会是其他的文件,如何更改? 解决方案 在当前文件夹中新建一个 .htaccess 文件,编辑以下内容: DirectoryIndex home.HTML index.htm index.php 这里可以将 index 更改成目标文件名,然后就可以直接访问了。 如,在 “home/public_html/dev/.htaccess” 插入以下一段代码: DirectoryIndex home.HTML send.php 指定的文件夹目录 (“home/public_html/dev/send.php”) 便可以同时使用 “home/public_html/dev/send.php” 和 “home/public_html/dev” 来访问了。 注:本方法适用于部分目录,若全站设置,需要更改 Apache 的config文件。 …

继续阅读