首页 文章 精选 留言 我的

精选列表

搜索[VSCode扩展],共10008篇文章
优秀的个人博客,低调大师

linux下安装php扩展memcache

memcache 的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减轻后端数据库的读写压力。 实验环境:centos 6.6 x86_64 LAMP环境搭建完毕:php版本5.6.8、apache版本2.4.12 1、在安装memcached之前需要安装libevent支持: 1 2 3 4 5 #wgethttp://syslab.comsenz.com/downloads/linux/libevent-1.4.12-stable.tar.gz #tarzxvflibevent-1.4.12-stable.tar.gz #cdlibevent-1.4.12-stable #./configure--prefix=/usr/local/libevent #make&&makeinstall 2、服务器端 memcached 的编译安装 1 2 3 4 5 #wgethttp://syslab.comsenz.com/downloads/linux/memcached-1.4.5.tar.gz #tarzxvfmemcached-1.4.5.tar.gz #cdmemcached-1.4.5 #./configure--prefix=/usr/local/memcached--with-libevent=/usr/local/libevent/ #make&&makeinstall 3、客户端安装memcache步骤: 1 2 3 4 5 6 #wgethttp://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz #tarzxvfmemcache-2.2.3.tgz #cdmemcache-2.2.3 #/usr/local/php/bin/phpize #./configure--with-php-config=/usr/local/php/bin/php-config--enable-memcache #make 执行make后报错如下: 1 2 3 4 5 6 7 8 9 10 11 12 /usr/local/src/memcache-2 .2.3 /memcache .c:在函数‘php_mmc_connect’中: /usr/local/src/memcache-2 .2.3 /memcache .c:1902:错误:提供给函数‘zend_list_insert’的实参太少 /usr/local/src/memcache-2 .2.3 /memcache .c:1919:错误:提供给函数‘zend_list_insert’的实参太少 /usr/local/src/memcache-2 .2.3 /memcache .c:在函数‘zif_memcache_add_server’中: /usr/local/src/memcache-2 .2.3 /memcache .c:1975:错误:提供给函数‘zend_is_callable’的实参太少 /usr/local/src/memcache-2 .2.3 /memcache .c:2003:错误:提供给函数‘zend_list_insert’的实参太少 /usr/local/src/memcache-2 .2.3 /memcache .c:在函数‘zif_memcache_set_server_params’中: /usr/local/src/memcache-2 .2.3 /memcache .c:2059:错误:提供给函数‘zend_is_callable’的实参太少 /usr/local/src/memcache-2 .2.3 /memcache .c:在函数‘mmc_find_persistent’中: /usr/local/src/memcache-2 .2.3 /memcache .c:2159:错误:提供给函数‘zend_list_insert’的实参太少 /usr/local/src/memcache-2 .2.3 /memcache .c:2177:错误:提供给函数‘zend_list_insert’的实参太少 make :***[memcache.lo]错误1 根据错误,进行修改: vi memcache.c 将所有的:zend_list_insert(pool, le_memcache_pool); 改为:zend_list_insert(pool, le_memcache_poolTSRMLS_CC); 将所有的:zend_list_insert(mmc, le_pmemcache); 改为:zend_list_insert(mmc, le_pmemcacheTSRMLS_CC); 讲所有的:if (!zend_is_callable(failure_callback, 0, NULL)) 改为:if (!zend_is_callable(failure_callback, 0, NULL, NULL)) 修改完成后,重新make编译; 1 2 #makeinstall Installingsharedextensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/ 安装完成后的memcache.so模块在上面的路径中; # vi /usr/local/php/etc/php.ini 在最后一行添加:extension="memcache.so" 保存退出后,重启apache,使用php -m查看已经安装的memcache模块,或者在浏览器访问phpinfo.php查看; 启动memcached服务端: # /usr/local/memcached/bin/memcached -d -u root -m 256 -p 11211 -l localhost -d 是启动一个守护进程, -m 后边指定memecached使用多少内存,单位是M -p 指定memcached 启动端口 -l 指定绑定的IP -u 指定以某个账户的身份启动 启动后报错,找不到libevent模块; /usr/local/memcached/bin/memcached: error while loading shared libraries:libevent-1.4.so.2: cannot open shared object file: No such file or directory 需要把 libevent-1.4.so.2 拷贝或链接到 /usr/lib64 (x86_64位系统,32位的为/usr/lib目录)中,否则 memcached 无法正常加载。 # cp /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib64 memcache环境测试,写一个php文件,在网站根目录下 1 2 3 4 5 6 7 [root@localhosthtdocs] #cat1.php <?php $mem=newMemcache; $mem->connect( "localhost" ,11211); $mem-> set ( 'test' , 'helloworld' ,0,60); echo $mem->get( 'test' ); ?> 使用curl或者网页访问IP/1.php如果显示hello world 说明配置成功。 1 2 #curl-xlocalhost:80192.168.4.231/1.php helloworld 本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1676746,如需转载请自行联系原作者

