首页 文章 精选 留言 我的

精选列表

搜索[微信生态上云方案],共10000篇文章
优秀的个人博客,低调大师

ios 添加到cell 上的button点击无效!扩大button的点击区域(黑魔法)

一般情况下点击效果都是正常的!要不然你对它做了什么?一般细心的小伙伴都没有遇到这种情况,但是呢! 当然我是二班的!在这里我主要讲两个问题,解决问题和普及魔法。 一.普及问题(button在cell上点击无效) 自定义一个cell,cell里边creat了一个button!然后调试了半天,什么反应都没有! 1.button的enable 设置为yes可点击的。 1.我以为我设置了交互禁用! self.userInteractionEnabled = YES; 2.button的frame越界了! 首先你要明白action的传递的载体,父试图的载体。 二.普及魔法(扩大button的点击区域) 啥都不说了,直接上代码!!! // // UIButton+EnlargeEdge.h // peter.zhang // // Created by peter.zhang on 8/28/14. // Copyright (c) 2014 peter. All rights reserved. // #import <objc/runtime.h> @interface UIButton (EnlargeEdge) - (void)setEnlargeEdge:(CGFloat) size; - (void)setEnlargeEdgeWithTop:(CGFloat) top right:(CGFloat) right bottom:(CGFloat) bottom left:(CGFloat) left; @end --------------- // // UIButton+EnlargeEdge.h // peter.zhang // // Created by peter.zhang on 8/28/14. // Copyright (c) 2014 peter. All rights reserved. // #import "UIButton+EnlargeEdge.h" @implementation UIButton (EnlargeEdge) static char topNameKey; static char rightNameKey; static char bottomNameKey; static char leftNameKey; - (void)setEnlargeEdge:(CGFloat) size { objc_setAssociatedObject(self, &topNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); objc_setAssociatedObject(self, &rightNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); objc_setAssociatedObject(self, &bottomNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); objc_setAssociatedObject(self, &leftNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); } - (void)setEnlargeEdgeWithTop:(CGFloat) top right:(CGFloat) right bottom:(CGFloat) bottom left:(CGFloat) left { objc_setAssociatedObject(self, &topNameKey, [NSNumber numberWithFloat:top], OBJC_ASSOCIATION_COPY_NONATOMIC); objc_setAssociatedObject(self, &rightNameKey, [NSNumber numberWithFloat:right], OBJC_ASSOCIATION_COPY_NONATOMIC); objc_setAssociatedObject(self, &bottomNameKey, [NSNumber numberWithFloat:bottom], OBJC_ASSOCIATION_COPY_NONATOMIC); objc_setAssociatedObject(self, &leftNameKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_COPY_NONATOMIC); } - (CGRect)enlargedRect { NSNumber* topEdge = objc_getAssociatedObject(self, &topNameKey); NSNumber* rightEdge = objc_getAssociatedObject(self, &rightNameKey); NSNumber* bottomEdge = objc_getAssociatedObject(self, &bottomNameKey); NSNumber* leftEdge = objc_getAssociatedObject(self, &leftNameKey); if (topEdge && rightEdge && bottomEdge && leftEdge) { return CGRectMake(self.bounds.origin.x - leftEdge.floatValue, self.bounds.origin.y - topEdge.floatValue, self.bounds.size.width + leftEdge.floatValue + rightEdge.floatValue, self.bounds.size.height + topEdge.floatValue + bottomEdge.floatValue); } else { return self.bounds; } } - (UIView*)hitTest:(CGPoint) point withEvent:(UIEvent*) event { CGRect rect = [self enlargedRect]; if (CGRectEqualToRect(rect, self.bounds)) { return [super hitTest:point withEvent:event]; } return CGRectContainsPoint(rect, point) ? self : nil; } @end 拖进工程直接用就行了!!!!多多指教 UIButton *btnCancel = [UIButton buttonWithType:UIButtonTypeCustom]; btnCancel.frame = CGRectMake(100, 100, 10, 10); btnCancel.backgroundColor = [UIColor redColor]; [btnCancel setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10]; [btnCancel addTarget:self action:@selector(cancelBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [topView addSubview:btnCancel];

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

在android系统上写C语言程序--开机启动该程序不进入安卓系统

