标签归档:Ubuntu

Ubuntu下手动编译php-amqp扩展附PHP中RabbitMQ使用例子

Linux教程之ubuntu下手动编译php-amqp扩展

首先,神马是amqp?介绍在这里,简单的讲就是高级队列协议。而这个扩展就是为了让php可以支持amqp协议与相关的队列服务通讯。

优点:可以解决服务器处理的并发问题。
高级消息队列协议(AMQP)是一个异步消息传递所使用的应用层协议规范。作为线路层协议,而不是API(例如JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。现在,已经有相当一部分不同平台的服务器和客户端可以投入使用。

(一)基本概念

RabbitMQ 是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协 议)的标准实现。如果不熟悉AMQP,直接看RabbitMQ的文档会比较困难。不过它也只有几个关键概念,这里简单介绍。

几个概念说明:

  • Broker:简单来说就是消息队列服务器实体。
  • Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
  • Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
  • Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
  • Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
  • vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
  • producer:消息生产者,就是投递消息的程序。
  • consumer:消息消费者,就是接受消息的程序。
  • channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

(二)使用流程

即 Client – AMQP server – Client
左边的Client向右边的Client发送消息,流程:

  • 获取Conection
  • 获取Channel
  • 定义Exchange,Queue
  • 使用一个RoutingKey将Queue Binding到一个Exchange上
  • 通过指定一个Exchange和一个RoutingKey来将消息发送到对应的Queue上,
  • 接收方在接收时也是获取connection,接着获取channel,然后指定一个Queue直接到它关心的Queue上取消息,它对Exchange,RoutingKey及如何binding都不关心,到对应的Queue上去取消息就OK了

由于ubuntu的默认源里面没有php5-amqp这个包,所以要用上amqp得考手动编译。

准备工作:

安装php编译工具

安装rabbitmq的库

如果你的Linux发行版没有现成的librabbitmq-dev包,那么可以通过下载源码编译安装

然后如果你没有安装git话请安装一下git,因为我们要从官方的版本库中获取源代码

克隆源码并编译

编译库

然后我们需要去下载php扩展的源代码,地址在此:

http://pecl.php.net/package/amqp

当前最新版本为1.4.0

创建配置文件

然后重启你的web服务器或者php-fpm并打印phpinfo,如果见到以下的内容就说明扩展安装好了

@RabbitMQ使用例子

生产方

消费方

Ubuntu14.04系统Nginx的两种启动方式配置

Ubuntu14.04系统安装LNMP请看链接

那好,LNMP配置完成以后,请继续往下看本篇文章

一、套接字方式

默认虚拟主机设置文件 /etc/nginx/sites-available/default 按如下设置:
首先备份配置文件(良好的个人习惯)

index这一行加入 index.php。
PHP 重要配置配置 location ~ .php$ {} 这几行我们需要启动,反注释掉。

另外再添加一行:try_files $uri =404。

如果加载失败
打开配置文件 /etc/php5/fpm/php.ini…

进行如下更改(NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini)

重新加载 PHP-FPM:

service php5-fpm reload
现在创建一个探针文件保存在 /usr/share/nginx/html目录下

