博采众长,精于一技。Live for love, work for dream.

Archlinux安装支付宝控件

默认情况下, Archlinux上安装支付宝控件后,并不能正常使用

这是由于Archlinux软件包升级到了linpng15或以上, 而支付宝控件使用的是libpng12

解决方法:
创建lbpng软连接(libpng的版本视自身情况而定)
ln -s /usr/lib/libpng15.so /usr/lib/libpng12.so.0

把~/.mozilla/plugins/libaliedit32.so 移动到/usr/lib/mozilla/plugins/ (如果你的系统为64位,则应该是libaliedit64.so)

CDNZZ优惠码

CDNZZ继支持支付宝之后,又一给力动作,最近CDNZZ推出了优惠码功能,还特意为我定制了个95折优惠码,虽然优惠幅度不是很大,但也算是个好的开始。

优惠码:REBILL95
有效期:2012-09-12
使用次数:前10000名可用

另附邀请码一枚:5515751 可无限次使用,有效期:2012-09-07

ArchLinux 2012.07.15 安装教程

自发布archlinux-2012.07.15.iso之后,AIF (the Arch Installation Framework)已经不再支持,而迎来的是全新的Arch Install Scripts

1.下载
可以到各大mirors下载,然后刻录光盘或者制作U盘镜像。

2.键盘布局
我们一般用的都是US布局,默认就好了,这一步可以略过。如果你的键盘比较另类,你可以loadkeys uk加载你的键盘布局,所有布局可以在/usr/share/kbd/keymaps/找到。

3.磁盘分区
fdisk /dev/sda
默认分区方案
sda1 /boot 100M
sda2 swap 256M
sda3 / 7.5G
sda3 /home ??G(剩下的空间分配给home)
以上是AIF的默认分区方案,具体似乎自身情况而定。

4.格式化分区
mkfs.ext2 /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4

5.挂载分区
mount /dev/sda3 /mnt
mkdir /mnt/boot
mkdir /mnt/home
mount /dev/sda1 /mnt/boot
mount /dev/sda4 /mnt/home

6.连接到互联网
有线连接
ifconfig eth0 up
dhcpcd eth0

无线连接,请参考 Wireless Setup and Wpa_supplicant

7.安装基本系统
编辑/etc/pacman.d/mirrorlist,选择相对快的源
安装base
pacstrap /mnt base
以下可选
pacstrap /mnt net-tools
pacstrap /mnt openssh

8.安装引导程序
pacstrap /mnt grub-bios

9.配置系统
genfstab -p /mnt >> /mnt/etc/fstab
chroot到新安装的系统
arch-chroot /mnt

(1)修改HotName,
vi /etc/hostname

(2)选择时区
ln -s 的方式似乎会有问题,最好还是cp吧。最后把时间回写BIOS
cp /usr/share/zoneinfo/Asia/Hong_kong /etc/localtime
hwclock -w

(3)语言支持
将你需要的语言取消注释
vi /etc/locale.gen
locale-gen

(4)配置启动程序
配置IP地址,和开启sshd服务
vi /etc/rc.conf

(5)mkinitcpio
mkinitcpio -p linux

(6)配置Grub2
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

(7)修改root密码
passwd

10.Umount
输入exit退出,或者Ctrl+D
umount /mnt/{boot,home,}

最后就是reboot了。

译自:https://wiki.archlinux.org/index.php/Arch_Install_Scripts

通过Nginx+uWSGI部署Flask应用

1.安装Nginx
此处略过......

2.安装uWSGI
pip install uWSGI

3.运行uWSGI
根据 Flask docs上说,你可以这样运行:
uwsgi -s /tmp/uwsgi.sock --module myapp --callable app
或者
uwsgi -s /tmp/uwsgi.sock -w myapp:app

但是,实际生产环境中还是会有些问题。

  • 1.如果你用virtualenv,需要指定python 的home目录;
  • 2.Nginx由于权限问题无法读取/tmp/uwsgi.sock文件。

那么上面的命令可以改成:
uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666

4.配置Nginx
server {
    listen 80;
    server_name myapp.com;
    root /path/to/flask/static;
    location / {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi.sock;
    }
}

5.安装supervisor
pip install supervisor

6.配置supervisor
找到/etc/supervisord.conf,在文件末尾处添加如下内容:
[program:myapp]
command=/path/to/virtual/env/bin/uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666
directory=/path/to/app
autostart=true
autorestart=true
stdout_logfile=/path/to/app/logs/uwsgi.log
redirect_stderr=true
stopsignal=QUIT

7.管理uWSGI进程
执行supervisroctl可以进入管理控制台
如果希望重新加载uWSGI进程,你可以
reload myapp
如果是重启的话,
restart myapp
更多指令,请参考supervisor手册。

部分翻译自:Deploying Flask With Nginx