sudo systemctl disable apache2
sudo apt-get install network-manager libnss3-tools jq xsel
composer global require cpriego/valet-linux
mkdir ~/Sites
~/.config/composer/vendor/bin/valet install
~/.config/composer/vendor/bin/valet park ~/Sites
macOS Mojave 手动安装 php-pecl-amqp
git clone https://github.com/pdezwart/php-amqp.git
cd php-amqp
phpize
./configure --with-librabbitmq-dir=/usr/local/Cellar/rabbitmq-c/0.9.0
make
make install
vi /usr/local/etc/php/7.3/conf.d/ext-amqp.ini
extension="amqp.so"
CentOS 7 下 NGINX Unit 快速体验
vi /etc/yum.repos.d/unit.repo
[unit]
name=unit repo
baseurl=https://packages.nginx.org/unit/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
yum install unit
yum install unit-php
systemctl restart unit
vi demo.json
{ "listeners": { "*:8080": { "application": "demo" } }, "applications": { "demo": { "type": "php", "processes": 20, "root": "/home/www/demo/public", "index": "index.php" } } }
mkdir -p /home/www/demo/public vi /home/www/demo/public/index.php
<?php phpinfo();
curl -X PUT -d @demo.json --unix-socket /run/control.unit.sock http://localhost/config/
使用 PHP/Java Bridge 在 Java 容器里运行 PHP
一、下载
从 PHP/Java Bridge 的 sourceforge 首页下载 JavaBridgeTemplate721.war 文件。
https://sourceforge.net/projects/php-java-bridge/
二、安装
以 CentOS 7 为例
yum install tomcat
yum install php-cgi
setenfore 0
三、部署
把 JavaBridgeTemplate721.war 扔到 /var/lib/tomcat/webapps 目录,重启 tomcat
systemctl restart tomcat
四、配置
编辑 index.php,修改为
<?php
phpinfo();
五、测试
打开浏览器访问:http://localhost:8080/JavaBridgeTemplate721/
避免 Supervisord 产生孤儿进程
使用 Supervisord start 的进程如果开启多进程,产生了一些子进程,当 stop 父进程的时候,父进程有可能比子进程更早地退出,就会导致子进程成为孤儿进程,脱离 Supervisord 管理。
在 [program:x]
段配置 stopasgroup
选项和 killasgroup
选项可以避免这一情况。
stopasgroup=true killasgroup=true
在 MySQL 8.0 中创建 utf8mb4 编码的新数据库
这样就可以创建一个名为 helloworld 的数据库
create database helloworld default character set utf8mb4 collate utf8mb4_unicode_ci;
mysql> create database helloworld default character set utf8mb4 collate utf8mb4_unicode_ci; Query OK, 1 row affected (0.04 sec)
从头编写 Linux RGB Led 驱动(一)
我手里有一个山寨的三色二极管,大概长的是这样的模样,我要把它直接插到 RK3288 Linux 开发板上,然后通过内核模块来控制他,我希望它可以像交通灯那样工作,同时希望通过编写一个驱动程序来入门 Linux 内核模块,这将会是一系列的文章,但最终结果我也不知道能不能写完。
我使用的 kernel 版本是 4.4,使用的是 rockchip 在 github 上的官方下载地址:https://github.com/rockchip-linux/kernel,如果你使用的是其他开发板,也可以从自己的供应商软件仓库去下载内核,假设我们通过 git 把官方 kernel clone 到了 ~/kernel 目录下。
然后我们需要在 drivers 下新增一个名为 rgb_led 目录,并且新建必要的 Makefile 文件和 rgb_led.c 文件,文件内容如下:
obj-y += rgb_led.o
#include
#include
static int __init rgb_led_init(void) {
printk(KERN_ALERT "init rgb led\n");
return 0;
}
static void __exit rgb_led_exit(void) {
printk(KERN_ALERT "exit rgb led\n");
}
MODULE_LICENSE("GPL");
module_init(rgb_led_init);
module_exit(rgb_led_exit);
我们还需要编辑 ~/kernel/drivers/Makefile 文件,在开始的地方添加一行
obj-y += rgb_led/
然后就可以编译并使用这个我们修改过的内核来启动,启动后我们就可以看到提示信息:
# dmesg | grep rgb init rgb led
轻轻松松,这个内核模块已经开始工作了
FriendlyARM NanoPi A64 插公对公 USB
想用 sunxi-fel 刷机,还得用这种 usb 线,MicroUSB 线只能供电用
插之前
# lsusb Bus 001 Device 002: ID 8087:8001 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 003: ID 8087:0aa7 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
插之后
# lsusb Bus 001 Device 002: ID 8087:8001 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 003: ID 8087:0aa7 Intel Corp. Bus 002 Device 005: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
多了一行
Bus 002 Device 005: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode
PHP WebSocket Server Demo