以上就是ubuntu默认配置加稍微的改动,就可以跑php程序了
浏览器下访问探针文件 (e.g. http://192.168.1.110/p.php):
正如你看到的 PHP5 正在运行,并且是通过 FPM/FastCGI,向下滚动,我们看看那些模块已经启动

二、让 PHP-FPM 使用 TCP 连接

默认情况下 PHP-FPM 侦听的是 /var/run/php5-fpm.sock,要让 PHP-FPM 使用 TCP 连接,需要打开编辑配置文件 /etc/php5/fpm/pool.d/www.conf

按照下面的修改信息

这将使php-fpm侦听端口9000上的IP 127.0.0.1(localhost)。确保你使用的端口不在你的系统上使用。

重新加载 PHP-FPM:

下面通过配置 nginx 修改主机,更改这一行注释掉 fastcgi_pass unix:/var/run/php5-fpm.sock; 这一行反注释 fastcgi_pass 127.0.0.1:9000;,按照下面的设置:

重新加载 nginx:

相关参考链接:

nginx: http://nginx.net/
PHP: http://www.php.net/
PHP-FPM: http://php-fpm.org/
Ubuntu: http://www.ubuntu.com/

Ubuntu14.04下搭建LANMP环境(Apache+Nginx+MySQL+PHP)

每回安装环境都要去百度几文章,今天索性自己写一篇,以后省去百度的麻烦了,本文介绍的是在Ubuntu14.04下搭建LANMP环境(Apache+Nginx+MySQL+PHP),如果你只想安装lamp或者lnmp都通用,直接拿去。
首先分两步走:
每一、先更新系统然后安装必要的依赖(这一步为以后的扩展提供铺垫)
第二、安装mysql apache2 php

重启apache2

ubuntu下apache2虚拟主机配置

文件修改为以下内容

重启apache2测试效果

在浏览器上http://localhost/info.php

第三步、安装Nginx

配置Nginx使其支持PHP

Nginx主机配置(端口改为8080,根目录和刚才的apache2要目录一样/data/www)

重启服务,查看进程

附apache2虚拟主机配置方法:

在Apache2中,有效的站点信息都存放在/etc/apache2/sites-available/文件 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间,将default文件复制一份改一下里面的路径就可以了,要启用配置则则将此文件做一个软链接到 /etc/apache2/sites-enabled/ 目录下
下面具个例子说明:

添加软链接到/etc/apache2/sites-enabled目录

注意:

查看fpm进程是

重启服务是

不知道为何两者名称不统一,最好用ps aux| grep fpm来查看

ubuntu14.04添加navicat快捷方式

在ubuntu14上面下载了个navicat,由于此软件解压即用,所以没有图标,索性自己加一个图标,方便在dash里搜索
ubuntu默认的快捷方式图标在 /usr/share/applications

zzs@ubuntu:~$ cd /usr/share/applications/
zzs@ubuntu:/usr/share/applications$ sudo touch navicat.desktop
zzs@ubuntu:/usr/share/applications$ sudo vi navicat.desktop

加入一下内容

然后在dash里输入navicat就可以看到我们刚才加的图标了

注意:

其中图标要自己注意路径,可以挑一张自己喜欢的图标,放在指定的位置

 

ubuntu14.04 64位运行xampp错误解决方案

这前一直使用ubuntu12.04 64位,在运行php集成环境xampp时会出现以下信息,说不支持32位应用程序

[sudo] password for zzs:
XAMPP is currently only availably as 32 bit application. Please use a 32 bit compatibility library for your system.

解决方式是安装32位程序支持库(在ubuntu12.04时我是用以下方法解决的),
但最近将系统升级成ubuntu14.04,这次出现以下信息
zzs@ubuntu:~$ sudo apt-get install ia32-libs
[sudo] password for zzs:
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
现在没有可用的软件包 ia32-libs,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
可是下列软件包取代了它:
lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2 继续阅读

ubuntu 12.04 安装显卡驱动后,开关机画面分辨率变低解决方案

ubuntu 12.04 安装显卡驱动后,开机和关机的画面分辨率可能会变低或者变成黑屏。

解决方法如下:

1,安装

sudo apt-get install v86d hwinfo

2,找到支持的分辨率

sudo hwinfo –framebuffer

这个很有可能找不到,或者结果不对。没关系,这个只是一个参考。

3,编辑grub文件

sudo gedit /etc/default/grub

或者sudo leafpad /etc/default/grub


GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
改成
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash nomodeset video=uvesafb:mode_option=1360×768-24,mtrr=3,scroll=ywrap”


#GRUB_GFXMODE=640×480
改成
GRUB_GFXMODE=1024×768
注意,不要#号

在(GRUB_GFXMODE=1024×768)这句话下面加上

GRUB_GFXPAYLOAD_LINUX=1360×768
这里写上第2步的得到的分辨率,如果不对的话可以手动修改

然后保存文件

4,执行如下命令

echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

sudo update-initramfs -u

sudo update-grub

以上执行完后,请重启电脑。看看分辨率是不是好了。

在ubuntu桌面创建快捷方式

在ubuntu上装了一个Sublime Text 2,想给它创建一个快捷方式到桌面发现不行,要不然就是没有图标,非常的难看

于是乎,突然想起在删除文件的时候,经常看到xxx.desktop这样的文件。。。

#回到桌面看看是不是已经有一个图标了,点击就可以用了。还可以拖到别的地方(包括unity)

注意:zzs/ubuntu_soft/是我的文件存放目录,请酌情修改( 如果你的存放路径中有空格,请转义)

Ubuntu + xampp 增加Memcache扩展模块

网上看了一些安装方式,试了一下,Ubuntu 并不支持XAMPP套件。
于是开始尝试新的安装方式:
首先安装memcache和php5 memcache模块

将生成的文件拷到LAMPP所存放的位置:

配置/opt/lampp/etc/php.ini

重启LAMPP
PHPINFO:

memcache

memcache support enabled
Version 3.0.4
Revision $Revision: 1.83.2.36 $
Directive Local Value Master Value
memcache.allow_failover 1 1
memcache.chunk_size 32768 32768
memcache.compress_threshold 20000 20000
memcache.default_port 11211 11211
memcache.hash_function crc32 crc32
memcache.hash_strategy consistent consistent
memcache.lock_timeout 15 15
memcache.max_failover_attempts 20 20
memcache.protocol ascii ascii
memcache.redundancy 1 1
memcache.session_redundancy 2 2

执行memcache的内存,端口和运行的用户 sudo memcached -d -m 50 -p 11211 -u root
参数说明 -m 指定使用多少M的缓存空间;
-p 指定要监听的端口;
-u 指定以哪个用户来运 我这里只是测试案例,为了安全也可以设置其他用户来运行Memcache memcache配置文件在 /etc/php5/conf.d/memcache.ini 我这里做测试用,没有对其配置。
测试memcache是否成功代码:

 

VirtualBox上安装了Windows XP不能全屏

VirtualBox上安装了Windows XP发现不能全屏(就算点全屏,周围也是空白。。。)。
想起了以前用vmware的时候可以版自动识别当前屏幕分辨率(字体不会拉伸,变形)。
它需要安装一个叫 VMtools的工具,这个选项在菜单的相关工具栏可以找的到。

VirtualBox肯定也有类似的工具包。只是名称不同而已(这是稍稍百度以后得出的结果)
安装方法等你的“虚拟XP”启动以后 点虚拟机控制台工具栏的 设备->安装增强功能->
接着可以会询问此程序不是Windows所认识的东西这类的,一路确定
完成以后重启虚拟机,现在可以把虚拟机随意切换到  无缝模式,全屏模式,自动缩放模式

笔者特别推荐无缝模式,现在的这个Windows XP就像一个在Ubuntu的一个小应用程序(屏幕充分利用,因为笔者的主操作系统为Ubuntu,用这个XP是做一些辅助的事情。像Ubuntu做起来比较费劲的事,登录网银什么 ps:有些网银只能用IE登录)页面一样,和自己所打开的别的窗口是一样的
用着特别舒服。好啦现在可以随便装一些东西,在ubuntu装不上的就可以装在XP上面了。
 

一个php程序员的ubuntu使用笔记(2013.9.28修正)

一个php程序员的ubuntu使用笔记,这是自己在使用ubuntu作为开发环境过程中的一些经验积累,
目的是可以为自己的经历和果实,也可以帮助菜鸟进步。老鸟请自行绕道。

刚装完系统

第一次开机首先要更新语言设置(更新以后,Thunderbird菜单栏就变成汉语了)
更新完语言以后更新系统,软件更新

gnomeshell主题安装

vim安装

安装cpmpiz配置管理程序

ubuntu firefox浏览器安装flashplayer插件

http://get.adobe.com/flashplayer/
flash插件就是一个libflashplayer.so文件,封装在deb或tar.gz压缩包,把里面的libflashplayer.so解压到

然后重启firefox

ubuntu下安装QQ

下载地址
http://www.longene.org/download/WineQQ2012-20121221-Longene.deb

ubuntu最新版QQ下载地址(2014/04/07更新)
http://www.longene.org/download/WineQQ2013SP6-20140102-Longene.deb
QQ安装如下,不需要装wine:

上面的方法已经失效,请尝试下面方法

ubuntu下安装fcitx五笔输入法

先在ubuntu软件管理中心安装fictx
然后安装fcitx输入法(然后安装五笔拼音库)

ubuntu下安装chm手册阅读器

磁盘空间不足

php集成开发环境xampp安装

下载xampp包(解压到/opt目录)

设置快捷键(开启,关闭,重启)
在家目录里边界 .bashrc文件

XAMPP 不支持64bit解决方案(XAMPP is currently only availably as 32 bit application)
XAMPP is currently only availably as 32 bit application.
Please use a 32 bit compatibility library for your system.
XAMPP不支持64位linux系统!

不支持64位ubuntu解决方案:

Ubuntu like:

centos like:

ubuntu下安装netbeans(7.2.1)

一、安装jdk或者jre(这里解释一下。二者选一,至于二者什么关系自己找google解决)

1)这里说jdk的安装方式
先下载软件包然后解压放到指定目录
这里我把jdk安装到/usr/local/java路径下面

然后配置环境变量,代码如下

2)如果安装上前面那一步,此步骤略过。

安装jre(java runtime environment),先在www.java.com/zh-cn下载jre,然后
这里我把jre安装到/usr/local/java路径下面

然后在命令行执行

做到这一步算是OK了,然后在终端中输入java -version试一下

二、安装成功以后再装netbeans

Ubuntu系统中永久修改主机名也比较简单

主机名存放在/etc/hostname文件中,修改主机名时,编辑hostname文件,在文件中输入新的主机名并保存该文件即可。

使gedit可以识别中文编码

个人倾向于使用第二种方法!因为新安装的ubuntu的gconf-editor里面没有auto-detected,新手一般不会设置!

Ubuntu系统自带的LibreOffice

PS:因为有了国产的WPS for linux版,现在不需要它了,如何彻底删除LibreOffice呢?
一条命令搞定: