猫言猫语

严以律己·宽以待人·自强不息·知行合一

PHP Socket Server Demo

| PHP Socket Server Demo已关闭评论

代码功能:在本地开一个 TCP 9501 端口,等待客户端连接,客户端连接上来之后,向客户端发送一个 HelloWorld,然后关闭这个连接,等待下一个客户端的连接。

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", 9501);
socket_listen($socket, 5);
for(;;) {
    $client = socket_accept($socket);
    socket_write($client, "HelloWorld\n");
    socket_close($client);
}
socket_close($socket);

JavaScript WebSocket Client Demo

| JavaScript WebSocket Client Demo已关闭评论

纯 Demo 代码,和当年 XMLHttpRequest 似的,裸调 WebSocket:

var socket = new WebSocket('ws://localhost:9501');
socket.onopen = function(event) {
    socket.send('HelloWorld!');
    socket.onmessage = function(event) {
        console.log('Client received a message', event);
    };
    socket.onclose = function(event) {
        console.log('Client notified socket has closed', event);
    };
    //socket.close();
};

更换 Laravel 内置服务器监听端口

| 更换 Laravel 内置服务器监听端口已关闭评论

正常情况下,使用 php artisan serve 启动 Laravel 内置服务器,将会监听在 localhost 的 8000 端口上

$ php artisan serve
Laravel development server started on http://localhost:8000

假如我们希望更换监听的接口地址或端口号,可以使用 --host 参数与 --port 参数

$ php artisan serve --host=0.0.0.0 --port=8080
Laravel development server started on http://0.0.0.0:8080

CentOS 6安装PHP pdo_dblib扩展

| CentOS 6安装PHP pdo_dblib扩展已关闭评论

第一步:先安装freetds及相关库

yum install freetds freetds-devel
yum install php-devel
yum install gcc
yum install re2c

第二步:下载php源码及编译php_dblib扩展

wget http://cn2.php.net/get/php-5.4.32.tar.bz2/from/this/mirror
tar jxvf php-5.4.32.tar.bz2
cd php-5.4.32/ext/pdo_dblib/
phpize
./configure --with-libdir=lib64
make
make install

第三步:载入PHP的sybase扩展

cd /etc/php.d
vim pdo_dblib.ini
extension=pdo_dblib.so

CentOS 6安装PHP sybase_ct扩展

| CentOS 6安装PHP sybase_ct扩展已关闭评论

第一步:先安装freetds及相关库

yum install freetds freetds-devel
yum install php-devel
yum install gcc
yum install re2c

第二步:下载php源码及编译sybase扩展

wget http://cn2.php.net/get/php-5.4.32.tar.bz2/from/this/mirror
tar jxvf php-5.4.32.tar.bz2
cd php-5.4.32/ext/sybase_ct/
phpize
./configure --with-sybase-ct=/usr
make
make install

第三步:载入PHP的sybase扩展

cd /etc/php.d
vim sybase_ct.ini
extension=sybase_ct.so

PHP Composer对PHP扩展的检测

| PHP Composer对PHP扩展的检测已关闭评论

在有些使用 Composer 做包管理的 PHP 项目中,项目代码可能会用到 PHP 的扩展类或函数,如果没有的话就无法正常运行,Composer 同样支持 PHP 扩展的检测,使用方法和普通包非常类似,在 composer.json 加上相应配置段即可

"require": {
        "ext-curl": "*"
}

此时如果系统内没有 curl 扩展的时候 Composer 就会有提示:

  Problem 1
    - The requested PHP extension ext-curl * is missing from your system.

Ubuntu下安装PHP Mcrypt扩展

| Ubuntu下安装PHP Mcrypt扩展已关闭评论

在 Ubuntu 下运行 Laravel 项目时,遇到如下提示:

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returned with an error

这是由于 PHP 缺少 Mcrypt 扩展的原因,只要根据提示装上,并启用这个模块就可以了。

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

使用PHP访问RabbitMQ消息队列

| 使用PHP访问RabbitMQ消息队列已关闭评论

扩展安装

PHP访问RabbitMQ实际使用的是AMQP协议,所以我们只要安装epel库中的php-pecl-amqp这个包即可

rpm -ivh http://mirror.neu.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install php-pecl-amqp

(更多…)

树莓派Iptables Nat转发配置

| 树莓派Iptables Nat转发配置已关闭评论

与PPPoE ADSL配合使用,所以让拨号成功后再加入规则

/etc/ppp/ip-up.d/0iptables
#!/bin/sh
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -j MASQUERADE

同时还需要修改系统配置,开启IPv4的数据转发功能

/etc/sysctl.conf
net.ipv4.ip_forward=1