今天要写的这篇博文意义重大,也是网上很少有的,这是在我工作中学会的一项技术,当然,它也是由简单的问题组合而来的。如何在安卓中写C语言程序,调试安卓驱动,测试程序的的一项重要技能,下面我就不说废话了,直接说实用的,怎么用这个东西。 关于这个问题,相信很多学Android的都会去关注这个问题,大家普遍会有个这样的疑问:安卓是怎么跑起来的? 最简单的说法,安卓系统是这样加载的: Bootloader------Kernel(对应平台版本的Linux内核)------filesystem文件系统(这个就是Android了) 所以说,安卓其实不是操作系统,而是一个基于linux内核的文件系统。 那么,我们标题所说的,要在开机的时候就运行我们的程序而不选择进入安卓系统,那么如何来实现呢?首先,得了解一个问题,filesystem是怎么启动的。 从网上搜索的资料还有一些讲Andorid系统的书籍来看,文件系统的加载是从init.rc开始一步步的,创建文件系统所需的目录,还有给这些目录加权限,拷贝相关的程序,等待操作,最重要的,一个文件系统的运行需要加载这些服务才可以实现。至于怎么加载的,原理我就不多说了,说来话长,推荐大家可以去搜索init.rc,init.c这样的字眼就可以明白了。 我们现在讲的是如何来实现开机就执行bin文件,而不进入安卓系统。 1、 为了区别我的服务跟别的服务的不同,我的服务独立于一个on来进行触发。 on YYX class_start core service pppService /system/bin/PPPreboot class core user root group root oneshot 我写的这个服务名字叫做pppService,服务对应需要执行的bin文件是PPPreboot,实现的就是平板一开机打印语句然后就重启,一直反复,这样就不会进入安卓文件系统了,也就看不到我们平常使用的安卓UI界面,而是黑压压的一篇,但是你在串口上可以看到调试信息输出,当然,如果你了解驱动应用编程,你可以在此时在屏幕上画点东西,做你自己的界面,其实就是写C或者C++的程序了,就是写linux的应用程序。 2、源码如下(位置:external/test/ppp.c) #include <stdio.h> #include <stdlib.h> #include <android/log.h> #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__) int main(void) { int i ; freopen("/dev/ttyMT0", "a", stdout);setbuf(stdout, NULL); freopen("/dev/ttyMT0", "a", stderr);setbuf(stderr, NULL); LOGD("YYX---->reboot system!!!!!!--->201612.1\n"); system("reboot"); return 0 ; } 对应的Android.mk LOCAL_PATH:=$(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := eng LOCAL_LDLIBS := -llog LOCAL_SRC_FILES:= \ ppp.c LOCAL_MODULE:= PPPreboot include $(BUILD_EXECUTABLE) #include $(BUILD_SHARED_LIBRARY) 1.对编写好的这个C程序进行编译,用命令mm或者mmm进行编译,编译生成的PPPreboot就位于我们开机启动的安卓文件系统的system/bin/这个目录下 2.在init.rc中调用trigger命令触发这个on YYX,只要再适当的位置加上:trigger YYX 就可以了 3.编译:make –j8 将对应的文件下载到安卓平板,开机你就会发现平板可以打印信息也可以不断的重启了。 如果此时不加上: freopen("/dev/ttyMT0","a", stdout);setbuf(stdout, NULL); freopen("/dev/ttyMT0","a", stderr);setbuf(stderr, NULL); 你不会在安卓的串口上看到任何的输出信息,因为串口在init.cpp的时候就已经做了这步设置,详情请查看system/core/init/init.cpp代码: open_devnull_stdio(); 这一句的作用就是将安卓中的标准输入输出重定向到/dev/null,众所周知,这被称为是linux的一个空洞文件,这个文件可以接收一切的信息,它就像一个垃圾桶一样。但是有个特点,它是只进不出的。 所以,我们在自己写的C程序或者C++程序中需要先重定向到标准输入输出,freopen的作用就是这样的,还应该要注意,你的板子的串口输出设备节点是什么,我的是/dev/ttyMT0,有可能你的就跟我不一样了。 关于上面说的这个应用,应用范围,一些PCBA的产测工具可以在这个时候进行实现,或者手动OTA更新等等,应用非常广泛,需要大家在工作中孰能生巧。

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

rhel6上搭建lnmp架构以及遇到的一些错误并排除方法