优秀的个人博客,低调大师

弹出式菜单扩展学习

看其它应用软件时使用了很多的弹出菜单,蛮好的,顺带学习了下,写了个小DEMO,里面穿插的讲了下系统级的dialog使用小巧门,希望与大家交流学习。。下面来看代码: packagecom.xiaoma.popupmenu.demo; importandroid.app.Activity; importandroid.app.Dialog; importandroid.app.ProgressDialog; importandroid.os.Bundle; importandroid.util.Log; importandroid.view.MenuInflater; importandroid.view.MenuItem; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.PopupMenu; importandroid.widget.Toast; importandroid.widget.PopupMenu.OnMenuItemClickListener; /** *@Title:PopupMenuDemoActivity.java *@Packagecom.xiaoma.popupmenu.demo *@Description:弹出式菜单测试类 *@authorMZH */ publicclassPopupMenuDemoActivityextendsActivityimplementsOnClickListener,OnMenuItemClickListener{ privateButtonshow; /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } /* *初始化实现 */ privatevoidinit(){ show=(Button)findViewById(R.id.button1); show.setOnClickListener(this); } /* *添加监听器(non-Javadoc) *@seeandroid.view.View.OnClickListener#onClick(android.view.View) */ @Override publicvoidonClick(Viewv){ if(v.getId()==R.id.button1){ showPopup(v); } } /* *弹出对话框实现 */ privatevoidshowPopup(Viewv){ PopupMenupopup=newPopupMenu(getApplicationContext(),v); popup.setOnMenuItemClickListener(this); MenuInflaterinflater=popup.getMenuInflater(); inflater.inflate(R.menu.menutest,popup.getMenu()); popup.show(); } /* *给选择的项添加监听器(non-Javadoc) */ @Override publicbooleanonMenuItemClick(MenuItemitem){ switch(item.getItemId()){ caseR.id.new_game: Log.i("KKK","奇怪"); ShowDialog(item.getTitle()); break; caseR.id.help: ShowDialog(item.getTitle()); break; caseR.id.file: ShowDialog(item.getTitle()); break; caseR.id.create_new: ShowDialog(item.getTitle()); break; caseR.id.open: ShowDialog(item.getTitle()); break; default: break; } returnfalse; } /* *弹出消息方法实现 *因为安卓系统中也自带这样一个临时弹出dialog的方法 *showDialog(intid),所以小马在此处违背了下一般的命名 *规则,起名:ShowDialog(),下面顺带讲下系统自带的临时dialog的实现 */ privatevoidShowDialog(CharSequencech){ Toast.makeText(getApplicationContext(),ch,Toast.LENGTH_SHORT).show(); } /** *在使用系统级自带的showDialog(intid)方法时,必须重载下面这个方法哦 */ @Override protectedDialogonCreateDialog(intid){ ProgressDialogdialog=newProgressDialog(this); dialog.setMessage("小马临时放的字符串一"); returndialog; } /** *在使用系统级自带的showDialog(intid,intid,Bundleargs)方法时, *必须重载下面这个方法 *id:dialog的ID *args为提供给showDialog的第二个方法 */ @Override protectedDialogonCreateDialog(intid,Bundleargs){ ProgressDialogdialog=newProgressDialog(this); dialog.setMessage("小马临时放的字符串二"); returndialog; } } 加载的菜单布局如下: <?xmlversion="1.0"encoding="utf-8"?> <menuxmlns:android="http://schemas.android.com/apk/res/android"> <itemandroid:id="@+id/new_game" android:icon="@drawable/ic_launcher" android:title="新游戏" android:showAsAction="ifRoom"/> <itemandroid:id="@+id/help" android:icon="@drawable/ic_launcher" android:title="帮助"/> <itemandroid:id="@+id/file" android:title="嵌套"> <menu> <itemandroid:id="@+id/create_new" android:title="开始新游戏"/> <itemandroid:id="@+id/open" android:title="开始"/> </menu> </item> <groupandroid:id="@+id/group_delete"> <itemandroid:id="@+id/menu_archive" android:title="组员一"/> <itemandroid:id="@+id/menu_delete" android:title="组员二"/> </group> </menu> 很简单的实现,每天进步一点点,吼吼。。学习再学习!加油。。。 附件:http://down.51cto.com/data/2359943 本文转自华华世界 51CTO博客,原文链接:http://blog.51cto.com/mzh3344258/791569,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册