先装好rhel6.5 配置好实验环境 关掉NetworkManager,并停止掉开机自启动 [root@duwensql~]#serviceNetworkManagerstop [root@duwensql~]#chkconfig--listNetworkManager [root@duwensql~]#chkconfigNetworkManageroff 关掉iptables [root@duwensql~]#iptables-F [root@duwensql~]#serviceiptablessave iptables£o·àe1ò±£′μ/etc/sysconfig/iptables£o[è·¨] [root@duwensql~]#chkconfigiptablesoff 关掉selinux [root@duwensql~]#getenforce Enforcing [root@duwensql~]#setenforce usage:setenforce[Enforcing|Permissive|1|0] [root@duwensql~]#setenforce0 [root@duwensql~]# [root@duwensql~]#vim/etc/selinux/config 打开这个档案以后你可以看到如下的内容,把SELINUX的值改成disabled就好 #ThisfilecontrolsthestateofSELinuxonthesystem. #SELINUX=cantakeoneofthesethreevalues: #enforcing-SELinuxsecuritypolicyisenforced. #permissive-SELinuxprintswarningsinsteadofenforcing. #disabled-NoSELinuxpolicyisloaded. SELINUX=disabled #SELINUXTYPE=cantakeoneofthesetwovalues: #targeted-Targetedprocessesareprotected, #mls-MultiLevelSecurityprotection. SELINUXTYPE=targeted 修改主机名映射,可以不改,但是为了方便还是改下吧 [root@duwensql~]#cat/etc/hosts 127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4 ::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6 [root@duwensql~]#echo"192.168.20.253duwensql.cnMySQL">>/etc/hosts [root@duwensql~]#cat/etc/hosts 127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4 ::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6 192.168.20.253duwensql.cnMySQL [root@duwensql~]# 修改主机名,就是编辑下面的这个档案,这里只贴上修改后的内容 [root@duwensql~]#cat/etc/sysconfig/network NETWORKING=yes HOSTNAME=duwensql.cn GATEWAY=192.168.20.2 NTPSERVERARGS=iburst [root@duwensql~]# 配置本地yum源 [root@duwensql~]# [root@duwensql~]#mount/dev/sr0/mnt/ mount:blockdevice/dev/sr0iswrite-protected,mountingread-only [root@duwensql~]#df-h|tail-1 /dev/sr03.6G3.6G0100%/mnt [root@duwensql~]#echo"/dev/sr0/mnt/iso9660defaults00">>/etc/fstab [root@duwensql~]#rm-rf/etc/yum.repos.d/* [root@duwensql~]#cat>/etc/yum.repos.d/rhel6.repo<<EOF >[rhel6-source] >name=rhel6-source >baseurl=file:///mnt >enabled=1 >gpgcheck=0 >EOF [root@duwensql~]#yumcleanall Loadedplugins:product-id,refresh-packagekit,security,subscription-manager ThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister. Cleaningrepos:rhel6-source CleaningupEverything [root@duwensql~]#yumlist 检测依赖环境,包括gcc,gcc-c++,autoconf,automake,zlib ,zlib-devel, openssl ,openssl-devel ,pcre-devel, [root@duwensql~]# [root@duwensql~]#yuminstall-ygccgcc-c++autoconfautomake [root@duwensql~]#yuminstall-yzlibzlib-developensslopenssl-develpcre-devel 为了方便从xshell上传软件包,这里安装一个工具 [root@duwensql~]#rpm/mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm-ih warning:/mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm:HeaderV3RSA/SHA256Signature,keyIDfd431d51:NOKEY ###########################################[100%] ###########################################[100%] [root@duwensql~]# //上传软件包:nginx-1.6.0.tar.gzmysql-5.5.30.tar.gz php-5.4.14.tar.bz2 [root@duwensql~]#rz zwaitingtoreceive.**B0100000023be50 [root@duwensql~]#ls anaconda-ks.cfginstall.log.syslognginx-1.6.0.tar.gz公共的视频文档音乐 install.logmysql-5.5.30.tar.gzphp-5.4.14.tar.bz2模板图片下载桌面 正式开始安装MySQL了 解压到指定目录/usr/local/src/ [root@duwensql~]# [root@duwensql~]#tar-zxfmysql-5.5.30.tar.gz-C/usr/local/src/ 建一个mysql用户,这里把这个用户显示出来 [root@duwensql~]#tail-1/etc/passwd mysql:x:500:500::/home/mysql:/sbin/nologin [root@duwensql~]# //安装cmake [root@duwensql~]#yuminstall-ycmake 建立mysql的目录 [root@duwensql/]#mkdir/server [root@duwensql~]#cd/usr/local/src/mysql-5.5.30/ [root@duwensqlmysql-5.5.30]#cmake-DCMAKE_INSTALL_PREFIX=/server/mysql-5.5-DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSERS=all-DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINT=1-DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/server/mysql/data-DMYSQL_USER=mysql //报错啦啦啦啦 CMakeErroratcmake/readline.cmake:83(MESSAGE): Curseslibrarynotfound.Pleaseinstallappropriatepackage, removeCMakeCache.txtandreruncmake.OnDebian/Ubuntu,packagenameislibncurses5-dev,onRedhatandderivatesitisncurses-devel. CallStack(mostrecentcallfirst): cmake/readline.cmake:127(FIND_CURSES) cmake/readline.cmake:217(MYSQL_USE_BUNDLED_LIBEDIT) CMakeLists.txt:269(MYSQL_CHECK_READLINE) --Configuringincomplete,errorsoccurred! //这个错误就是ncurses这个依赖没有装,yum安装一下 [root@duwensqlncurses-5.9]#yum-yinstallncurses-devel //装了那个ncurses依赖,还是报错,就只好把这个CMakeCache.txt找出来干掉了 [root@duwensqlmysql-5.5.30]#find/-nameCMakeCache.txt /usr/local/src/mysql-5.5.30/CMakeCache.txt [root@duwensqlmysql-5.5.30]#rm-rf/usr/local/src/mysql-5.5.30/CMakeCache.txt //OK,现在重新cmake //呐开心不,没有报错了呢!!! 现在make &&make install,过程就不写了 配置运行环境 [root@duwensqlmysql-5.5.30]#cd/server/ [root@duwensqlserver]#ls mysql-5.5 [root@duwensqlserver]#chown-Rmysql:mysql/server/mysql-5.5/ 复制mysql配置文件 [root@duwensqlserver]#cd/etc/ [root@duwensqletc]#llmy.cnf -rw-r--r--.1rootroot2518月92013my.cnf [root@duwensqletc]#mv./my.cnf./my.cnf.back [root@duwensqletc]#cp/usr/local/src/mysql-5.5.30/support-files/my-large.cnf/etc/my.cnf [root@duwensqletc]# 这个步骤是加入开机启动项 [root@duwensqlinit.d]#cp/usr/local/src/mysql-5.5.30/support-files/mysql.server/etc/init.d/mysqld5.5 [root@duwensqlinit.d]#chmod+x./mysqld5.5 [root@duwensqlinit.d]#pwd /etc/init.d [root@duwensqlinit.d]# //这里要改下,大概在第70行 [root@duwensqlinit.d]#vim/etc/init.d/mysqld5.5 [root@duwensqlinit.d]#head-71/etc/init.d/mysqld5.5|tail-7 then basedir=/server/mysql-5.5 bindir=/server/mysql-5.5/bin iftest-z"$datadir" then datadir=/server/mysql-5.5/data fi [root@duwensqlinit.d]# //加入开机启动项 [root@duwensqlinit.d]#chkconfigmysqld5.5on [root@duwensqlinit.d]#chkconfig--listmysqld5.5 mysqld5.50:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭 [root@duwensqlinit.d]# 初始化mysql [root@duwensqlinit.d]#cd/usr/local/src/mysql-5.5.30/scripts/ [root@duwensqlscripts]#chmod+xmysql_install_db [root@duwensqlscripts]#./mysql_install_db--defaults-file=/etc/my.cnf--basedir=/server/mysql-5.5--datadir=/server/mysql-5.5/data--user=mysql InstallingMySQLsystemtables... OK Fillinghelptables... OK Tostartmysqldatboottimeyouhavetocopy support-files/mysql.servertotherightplaceforyoursystem PLEASEREMEMBERTOSETAPASSWORDFORTHEMySQLrootUSER! Todoso,starttheserver,thenissuethefollowingcommands: /server/mysql-5.5/bin/mysqladmin-urootpassword'new-password' /server/mysql-5.5/bin/mysqladmin-uroot-hduwensqlpassword'new-password' Alternativelyyoucanrun: /server/mysql-5.5/bin/mysql_secure_installation whichwillalsogiveyoutheoptionofremovingthetest databasesandanonymoususercreatedbydefault.Thisis stronglyrecommendedforproductionservers. Seethemanualformoreinstructions. YoucanstarttheMySQLdaemonwith: cd/server/mysql-5.5;/server/mysql-5.5/bin/mysqld_safe& YoucantesttheMySQLdaemonwithmysql-test-run.pl cd/server/mysql-5.5/mysql-test;perlmysql-test-run.pl Pleasereportanyproblemswiththe/server/mysql-5.5/scripts/mysqlbugscript! [root@duwensqlscripts]# 开启mysql [root@duwensqlscripts]#/etc/init.d/mysqld5.5start StartingMySQL...[确定] [root@duwensqlscripts]# 测试MySQL //我这里最开始在家目录输入mysql显示没有命令,是因为没有加入环境变量的缘故啦,这里就不写出来了,直接到绝对路径去测试 root@duwensqlmysql-test]#cd/server [root@duwensqlserver]#ls mysql-5.5 [root@duwensqlserver]#cdmysql-5.5/ [root@duwensqlmysql-5.5]#ls binCOPYINGdatadocsincludeINSTALL-BINARYlibmanmysql-testREADMEscriptssharesql-benchsupport-files [root@duwensqlmysql-5.5]#cdbin/ [root@duwensqlbin]#./mysql WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis1 Serverversion:5.5.30-logSourcedistribution Copyright(c)2000,2013,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| +--------------------+ 4rowsinset(0.04sec) mysql> ctrl + c 退出 给他加个环境变量吧 [root@duwensql~]#echo$PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@duwensql~]#PATH="$PATH":/server/mysql-5.5/bin/ 设置mysql的root账户密码,并测试登陆 [root@duwensql~]#mysqladmin-urootpassword'123456' [root@duwensql~]#mysql-uroot-p123456 WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis4 Serverversion:5.5.30-logSourcedistribution Copyright(c)2000,2013,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql> ctrl + c 退出 MySQL安装完了 来安装nginx吧 解压 [root@duwensql~]#tar-zxfnginx-1.6.0.tar.gz 编译 [root@duwensqlnginx-1.6.0]#./configure--prefix=server/nginx-1.6.0--user=nginx--group=nginx--with-http_dav_module--with-http_stub_status_module--with-http_addition_module--with-http_sub_module--with-http_flv_module--with-http_mp4_module 结果太多就不写了,放一个图 make&&make install [root@duwensqlnginx-1.6.0]#make-j4&&makeinstall 开始配置 [root@duwensqlnginx-1.2.8]#pwd /server/nginx-1.2.8 [root@duwensqlnginx-1.2.8]#vimconf/nginx.conf 第二行加 usernginxnginx; 然后加下面的内容,括号{前面有空格 location~\.php${ roothtml; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME/server/nginx-1.2.8/html$fastcgi_script_name; includefastcgi_params; } 大概的位置如下图 启动服务 [root@duwensqlnginx-1.2.8]#/server/nginx-1.2.8/sbin/nginx 把服务加入开机启动 [root@duwensqlnginx-1.2.8]#echo'/server/nginx-1.2.8/sbin/nginx&'>>/etc/rc.local [root@duwensqlnginx-1.2.8]# 测试下 测试配置文件和重新加载配置文件 [root@duwensqlnginx-1.2.8]#/server/nginx-1.2.8/sbin/nginx-t nginx:theconfigurationfile/server/nginx-1.2.8/conf/nginx.confsyntaxisok nginx:configurationfile/server/nginx-1.2.8/conf/nginx.conftestissuccessful [root@duwensqlnginx-1.2.8]#/server/nginx-1.2.8/sbin/nginx-sreload 来安装PHP 给PHP添加扩展模块:libmcrypt-2.5.8.tar.gz 1、 让 PHP 编译支持这个功能 2、 生成扩展模块 3、 --with-mcrypt=/usr/local/ 安装libmcrypt库 [root@duwensql~]#tar-zxflibmcrypt-2.5.8.tar.gz [root@duwensql~]#cdlibmcrypt-2.5.8 [root@duwensqllibmcrypt-2.5.8]#./configure--prefix=/usr/local/ [root@duwensqllibmcrypt-2.5.8]#echo$? 0 [root@duwensqllibmcrypt-2.5.8]#make-j4&&makeinstall 加个环境 [root@duwensqllibmcrypt-2.5.8]#yum-yinstallphp-pear 解压以及编译 //在这一步出了好多好多错误,始料不及啊,本文把错误和解决贴上,如果还是不明白的话可以直接搜索错误,这里就不写了 [root@duwensql~]#tarjxfphp-5.4.14.tar.bz2-C/usr/local/src/ [root@duwensql~]#cd/usr/local/src/php-5.4.14/ [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错1 ####### configure:error:xml2-confignotfound.Pleasecheckyourlibxml2installation. [root@duwensqlphp-5.4.14]# 解决1 [root@duwensqlphp-5.4.14]#yum-yinstalllibxml2* 重新编译 [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错2 checkingifweshouldusecURLforurlstreams...yes checkingforcURLindefaultpath...notfound configure:error:Pleasereinstallthelibcurldistribution- easy.hshouldbein<curl-dir>/include/curl/ [root@duwensqlphp-5.4.14]# 解决2: [root@duwensqlphp-5.4.14]#yum-yinstallcurl-devel 重新编译 [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错3 checkingwhethertoenableJIS-mappedJapanesefontsupportinGD...no checkingforfabsf...yes checkingforfloorf...yes configure:error:jpeglib.hnotfound 解决3:*不要丢了 [root@duwensqlphp-5.4.14]#yum-yinstalllibjpeg* 再次编译 [root@duwensqlphp-5.4.14]./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错4: checkingforjpeg_read_headerin-ljpeg...yes Ifconfigurefailstry--with-vpx-dir=<DIR> configure:error:png.hnotfound. [root@duwensqlphp-5.4.14]# 解决4:*不要丢了 [root@duwensqlphp-5.4.14]#yum-yinstalllibpng* 再次编译 [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错5: configure:error:freetype.hnotfound. 解决5:*不要丢掉了 [root@duwensqlphp-5.4.14]#yum-yinstallfreetype* 再次编译 [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错6: checkingforspecifiedlocationoftheMySQLUNIXsocket...no configure:error:CannotfindMySQLheaderfilesunder/server-5.5/. NotethattheMySQLclientlibraryisnotbundledanymore! 这个应该是指定路径错误,改下 再次编译 [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli=/server/mysql-5.5/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 报错7: configure:error:wrongmysqllibraryversionorlibnotfound.Checkconfig.logformoreinformation. 解决7: “=/server/mysql-5.5/bin/mysql_config”删掉试试 改好以后的执行: [root@duwensqlphp-5.4.14]#./configure--prefix=/server/php-5.4-nginx--with-config-file-path=/server/php-5.4-nginx--with-mysql=/server/mysql-5.5/--with-mysqli--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr/local/ 历经千辛万苦啊 这里贴上一些参数的意思 --with-iconv-dir #字符集转换 需要的扩展模块 –without-iconv 关闭 iconv 函数,种字符集间的转换 –with-freetype-dir 打开对 freetype 字体库的支持 –with-jpeg-dir 打开对 jpeg 图片的支持 –with-png-dir 打开对 png 图片的支持 –with-libxml-dir 打开 libxml2 库的支持 –disable-rpath 关闭额外的运行库文件 –enable-bcmath 打开图片大小调整,用到 zabbix 监控的时候用到了这个模块 下面 是make && make install [root@duwensqlphp-5.4.14]#make-j4&&makeinstall 生成配置文件 [root@duwensql~]#cp/usr/local/src/php-5.4.14/php.ini-production/server/php-5.4-nginx/php.ini 生成php-fpm配置文件 [root@duwensql~]#cp/server/php-5.4-nginx/etc/php-fpm.conf.default/server/php-5.4-nginx/etc/php-fpm.conf 生成php-fpm启动脚本 [root@duwensql~]#cp/usr/local/src/php-5.4.14/sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm [root@duwensql~]#chmod+x/etc/init.d/php-fpm [root@duwensql~]#/etc/init.d/php-fpmstart Startingphp-fpmdone [root@duwensql~]#netstat-anptu|grep9000 tcp00127.0.0.1:90000.0.0.0:*LISTEN76616/php-fpm [root@duwensql~]# 测试php [root@duwensql~]#vim/server/nginx-1.2.8/html/a.php [root@duwensql~]#cat/server/nginx-1.2.8/html/a.php <?php phpinfo(); ?> [root@duwensql~]# 效果图如下 The End!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

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

用户登录
用户注册