CentOS6.5下编绎gSoap相关问题及解决

合集下载

VMware安装CentOS_6.5无法上网的解决办法

VMware安装CentOS_6.5无法上网的解决办法

1. 在VMware上安装CentOS6.5后,选择桥接或NA T发现无法上网。

2. 采用dhcp,发现无法获取ip地址,网卡图标状态为未连接
3. 若手动配置ip为172.16.20.191,ping主机外网卡ip 172.16.20.196和网关ip 172.16.20.1,结果显示如下:
4. 主机网络适配器如下图,必须通过红圈圈出的网卡桥接或NA T上网:
5. 现在通过VMware添加一个虚拟网络,通过桥接方式解决无法上网的问题,按图示打开Virtual Network Editor:
6. 点击“Add Network...”,从下拉列表中选择任一个均可,此处选“VMnet5”,点击“OK”,并按下图进行设置,完成后点击“OK”:
7.再设置虚拟机CentOS的联网方式,如图:
网络连接方式选择“Custom:Specific virtual network”,并选择第6步中新添加的虚拟网“VMnet5”,点击“OK”完成。

8.启动虚拟机CentOS 6.5后,可通过dhcp自动获取ip及DNS,也可手动设置;若手动配置其网卡ip,必须和桥接的物理网卡在一个网段(这里为172.16.20.0/24),同时设置正确的网关和DNS服务器,如图:
9.ping操作进行验证:
OK,百度也能ping通,问题解决!!!2014-10-09。

常见CentOS linux配置失败问题的解决方法

常见CentOS linux配置失败问题的解决方法

当CentOS配置失败时,也许你对失败的原因毫无所知,从哪里开始改正错误呢?这里,我们对一些常见导致失败的问题进行了一下汇总。

CentOS配置问题中,CentOS系统用yum命令升级php和mysql失败的解决办法CentOS配置失败的情况是:首先参看系统的php版本1.# rpm -qa |grep php2.php-common-5.1.6-20.el5_2.13.php-cli-5.1.6-20.el5_2.14.php-5.1.6-20.el5_2.15.php-ldap-5.1.6-20.el5_2.1然后看到此版本不是最新的用下面的命令升级1.# yum -y update php2.Loading "fastestmirror" plugin3.Loading mirror speeds from cached hostfile4.* base: 5.* updates: 6.* addons: 7.* extras: 8.Setting up update Process9.Could not find update match for php10.No Packages marked for UpdateCentOS配置说没有可以升级的php版本,而官方的php都是最新的了,php是5.2.*的了可是centos系统的还是5.1。

解决思路:是由于centos系统自带的源里面的php版本没有更新,需要额外的源才可以升级php和mysql。

办法:更新系统的源,然后在升级就可以解决了。

1.#vi /etc/yum.repos.d/zongguofengcn.repo2.[utterramblings]=Jason's Utter Ramblings Repo4.baseurl=/media/EL$releasever/$basearch/5.enabled=16.gpgcheck=17.gpgkey=/media/RPM-GPG-KEY-jlitka保存此文件wq,再次运行下面的命令就可以完成php的升级了#yum -y update php,同理,运行下面命令,升级mysql #yum -y update mysql,注释:CentOS配置中yum是linux版本的一些rhel、centos等系统自带的用于方便地添加/删除/更新RPM包的工具,它能自动解决包的倚赖性问题。

gsoap编译

gsoap编译

gsoap编译GSOAP是一款开源的C/C++软件,是一种基于SOAP的Web服务开发工具。

它可以让用户通过简单的代码,实现创建SOAP消息、IPC、Web服务和Web应用程序等功能。

用户可以使用gSOAP开发部署服务器端和客户端的应用程序。

本文将向您介绍gSOAP编译,并告诉您如何使用该工具。

第一步:下载gSOAP软件包在编译gSOAP之前,我们需要从官方网站下载gSOAP软件包。

该网站提供了多种版本的gSOAP,您可以根据自己的需要选择不同的版本。

建议您下载最新版本的gSOAP。

第二步:解压缩gSOAP软件包下载完成后,将gSOAP 软件包解压缩到您的计算机上。

如果您使用的是Linux和Unix操作系统,可以利用tar命令实现解压缩操作。

例如:$ tar xzf soapsource.tgz第三步:配置gSOAP 进入gSOAP软件包目录。

在该目录中会看到一个名为configure的文件。

Connectors目录中有可选的连接器。

可以使用的连接器有:Stdio连接器SSL连接器HTTPS连接器zlib连接器接下来,我们通过执行configure脚本来生成Makefile,执行以下命令: $ ./configure如果您需要配置gSOAP的全部选项,可以使用以下命令: $ ./configure --help第四步:编译gSOAP 在配置完gSOAP后,我们可以进入soapcpp2目录并使用make命令进行编译。

以下是命令:$ cd gsoap-<version>/gsoap$ make这会生成一个名为soapcpp2的可执行文件。

我们可以使用该文件来生成SOAP客户端和服务器端的代码。

第五步:测试gSOAP 完成编译后,您可以使用gSOAP 测试Web服务和Web应用程序。

您可以使用以下命令测试gSOAP:$ ./soapcpp2该命令将告诉gSOAP要生成客户端和服务器端代码的相关选项。

VMware中CentOS6.5无法连接网络怎么解决

VMware中CentOS6.5无法连接网络怎么解决

VMware中CentOS6.5无法连接网络怎么解决有网友反映为VMware安装CentOS6.5后,无法连接网络,这是什么原因导致的呢?可能是某些文件配置出错,下面小编就给大家介绍下VMware中CentOS6.5无法连接网络的解决方法。

主要原因:eth0文件配置了不正确的地址。

正确配置方法如下:1.确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在Windows的命令行里输入“ipconfig”,找到VMware Network Adapter VMnet8的ipv4地址例如:192.168.78.1)2.查看虚拟机中CentOS的网络配置是否为NAT3.修改 /etc/sysconfig/network-scprits/eth0文件BROADCAST 的IP值要和VMNET8中的ip保持一致且最后一位必须为255IPADDR的IP值要和VMNET8中的ip保持一致且最后一位必须为1~255的任意值GETWAY的IP值要和VMNET8中的ip保持一致且最后一位为2 eg:我本机的ip为192.168.78.1,那么正确的配置为:BROADCAST=192.168.78.255IPADDR=192.168.78.1GETWAY=192.168.78.24.配置完毕后,请输入命令“service network restart”来重启网络服务。

5.通过“ping”命令看是否已经可以联网。

补充:常见网络故障解决方法ip地址冲突:ip地址冲突是局域网中经常出现的问题,有的用户可能重做系统或其他原因丢失自己的IP地址,在重新写IP的时候和其他人的IP地址一样导致ip地址出错,此时电脑右下角就会有个提示框提示你IP地址已经有人用。

部门网管应该统计好部门人员的IP地址,当出现问题时可有资料可循,避免IP地址冲突。

计算机网卡故障,一般的主机网卡都带有网卡指示灯,网卡灯有两种类型,一种是只有单灯,一种是双灯。

centos6中unrecognized service -回复

centos6中unrecognized service -回复

centos6中unrecognized service -回复在CentOS 6中,当我们运行类似于"unrecognized service"的命令时,意味着系统无法识别或找不到该特定的服务。

这可能是由于多个原因导致的,包括服务名称输入错误、服务未安装或未正确配置等问题。

本文将逐步解释如何处理这个问题。

首先,当我们在CentOS 6中运行某个服务时遇到"unrecognized service"错误消息时,首要的步骤是确认我们输入的服务名称是否正确。

在Linux系统中,服务名称通常是区分大小写的,因此请确保完全按照服务名称输入。

例如,如果我们要尝试运行Apache HTTP服务器,请确保使用的命令是`service httpd start`而不是`service HTTPD start`或任何其他大小写组合。

其次,我们需要确保所需的服务已经安装在我们的CentOS 6系统上。

在CentOS 6中,我们可以使用yum包管理器来安装软件包。

例如,如果我们要安装Apache HTTP服务器,请运行以下命令来检查是否已安装:shellyum list installed httpd如果显示了已安装的软件包及其版本信息,表示Apache HTTP服务器已经成功安装。

如果未找到任何关于httpd的信息,我们可以使用以下命令来安装它:shellyum install httpd请注意,我们可能需要具有管理员权限来安装软件包。

接下来,确保我们已经启用了所需的服务。

在CentOS 6中,可以使用以下命令检查服务是否已启用:shellchkconfig list serviceName请将"serviceName"替换为我们要检查的服务的实际名称。

如果服务已启用,应该会在输出中看到"on"。

如果服务未启用,可以使用以下命令启用它:shellchkconfig serviceName on最后,如果我们已经按照上述步骤检查了服务名称、安装了所需的软件包并启用了服务,但仍然遇到"unrecognized service"错误消息,可能是由于服务未正确配置所致。

centos6.5安装提示需要GPT标签的解决办法

centos6.5安装提示需要GPT标签的解决办法

今天想在pc机上安装一个centos6.4,每次到分区的时候总提示sda必须有一个GPT磁盘标签,无法继续安装。

经过观察后,才知道这个时候需要建一个gpt的标签,网上查了一下,具体操作如下:
PS:下面步奏一定要在磁盘分区之前操作,如果已经分区,需要重置或返回上一页面去添加标签,如果分区完成,再去设置GPT标签,GPT标签会无效,还是会有这个提示的。

1、在进入安装界面,也就出现图形界面时,对它命令首先创建gpt
--按ctrl+alt+f2的组合键,然后进入命令行
--进行如下操作
输入parted
输入mklabel gpt /dev/sda
在提示界面中,输入Yes
使用print /dev/sda 进行确认
按ctrl+alt+f6回到安装界面
2、再次按顺序安装,对硬盘进行重新分区,顺利通过。

linux下gsoap使用及移植

linux下gsoap使用及移植

Linux下gsoap的使用及移植1、下载gsoap在gsoap的官网中可以找到最新的gsoap安装包及相关文档gsoap官网:/~engelen/soap.html下载地址:/projects/gsoap2/files/2、安装gsoapa、解压zip压缩包命令:unzip gsoap_2.8.1.zipb、进入解压后生成的文件夹gsoap-2.8命令:cd gsoap-2.8/c、切换到root用户命令:su输入密码d、配置编译环境在gsoap-2.8/文件夹下执行configure文件,自动配置编译环境命令:./configuree、编译连接命令:makef、安装gsoap命令:make install安装完毕可用wsdl2h或soapcpp2查看gsoap是否已经安装成功看到上述两个命令的返回说明安装成功3、应用实例wsdl2h -o outfile.h infile.wsdl 实现wsdl文件到h文件的数据映射soapcpp2 -c outfile.h生成相应的底层通信stub,strech程序首先新建一个文件夹名为gsoap;然后(1)不使用wsdl2ha、不使用wsdl2h我们可以直接从.h文件来生成代码。

我们先定义一个函数声明文件,用来定义接口函数,名称为add.h,内容如下://gsoapopt cw//gsoap ns2 schema namespace: urn:add//gsoap ns2 schema form: unqualified//gsoap ns2 service name: add//gsoap ns2 service type: addPortType//gsoap ns2 service port:/~engelen/addserver.cgi//gsoap ns2 service namespace: urn:add//gsoap ns2 service transport: /soap/http//gsoap ns2 service method-style: add rpc//gsoap ns2 service method-encoding:add /soap/encoding///gsoap ns2 service method-action: add ""int ns2__add( int num1, int num2, int* sum );b、执行soapcpp2 –c add.h,自动生成一些远程调用需要的文件c、接下来写一个服务端,创建文件addserver.c#include "add.nsmap"int main(int argc, char **argv){int m, s;struct soap add_soap;soap_init(&add_soap);soap_set_namespaces(&add_soap, namespaces);if (argc < 2) {printf("usage: %s <server_port> \n", argv[0]);exit(1);}else{m = soap_bind(&add_soap, NULL, atoi(argv[1]), 100);if (m < 0){soap_print_fault(&add_soap, stderr);exit(-1);}fprintf(stderr, "Socket connection successful: master socket = %d\n", m);for (;;){s = soap_accept(&add_soap);if (s < 0){soap_print_fault(&add_soap, stderr);exit(-1);}fprintf(stderr, "Socket connection successful: slave socket = %d\n", s);soap_serve(&add_soap);soap_end(&add_soap);}}return 0;}int ns2__add(struct soap *add_soap, int num1, int num2, int *sum){*sum = num1 + num2;return 0;}d、接着写一个客户端,文件名为addclient.c#include "soapStub.h"int add(const char *server, int num1, int num2, int *sum){struct soap add_soap;int result = 0;soap_init(&add_soap);soap_set_namespaces(&add_soap, namespaces);soap_call_ns2__add(&add_soap, server, NULL, num1, num2, sum);printf("server is %s, num1 is %d, num2 is %d\n", server, num1, num2);if (add_soap.error){printf("soap error: %d, %s, %s\n", add_soap.error, *soap_faultcode(&add_soap), *soap_faultstring(&add_soap));result = add_soap.error;}soap_end(&add_soap);soap_done(&add_soap);return result;}e、最后写一个测试代码,addtest.c#include <stdio.h>#include <stdlib.h>#include <string.h>int add(const char *server, int num1, int num2, int *sum);int main(int argc, char **argv){int result = -1;char server[128] = {0};int num1;int num2;int sum;if (argc < 4) {printf("usage: %s <ip:port> num1 num2 \n", argv[0]);exit(1);}strcpy(server,argv[1]);num1 = atoi(argv[2]);num2 = atoi(argv[3]);result = add(server, num1, num2, ∑);if (result != 0){printf("soap error, errcode=%d\n", result);}else{printf("%d + %d = %d\n", num1, num2, sum);}return 0;}f、到目前为止,自己的代码编写完毕,接下来编译服务端和客户端注意:编译的时候要把gsoap包里的源代码文件stdsoap2.c和stdsoap2.h拷贝到当前目录Makefile文件:GSOAP_ROOT = gsoap的解压路径/gsoapWSNAME = addCC = g++ -g -DWITH_NONAMESPACESINCLUDE = -I$(GSOAP_ROOT)SERVER_OBJS = soapC.o stdsoap2.o soapServer.o $(WSNAME)server.oCLIENT_OBJS = soapC.o stdsoap2.o soapClient.o $(WSNAME)client.o $(WSNAME)test.oall: serverserver: $(SERVER_OBJS)$(CC) $(INCLUDE) -o $(WSNAME)server $(SERVER_OBJS)client: $(CLIENT_OBJS)$(CC) $(INCLUDE) -o $(WSNAME)test $(CLIENT_OBJS)cl:rm -f *.o *.xml *.a *.wsdl *.nsmap soapH.h $(WSNAME)Stub.* $(WSNAME)server ns.xsd $(WSNAME)test然后执行make,即可生成addserver程序;执行make client,生成addtest程序g、运行程序执行./addserver 7777终端打印出:Socket connection successful: master socket = 3这是sever已经在前台运行起来了运行客户端./addtest ip地址:port num1 num2 返回加法的结果第一个简单的例子到此结束(2)使用wsdl2ha、建立一个新的目录,命名为weather命令:mkdir weatherb、利用gsoap 工具生成webserice 协义代码,wsdl2h从服务器下载头文件,soapcpp2相当于代码生成品,根据头文件生成相应的.c 文件和.nsmap 文件。

centos6.5u盘安装问题及解决方法

centos6.5u盘安装问题及解决方法

1、硬盘分区2、安装过程略3、安装完成,进入win7系统,使用easybcd软件建立centos6.5引导,选择NEOGrub并建立4、重启电脑,选择新建的centos6.5系统,并进入grub,配置centos6.5加载内核问题5、启动,出现错误6、此处/root=/dev/sdc4 应该是root=/dev/sdc4修改后,还有问题,提示路径错误,但分析后路径并没有问题7、解决此处问题,第4步骤应该可以顺利进行,但centos6.5并没有成功运行,在网上查阅centos系列安装双系统资料以上步骤并无问题,现在转回win7进入easybcd,添加linux/BSD 项,并将其设置称自动引导8、进入grub菜单,编辑——将root (hd1,2)改为root(hd0,3)成功进入centos6.5分析easybcd自动添加的引导命令发现它使用UUID,查阅UUID:Linux UUID的作用及意义原因1:它是真正的唯一标志符UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。

如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。

原因2:设备名并非总是不变的自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。

如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。

使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。

此处可能是电脑重启之后,启动顺序改变,U盘和硬盘的盘符改变,导致命令不可用,。

Centos6.5启动报错Kernelpanic-notsyncing:Attempted。。。

Centos6.5启动报错Kernelpanic-notsyncing:Attempted。。。

Centos6.5启动报错Kernelpanic-notsyncing:Attempted。

某⼀天,开发同事突然告诉我服务器上⾃⼰的虚拟机连不上了,我登陆到服务器CAS管理界⾯,重启虚拟机后发现报错了问题:Kernel panic - not syncing: Attempted to kill init原因:这个问题的主要原因是系统的/lib64/libc-2.12.so和/lib64/libc.so.6⽂件丢失或者软链接错误解决办法: ⼀、修改启动模式,更改为光盘启动(各种环境⼤同⼩异) ⼆、⽤光盘启动救援模式,进⼊shell命令⾏:执⾏: chroot /mnt/sysinage 报错 三、拷贝/lib64/libc-2.12.so和/lib64/libc.so.6⽂件 四、执⾏: chroot /mnt/sysinage 不会报错,证明已经修复过程如下: ⼀、修改启动模式,更改为光盘启动(各种环境⼤同⼩异),我的服务器装的是CAS管理平台,配置如下(如果是其他的请⾃⾏百度) 1、挂载光盘 2、设置为启动引导后,重启虚拟机 ⼆、⽤光盘启动救援模式,进⼊shell命令⾏:执⾏: chroot /mnt/sysinage 报错 1、选择Rescue install system 后回车 2、选择语⾔:English(默认) 3、选择键盘类型:us(默认) 4、Setup Networking:NO(设置⽹络根据情况⽽定,⼀般来说⽹络没问题就不⽤设置了) 5、Rescue:Continue(继续)1. >选择Continue,则救援模式程序会⾃动查找系统中已有的⽂件系统,并把他们挂载到/mnt/sysimage⽬录下。

2. >选择Read-Only,则会以只读的⽅式挂载已有的⽂件系统。

3. >⼿动挂载则Skip。

4. >Advanced ,⾼级选项就不作说明了。

6、原系统挂载路径/mnt/sysimage,如果想获得原系统root环境,执⾏⾏命令:chroot /mnt/sysimage 即可 7、⼀直OK,到选择shell命令⾏,OK 8、因为/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 问题,执⾏chroot /mnt/sysinage会报错 三、拷贝/lib64/libc-2.12.so和/lib64/libc.so.6⽂件 cp /lib64/libc-2.12.so /mnt/sysimage/lib64/libc-2.12.so cp /lib64/libc.so.6 /mnt/sysimage/lib64/libc.so.6 注:如果拷贝失败:⽤强制拷贝cp -rf 命令 四、执⾏: chroot /mnt/sysinage 不会报错,证明已经修复 重新启动虚拟机,启动成功。

CentOS 5 常见的configure error的解决方法

CentOS 5 常见的configure error的解决方法
configure failed for srclib/apr
原因是没有安装libcc
CentOS: yum -y install gcc
Fedora: up2date -i gcc
For me, this installed a few additional helper packages to get me started compiling C-code:
Note that the MySQL client library is not bundled anymore.
#yum install -y mysql-devel
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
Configuring APR library
apache编译问题centos
./configure --prefix=/usr/local/httpd --enable-threads --enable-cache --enable-disk-cache --enable-mem-cache --enable-deflate --enable-expires --enable-headers --enable-unique-id --enable-proxy --enable-proxy-http --enable-bucketeer --enable-static-support --enable-http --enable-dav --enable-info --enable-suexec --enable-cgi --enable-rewrite --enable-so --with-z --with-mpm=worker

1.编译内核模块遇到的问题

1.编译内核模块遇到的问题

1.编译内核模块遇到的问题问题:使⽤内核包编译驱动时常常提⽰如下:WARNING: Symbol version dump /usr/src/linux-2.6.26/Module.symversis missing; modules will have no dependencies and modversions.原因:通常头核⼼包中是没有Module.symvers这个⽂件的,要想获取这个⽂件只能到下载相同版本核⼼(2.6.26-1-686)的头⽂件,是下载不是apt-get install ,只有下载的头⽂件中才有这个Module.symvers。

把Module.symvers 复制到核⼼包中,然后执⾏如下步骤:make oldconfig && make prepare && make scripts。

然后重新编译驱动,将解决这个warning,同时也解决了版本不正确的问题我不知道有多少⼈会碰上这样的问题,反正google中我发现没有⼈能说明⽩这个问题ps:我遇到的问题是则是运⾏:make -C /usr/src/linux-2.6.34-12 SUBDIRS=$PWD modules出错如下:make: Entering directory `/usr/src/linux-2.6.34-12'ERROR: Kernel configuration is invalid.include/generated/autoconf.h or include/config/auto.conf are missing.Run 'make oldconfig && make prepare' on kernel src to fix it.WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symversis missing; modules will have no dependencies and modversions.scripts/Makefile.build:44: /usr/src/linux-2.6.34-12/PWD/Makefile: No such file or directorymake[1]: *** No rule to make target `/usr/src/linux-2.6.34-12/PWD/Makefile'. Stop.make: *** [_module_PWD] Error 2make: Leaving directory `/usr/src/linux-2.6.34-12'运⾏:make oldconfig && make prepare再次出错如下:make: Entering directory `/usr/src/linux-2.6.34-12'WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symversis missing; modules will have no dependencies and modversions.CC [M] /home/xxx/test/dr/drhello.oBuilding modules, stage 2.MODPOST 1 modules/bin/sh: scripts/mod/modpost: No such file or directorymake[1]: *** [__modpost] Error 127make: *** [modules] Error 2make: Leaving directory `/usr/src/linux-2.6.34-12'加上:make scripts可以了make: Entering directory `/usr/src/linux-2.6.34-12'WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symversis missing; modules will have no dependencies and modversions.CC [M] /home/xxx/test/dr/drhello.oBuilding modules, stage 2.MODPOST 1 modulesCC /home/test/dr/drhello.mod.oLD [M] /home/test/dr/drhello.komake: Leaving directory `/usr/src/linux-2.6.34-12'。

linux gso机制

linux gso机制

linux gso机制Linux GSO机制是Linux操作系统中的一个重要功能,它可以显著提高网络性能和效率。

GSO代表"Generic Segmentation Offload",它允许网络数据在发送之前进行分段处理,从而减轻了CPU的负担,并提高了网络传输速度。

GSO机制的核心思想是将较大的数据包分割成更小的片段,以便更高效地传输。

这种分段处理可以在网络适配器上进行,也可以在操作系统内核中完成。

无论在哪个层面实施,GSO机制都能够显著提高网络传输的性能。

使用GSO机制的一个明显好处是减少了CPU的工作负载。

在传统情况下,如果一个网络数据包很大,操作系统需要将整个数据包加载到内存中,并进行必要的处理和校验。

然而,这种处理方式会占用大量的CPU资源,降低系统的整体性能。

而通过使用GSO机制,操作系统只需要对数据包进行分段处理,并将每个片段单独发送。

这样,CPU只需要负责处理较小的片段,大大减轻了负担。

GSO机制还能够提高网络传输的效率。

对于大型数据包,传输过程中可能会遇到一些问题,比如链路拥塞或传输错误。

而通过将数据包分割成小片段,GSO机制可以降低这些问题的影响范围。

如果一个片段出现错误或丢失,只需重新传输该片段,而不需要重新传输整个数据包。

这样,GSO机制能够显著提高网络传输的可靠性和效率。

总结一下,Linux GSO机制是一种在网络传输中实现数据分段处理的技术。

它能够减轻CPU的负担,提高网络传输的性能和效率。

通过使用GSO机制,我们可以更好地利用网络资源,提供更快、更可靠的网络传输服务。

希望未来的Linux系统能够继续改进和优化GSO机制,使其更加高效和可靠。

这样,我们就能够享受到更好的网络体验,实现更快速、更稳定的数据传输。

Centos6.5(final)安装gcc和g++,python以及导致问题的解决方法

Centos6.5(final)安装gcc和g++,python以及导致问题的解决方法

Centos6.5(final)安装gcc和g++,python以及导致问题的解决⽅法安装gcc:yum install gcc安装g++:yum install gcc-c++安装python:centos默认是2.6的版本,,我下载的是2.7.10。

1 解压安装包tar -zxvf python-2.7.10.tgz2 编译安装cd 切换到python-2.7.10 ⽬录下./configure --prefix=/usr/local/python-2.7.10 ### 注意:安装在新⽬录,防⽌覆盖系统默认安装的pythonmake && make install3 建⽴软链接mv /usr/bin/python /usr/bin/python2.6.6.oldln -s /usr/local/python-2.7.10/bin/python2.7 /usr/bin/python 注意:第⼀个路径是我下载到本机上到路径,这个路径要根据⾃⼰到情况更改;4 检查安装[wen@Jianwen ~]$ pythonPython 2.7.10 (default, Sep 72015, 21:33:18)[GCC 4.4.720120313 (Red Hat 4.4.7-16)] on linux2Type "help", "copyright", "credits" or "license"for more information.>>>5 安装后导致到问题:中⽂输⼊法不能显⽰候选项经过⼀番查找,解决⽅案如下:/usr/libexec/ibus-ui-gtk/usr/ bin/ibus-setup/usr/libexec/ibus-engine-table将以上三个⽂件中的 “exec python” 修改为 “exec python2.6”,让后重启之后就可以看到输⼊法到候选项⽬了。

CentOS6.5下搭建LAMP环境(源码编译方式)

CentOS6.5下搭建LAMP环境(源码编译方式)

CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP 等。

这里我介绍一下LAMP环境的搭建,即Linux、Apache、MySQL 、PHP环境。

一、首先安装操作系统操作系统:centos6.5操作系统安装步骤,此处不再详述。

备注:服务器系统采用最小化安装,安装一下GCC编译工具和一个桌面即可。

如下图所示:由于安装系统的时候我是最小化安装,只安装了一个桌面,GCC编译工具也是系统装完之后安装的,所以没有默认的LAMP环境,如下图示:如果安装的时候有选择默认全部安装,就已经安装了LAMP环境,但是相对版本较低,而且安装的路径等可能不是我们想要的结果。

所以这里顺便介绍一下,如果存在默认的LAMP环境,进行卸载的方法,以apache为例:#rpm -qa | grep -i httd // 查询系统中已安装的Apache相关软件包#service httpd stop //如果apache已开启,停止运行apache服务器#rpm -e httpd-xxx --nodeps //卸载apache服务器php、mysql卸载方法同上。

【搭建LAMP环境须知】搭建LAMP环境时,需要安装的所有软件都要按照一定的顺序安装,我们按照Apache->MySQL->PHP的顺序安装。

但是在安装PHP之前,应先安装PHP5需要的最新版本库文件,例如libxml2、libmcrypt,以及GD2库等文件。

安装GD2库是为了让PHP5支持GIF、PNG和JPEG图片格式,所以在安装GD2库之前还要先安装最新的zlib、libpng、freetype和jpegsrc等库文件。

而且中间还会穿插安装一些软件。

二、LAMP安装前的准备1、获取软件包httpd-2.4.9.tar.gz /mysql-5.7.4.tar.gz /downloads/php-5.5.14.tar.gz /downloads.phpphpMyAdmin-4.2.5-all-languages.tar.gz /home_page/downloads.phplibxml2-2.9.0.tar.gz ftp:///libxml2/libmcrypt-2.5.8.tar.gz ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libgd-2.1.0.tar.gz https:///libgd/gd-libgd/downloadszlib-1.2.8.tar.gz autoconf-2.69.tar.gz /gnu/autoconf/freetype-2.5.3.tar.gz /releases/freetype/libpng-1.6.12.tar.gz ftp:///pub/libpng/png/src/jpegsrc.v9a.tar.gz /files/ZendGuard-5_5_0.tar.gz /en/products/guard/thank-you-zend-guard?package=415apr-1.5.1.tar.gz /download.cgiapr-util-1.5.3.tar.gz /download.cgipcre-8.35.zip /projects/pcre把上面下载的16个源代码包放到linux系统下的/usr/local/src/LAMP目录中2、编译工具安装如果安装系统的时候已经安装了GCC编译工具,则显示上图中的信息,如果没有安装,可以使用下面的方法进行安装:检查是否安装:[root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio备注:安装libpng时候需要zlib-devel安装mysql时候需要libaio如果没安装则yum安装:[root@centos6 ~]# yum -y install make gcc gcc-c++ zlib-devel libaio3、配置防火墙,开启80端口、3306端口编辑/etc/sysconfig/iptables文件,配置防火墙[root@centos6 ~]# vi /etc/sysconfig/iptables添加下面两句,开启相应端口:-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面如下所示:######################## 添加好之后防火墙规则如下所示######################### Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT######################## 添加好之后防火墙规则如上所示########################最后重启防火墙使配置生效[root@centos6 ~]# /etc/init.d/iptables restart4、关闭SELINUX编辑/etc/selinux/config文件[root@centos6 ~]# vi /etc/selinux/config详细修改如下所示:#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq #保存,关闭[root@centos6 ~]#shutdown -r now #重启系统三、开始搭建LAMP环境安装时的主要步骤:(1)解压tar.gz为后缀的压缩包软件LAMP环境搭建所需要的每个软件的源代码文件,都是以.tar.gz提供给我们的打包压缩文件,所以我们必须将其解压再解包。

Centos6安装oracle11g详细图文及错误解决

Centos6安装oracle11g详细图文及错误解决

1. 使用DVD做yum源1.1. 新建dvd挂载目录[root@oracle ~]# mkdir /media/iso1.2. 挂载dvd到指定目录[root@oracle ~]# mount /dev/cdrom /media/iso/ 1.3. 进入yum.repos.d文件夹,[root@oracle ~]# cd /etc/yum.repos.d/1.4. 删除原有的repo文件[root@oracle yum.repos.d]# rm -rf *1.5. 新建使用dvd为源的repo文件[root@oracle yum.repos.d]# vim iso.repo [Server]name=Serverbaseurl=file:///media/iso/Serverenabled=1gpgcheck=0[HighA vailability]name=HighA vailabilitybaseurl=file:///media/iso/HighA vailability enabled=1gpgcheck=0[LoadBalancer]name=LoadBalancerbaseurl=file:///media/iso/LoadBalancerenabled=1gpgcheck=0[LoadBalancer]name=LoadBalancerbaseurl=file:///media/iso/LoadBalancerenabled=1gpgcheck=01.6. 清空原有yum信息[root@oracle yum.repos.d]# yum clean all1.7. 更新yum[root@oracle yum.repos.d]# yum update2.1. 配置好yum源后,使用root用户安装软件包[root@oracle ~]# cd /media/iso/Packages/[root@oracle Packages]# yum install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.*glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*这些依赖包必须要安装,因为版本不同,在oracle 安装时会提示缺少依赖包,忽略后可以正常安装使用Oracle。

【推荐下载】CentOS6.5系统下 configure- error- cannot run C compiled programs.

【推荐下载】CentOS6.5系统下 configure- error- cannot run C compiled programs.

CentOS6.5 系统下configure: error: cannot run C compiled programs.2014/08/19 10 **************************** configure:error:cannotrunCcompiledprograms. Ifyoumeanttocrosscompile,use`--host’. See`config.log’formoredetails log 内容如下:#viconfig.log Thisfilecontainsanymessagesproducedbycompilerswhilerunningconfigure,toaiddebuggingifconfiguremakesamistake. Itwascreatedbyyasmconfigure1.2.0,whichwasgeneratedbyGNUAutoconf2.68.Invocationcommandlinewas $./configure ##---------## ##Platform.## ##---------## hostname=******* uname-m=x86_64 uname-r=3.14.17 uname-s=Linux uname-v=#1SMPMonAug1811:05:36CST2014 /usr/bin/uname- p=unknown /bin/uname-X=unknown /bin/arch=x86_64 /usr/bin/arch-k=unknown /usr/convex/getsysinfo=unknown /usr/bin/hostinfo=unknown /bin/machine=unknown /usr/bin/oslevel=unknown /bin/universe=unknown PATH:/usr/local/jre/bin PATH:/usr/lib64/qt-3.3/bin PATH:/usr/local/sbin PATH:/usr/local/bin PATH:/sbin PATH:/bin PATH:/usr/sbin “config.log”304L,8411C后来执行:#./configure-- host=x86_64 又这样报错:configure:error:Cpreprocessor”/lib/cpp”failssanitycheck补充一下,gcc,g++都已经安装了Packagegcc-4.4.7-4.el6.x86_64alreadyinstalledandlatestversion Packagegcc-c++-4.4.7- 4.el6.x86_64alreadyinstalledandlatestversion hello.c 确实通不过于是我又按照这个网站安装gccblog.sina/s/blog_627b3f930101hnz8.html 但是在安装的过程中出现:configure:error:couldnotfindaworkingcompiler,seeconfig.logfordetails 它又找不到基本的编译器,这样是不是形成死循环了?怎么解决?uhavesomeseriousproblemwithyourcentosinstallation.Irecommendyouremovingtheentiregc candre-installit.It’scentos,notsomeUNIXsystem,gccshouldworksmoothly... checkingwhetherwearecrosscompiling...configure:error:in`/home/itachi/mosha_share/pcre- 8.32’:configure:error:cannotrunCcompiledprograms. Ifyoumeanttocrosscompile,use`--。

CentOS 6.5安全加固及性能优化

CentOS 6.5安全加固及性能优化

CentOS 6.5安全加固及性能优化经常玩Linux系统的朋友多多少少也知道些系统参数优化和怎样增强系统安全性,系统默认的一些参数都是比较保守的,所以我们可以通过调整系统参数来提高系统内存、CP U、内核资源的占用,通过禁用不必要的服务、端口,来提高系统的安全性,更好的发挥系统的可用性。

通过自己对Linux了解,对系统调优做了如下小结:操作系统:CentOS 6.5_x64最小化安装1、主机名设置1.[root@localhost~]# vi /etc/sysconfig/network2.HOSTNAME=3.[root@localhost~]# hostname #临时生效2、关闭SELinux1.[root@localhost~]# vi /etc/selinux/config2.SELINUX=disabled3.[root@localhost~]# setenforce #临时生效4.[root@localhost~]# getenforce #查看selinux状态3、清空防火墙并设置规则1.[root@localhost~]# iptables -F #清楚防火墙规则2.[root@localhost~]# iptables -L #查看防火墙规则3.[root@localhost~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT4.[root@localhost~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT5.[root@localhost~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT6.[root@localhost~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT7.[root@localhost~]# iptables -A INPUT -p udp --dport 123 -j ACCEPT8.[root@localhost~]# iptables -A INPUT -p icmp -j ACCEPT9.[root@localhost~]# iptables -P INPUT DROP10.[root@localhost~]# /etc/init.d/iptables save#根据需求开启相应端口4、添加普通用户并进行sudo授权管理1.[root@localhost~]# useradd user2.[root@localhost~]# echo "123456" | passwd --stdin user #设置密码3.[root@localhost~]# vi /etc/sudoers #或visudo打开,添加user用户所有权限4.root ALL=(ALL) ALLer ALL=(ALL) ALL5、禁用root远程登录1.[root@localhost~]# vi /etc/ssh/sshd_config2.PermitRootLoginno3.PermitEmptyPasswords no #禁止空密码登录eDNSno #关闭DNS查询6、关闭不必要开机自启动服务7、删除不必要的系统用户8、关闭重启ctl-alt-delete组合键1.[root@localhost ~]# vi /etc/init/control-alt-delete.conf2.#exec /sbin/shutdown -r now "Control-Alt-Deletepressed" #注释掉9、调整文件描述符大小1.[root@localhost ~]# ulimit –n #默认是10242.10243.[root@localhost ~]# echo "ulimit -SHn 102400">> /etc/rc.local #设置开机自动生效10、去除系统相关信息1.[root@localhost ~]# echo "Welcome to Server" >/etc/issue2.[root@localhost ~]# echo "Welcome to Server" >/etc/redhat-release11、修改history记录1.[root@localhost ~]# vi /etc/profile #修改记录10个2.HISTSIZE=1012、同步系统时间1.[root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime#设置Shanghai时区2.[root@localhost ~]# ntpdate ;hwclock–w #同步时间并写入blos硬件时间3.[root@localhost ~]# crontab –e #设置任务计划每天零点同步一次4.0 * * * * /usr/sbin/ntpdate ; hwclock -w13、内核参数优化1.[root@localhost ~]# vi /etc/sysctl.conf #末尾添加如下参数.ipv4.tcp_syncookies = 1 #1是开启SYN Cookies,当出现SYN等待队列溢出时,启用Cookies来处,理,可防范少量SYN攻击,默认是0关闭.ipv4.tcp_tw_reuse = 1 #1是开启重用,允许讲TIME_AIT sockets重新用于新的TCP连接,默认是0关闭.ipv4.tcp_tw_recycle = 1 #TCP失败重传次数,默认是15,减少次数可释放内核资源.ipv4.ip_local_port_range = 4096 65000 #应用程序可使用的端口范围.ipv4.tcp_max_tw_buckets = 5000 #系统同时保持TIME_WAIT套接字的最大数量,如果超出这个数字,TIME_WATI套接字将立刻被清除并打印警告信息,默认180 000.ipv4.tcp_max_syn_backlog = 4096 #进入SYN宝的最大请求队列,默认是1024dev_max_backlog = 10240 #允许送到队列的数据包最大设备队列,默认300.core.somaxconn = 2048 #listen挂起请求的最大数量,默认128.core.wmem_default = 8388608 #发送缓存区大小的缺省值.core.rmem_default = 8388608 #接受套接字缓冲区大小的缺省值(以字节为单位).core.rmem_max = 16777216 #最大接收缓冲区大小的最大值.core.wmem_max = 16777216 #发送缓冲区大小的最大值.ipv4.tcp_synack_retries = 2 #SYN-ACK握手状态重试次数,默认5.ipv4.tcp_syn_retries = 2 #向外SYN握手重试次数,默认4.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME_WAIT sockets的快速回收,默认是0关闭.ipv4.tcp_max_orphans = 3276800 #系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上,如果超出这个数字,孤儿连接将立即复位并打印警告信息.ipv4.tcp_mem = 94500000 915000000 927000000.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力;.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段;.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket。

virtualBox安装centos6增强包报错解决及配置共享文件夹

virtualBox安装centos6增强包报错解决及配置共享文件夹

一、安装增强包1、启动CentOS6.5 虚拟机,点击设备 安装增强功能。

则“光盘”VBOXADDITIONS已经挂载到CentOS 5.5 的桌面上了.此时双击光盘—>双击VboxLinuxAdditions.run即可完成安装通常情况下我们直接运行挂载到系统中的VirtualBox 客户端增强功能的组件即可。

2、报错解决:笔者安装时出现报错Bulding the VirtualBox Guest Additions Kernel modules [failed]Your system does not seem to be set up to build kernel modules.Look at /var/log/vboxadd-install.log to find out what went worg. Once you have corrected it,you run/etc/init.d/vboxadd setup to build them显然内核不支持缺少编译内核的相关组件,解决方法安装内核组件即可。

[root@localhost ~]# yum install kernel kernel-develLoaded plugins: fastestmirror, refresh-packagekit, securityRepository c6-media is listed more than once in the configurationLoading mirror speeds from cached hostfile* base: * extras: * updates: .hkSetting up Install ProcessResolving Dependencies--> Running transaction check---> Package kernel.x86_64 0:2.6.32-642.1.1.el6 will be installed--> Processing Dependency: kernel-firmware >= 2.6.32-642.1.1.el6 for package: kernel-2.6.32-642.1.1.el6.x86_64--> Processing Dependency: dracut-kernel >= 004-388.el6 for package:kernel-2.6.32-642.1.1.el6.x86_64---> Package kernel-devel.x86_64 0:2.6.32-642.1.1.el6 will be installed--> Running transaction check---> Package dracut-kernel.noarch 0:004-335.el6 will be updated---> Package dracut-kernel.noarch 0:004-409.el6_8.2 will be an update--> Processing Dependency: dracut = 004-409.el6_8.2 for package:dracut-kernel-004-409.el6_8.2.noarch---> Package kernel-firmware.noarch 0:2.6.32-431.el6 will be updated---> Package kernel-firmware.noarch 0:2.6.32-642.1.1.el6 will be an update--> Running transaction check---> Package dracut.noarch 0:004-335.el6 will be updated---> Package dracut.noarch 0:004-409.el6_8.2 will be an update--> Finished Dependency ResolutionDependencies Resolved===================================================================== =================================================================== Package Arch Version Repository Size===================================================================== =================================================================== Installing:kernel x86_642.6.32-642.1.1.el6 updates 32 Mkernel-devel x86_642.6.32-642.1.1.el6 updates 11 MUpdating for dependencies:dracut noarch004-409.el6_8.2 updates 127 kdracut-kernel noarch004-409.el6_8.2 updates 28 kkernel-firmware noarch2.6.32-642.1.1.el6 updates 28 MTransaction Summary===================================================================== =================================================================== Install 2 Package(s)Upgrade 3 Package(s)Total download size: 71 MIs this ok [y/N]: yDownloading Packages:(1/5): dracut-004-409.el6_8.2.noarch.rpm| 127 kB 00:01(2/5): dracut-kernel-004-409.el6_8.2.noarch.rpm| 28 kB 00:00(3/5): kernel-2.6.32-642.1.1.el6.x86_64.rpm| 32 MB 05:21(4/5): kernel-devel-2.6.32-642.1.1.el6.x86_64.rpm| 11 MB 01:46(5/5): kernel-firmware-2.6.32-642.1.1.el6.noarch.rpm| 28 MB 04:51----------------------------------------------------------------------------------------------------------------------------------------Total100 kB/s | 71 MB 12:02Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning TransactionUpdating : dracut-004-409.el6_8.2.noarch1/8Updating : dracut-kernel-004-409.el6_8.2.noarch2/8Updating : kernel-firmware-2.6.32-642.1.1.el6.noarch 3/8Installing : kernel-2.6.32-642.1.1.el6.x86_644/8Installing : kernel-devel-2.6.32-642.1.1.el6.x86_645/8Cleanup : dracut-kernel-004-335.el6.noarch6/8Cleanup : dracut-004-335.el6.noarch7/8Cleanup : kernel-firmware-2.6.32-431.el6.noarch8/8Verifying : kernel-firmware-2.6.32-642.1.1.el6.noarch 1/8Verifying : dracut-004-409.el6_8.2.noarch2/8Verifying : dracut-kernel-004-409.el6_8.2.noarch3/8Verifying : kernel-2.6.32-642.1.1.el6.x86_644/8Verifying : kernel-devel-2.6.32-642.1.1.el6.x86_645/8Verifying : kernel-firmware-2.6.32-431.el6.noarch6/8Verifying : dracut-kernel-004-335.el6.noarch7/8Verifying : dracut-004-335.el6.noarch8/8Installed:kernel.x86_64 0:2.6.32-642.1.1.el6kernel-devel.x86_64 0:2.6.32-642.1.1.el6Dependency Updated:dracut.noarch 0:004-409.el6_8.2 dracut-kernel.noarch 0:004-409.el6_8.2 kernel-firmware.noarch 0:2.6.32-642.1.1.el6Complete![root@localhost ~]# yum install gccLoaded plugins: fastestmirror, refresh-packagekit, securityRepository c6-media is listed more than once in the configurationLoading mirror speeds from cached hostfile* base: * extras: * updates: .hkSetting up Install ProcessNo package gcc++ available.Resolving Dependencies--> Running transaction check---> Package gcc.x86_64 0:4.4.7-17.el6 will be installed--> Processing Dependency: libgomp = 4.4.7-17.el6 for package:gcc-4.4.7-17.el6.x86_64--> Processing Dependency: cpp = 4.4.7-17.el6 for package: gcc-4.4.7-17.el6.x86_64 --> Processing Dependency: libgcc >= 4.4.7-17.el6 for package:gcc-4.4.7-17.el6.x86_64--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-17.el6.x86_64 --> Running transaction check---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed--> Processing Dependency: libppl_c.so.2()(64bit) for package:cloog-ppl-0.15.7-1.2.el6.x86_64--> Processing Dependency: libppl.so.7()(64bit) for package:cloog-ppl-0.15.7-1.2.el6.x86_64---> Package cpp.x86_64 0:4.4.7-17.el6 will be installed--> Processing Dependency: libmpfr.so.1()(64bit) for package:cpp-4.4.7-17.el6.x86_64---> Package libgcc.x86_64 0:4.4.7-4.el6 will be updated---> Package libgcc.x86_64 0:4.4.7-17.el6 will be an update---> Package libgomp.x86_64 0:4.4.7-4.el6 will be updated---> Package libgomp.x86_64 0:4.4.7-17.el6 will be an update--> Running transaction check---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed--> Finished Dependency ResolutionDependencies Resolved===================================================================== =================================================================== Package ArchVersion Repository Size ===================================================================== =================================================================== Installing:gcc x86_644.4.7-17.el6 base 10 M Installing for dependencies:cloog-ppl x86_640.15.7-1.2.el6 base 93 k cpp x86_644.4.7-17.el6 base 3.7 M mpfr x86_642.4.1-6.el6 base 157 k ppl x86_640.10.2-11.el6 base 1.3 M Updating for dependencies:libgcc x86_644.4.7-17.el6 base 103 k libgomp x86_644.4.7-17.el6 base 134 kTransaction Summary===================================================================== =================================================================== Install 5 Package(s)Upgrade 2 Package(s)Total download size: 16 MIs this ok [y/N]: yDownloading Packages:(1/7): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm| 93 kB 00:00(2/7): cpp-4.4.7-17.el6.x86_64.rpm| 3.7 MB 00:32(3/7): gcc-4.4.7-17.el6.x86_64.rpm| 10 MB 01:30(4/7): libgcc-4.4.7-17.el6.x86_64.rpm| 103 kB 00:00(5/7): libgomp-4.4.7-17.el6.x86_64.rpm| 134 kB 00:00(6/7): mpfr-2.4.1-6.el6.x86_64.rpm| 157 kB 00:01(7/7): ppl-0.10.2-11.el6.x86_64.rpm| 1.3 MB 00:11----------------------------------------------------------------------------------------------------------------------------------------Total114 kB/s | 16 MB 02:19Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning TransactionUpdating : libgcc-4.4.7-17.el6.x86_641/9Installing : ppl-0.10.2-11.el6.x86_642/9Installing : cloog-ppl-0.15.7-1.2.el6.x86_643/9Updating : libgomp-4.4.7-17.el6.x86_644/9Installing : mpfr-2.4.1-6.el6.x86_645/9Installing : cpp-4.4.7-17.el6.x86_646/9Installing : gcc-4.4.7-17.el6.x86_647/9Cleanup : libgomp-4.4.7-4.el6.x86_648/9Cleanup : libgcc-4.4.7-4.el6.x86_649/9Verifying : libgcc-4.4.7-17.el6.x86_641/9Verifying : ppl-0.10.2-11.el6.x86_642/9Verifying : mpfr-2.4.1-6.el6.x86_643/9Verifying : gcc-4.4.7-17.el6.x86_644/9Verifying : libgomp-4.4.7-17.el6.x86_645/9Verifying : cpp-4.4.7-17.el6.x86_646/9Verifying : cloog-ppl-0.15.7-1.2.el6.x86_647/9Verifying : libgomp-4.4.7-4.el6.x86_648/9Verifying : libgcc-4.4.7-4.el6.x86_649/9Installed:gcc.x86_64 0:4.4.7-17.el6Dependency Installed:cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-17.el6 mpfr.x86_64 0:2.4.1-6.el6 ppl.x86_64 0:0.10.2-11.el6Dependency Updated:libgcc.x86_64 0:4.4.7-17.el6libgomp.x86_64 0:4.4.7-17.el6Complete![root@localhost ~]# yum install -y gcc gcc-c++ make kernel-develLoaded plugins: fastestmirror, refresh-packagekit, securityRepository c6-media is listed more than once in the configurationLoading mirror speeds from cached hostfile* base: * extras: * updates: .hkSetting up Install ProcessPackage gcc-4.4.7-17.el6.x86_64 already installed and latest versionPackage 1:make-3.81-23.el6.x86_64 already installed and latest versionPackage kernel-devel-2.6.32-642.1.1.el6.x86_64 already installed and latest version Resolving Dependencies--> Running transaction check---> Package gcc-c++.x86_64 0:4.4.7-17.el6 will be installed--> Processing Dependency: libstdc++-devel = 4.4.7-17.el6 for package:gcc-c++-4.4.7-17.el6.x86_64--> Processing Dependency: libstdc++ = 4.4.7-17.el6 for package:gcc-c++-4.4.7-17.el6.x86_64--> Running transaction check---> Package libstdc++.x86_64 0:4.4.7-4.el6 will be updated---> Package libstdc++.x86_64 0:4.4.7-17.el6 will be an update---> Package libstdc++-devel.x86_64 0:4.4.7-17.el6 will be installed--> Finished Dependency ResolutionDependencies Resolved===================================================================== =================================================================== Package ArchVersion Repository Size===================================================================== =================================================================== Installing:gcc-c++ x86_644.4.7-17.el6 base 4.7 M Installing for dependencies:libstdc++-devel x86_644.4.7-17.el6 base 1.6 M Updating for dependencies:libstdc++ x86_644.4.7-17.el6 base 295 kTransaction Summary===================================================================== =================================================================== Install 2 Package(s)Upgrade 1 Package(s)Total download size: 6.6 MDownloading Packages:(1/3): gcc-c++-4.4.7-17.el6.x86_64.rpm| 4.7 MB 01:10(2/3): libstdc++-4.4.7-17.el6.x86_64.rpm| 295 kB 00:03(3/3): libstdc++-devel-4.4.7-17.el6.x86_64.rpm| 1.6 MB 00:26----------------------------------------------------------------------------------------------------------------------------------------Total67 kB/s | 6.6 MB 01:41Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning TransactionUpdating : libstdc++-4.4.7-17.el6.x86_641/4Installing : libstdc++-devel-4.4.7-17.el6.x86_642/4Installing : gcc-c++-4.4.7-17.el6.x86_643/4Cleanup : libstdc++-4.4.7-4.el6.x86_644/4Verifying : gcc-c++-4.4.7-17.el6.x86_641/4Verifying : libstdc++-4.4.7-17.el6.x86_642/4Verifying : libstdc++-devel-4.4.7-17.el6.x86_643/4Verifying : libstdc++-4.4.7-4.el6.x86_644/4Installed:gcc-c++.x86_64 0:4.4.7-17.el6Dependency Installed:libstdc++-devel.x86_64 0:4.4.7-17.el6Dependency Updated:libstdc++.x86_64 0:4.4.7-17.el6Complete![root@localhost ~]# shutdown -r now安装好相关内核组件,重启centos6.5并再次安装增强包即可顺利安装。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CentOS6.5 下编绎gSoap 相关问题及解决,开发环境准备:1,centos 为虚拟下安装,版本为32 位,(64 位同样可以,均测过,需注意的是红色部分内容)2,gSoap:gsoap_2.7tar.gz/~engelen/s oap.html载下来解压缩,按正常安装过程进行编译、安装。

# tar zxvf gsozp_2.7.12.tar.gz # cd gsoap_2.7.12 #./configure 或{./configure -p refix=/usr/local/gSOA P (指定安装路径) }# make # makeinstall问题: ../../ylwrap: line 111: yacc: command not found原因:没有安装:yacc(Yet Another Compiler Compiler)是Unix/Linux 上一个用来生成编译器的编译器 (编译器代码生成器)。

解决方案:sudo apt-get install flexbison(ubantu)yum install byacc(centos) 问题:gsoap-2.7/missing: line 46: flex: command not found决方法: yum install flex( 要重新运行./configure)(centos)apt-get install flex(ubantu) 问题:/usr/bin/ld: cannot find -ly 解决方法:yum install bison-devel(centos)apt-get install bison(ubantu) 问题:../../gsoap/stdsoap2.h:690:19: error: zlib.h: Nosuch file or directory 解决方法:缺少zlib,ubantu 下,apt-get installzlib-develcentos 下, yum installzlib-devel;问题:error: openssl/bio.h: No such file or directory解决方法:yum install openssl-devel(centos)ubantu 下:sudo apt-get install openssl 为了安装OpenSSL通常的库文件,首先使用以下命令来确定在Ubuntu 系统中可获得的库文件的应用版本:sudo apt-cache search libssl |grep SSL sudo apt-get installlibssl-dev至此基本可以了,面执行, make;makeinstall;+| You nowhave successfully built and installed gsoap. | ||| You can link your programs with -lgsoap++ for|| C++ projects created with soapcpp2 and you can link|| with -lgsoap for C projects generated with soapcpp2 -c |||| There are also corresponding libraries for SSL and|| zlib compression support (-lgsoapssl andlgsoapssl++)|| which require linking -lssl -lcrypto -lz | ||| Thanks for using gsoap.|| | | /projects/ gsoap2|+ + 出现此即安装成功;, 开发linux 下Web Service C/C++ 客户端这里,我们直接采用gSoap 工具包自带的wsdl2h 和soapcpp2 工具。

1.基本流程从Web 服务提供者处获取Web Service 的WSDL 文件,通常是一个URL ,如:/~engeien/caic.wsdi 当然也可以是个WSDL 形式的XML 文件。

2.使用gSoap 工具wsdl2h ,根据WSDL 生成一个C/C++ 语法结构的头文件。

如:wsdi2h -s -o calc.h /~engelen/calc.wsdl步将会得到一个头文件,如:caic.h 该步的目的:实现WSDL文件到.h 文件的数据映射。

3.使用gSoap 的预编译器soapcpp2 ,根据上一步得到的头文件来生成存根文件(soapStub.h )和客户端代码框架。

女口:soapcpp2 -i -x -C -L caic.h这一步将会得到几个.nsmap、.h和.cpp文件,如: calc.nsmap 、soapC.cpp 、soapH.h 、soapStub.h 、soapcaicProxy.cpp 、soapcaicProxy.h 该步的目的:生成相应的底层通信代码。

4.实现客户端例程在这一步可以简单地编写一个main 函数,如:(注意包含的头文件) #inciude "caic.nsmap"#inciude "soapcaicProxy.h"//该头文件已经包含了soapH.hint main(void){printf("verygood!/n");caicProxy service;{doubieresuit;if(service.pow(2, 10, resuit) ==SOAP_OK){std::cout &it;&it; "The vaiue of2八10 is "&It;&lt; result &It;&It; std::endl;}}retum 0;}5 .用gcc编译客户端,生成可执行代码编译需要的文件有:第3步生成的所有文件、第4 步编写的main 函数所在的文件,以及gsoap 目录下的stdsoap2.h 和stdsoap2.cpp 文件共9个文件。

如如: calc.nsmap、soapC.cpp、soapH.h、soapStub.h、soapcalcProxy.cpp 、soapcalcProxy.h 、stdsoap2.cpp 、stdsoap2.h 、main.cpp 。

三、注意事项注1 : wsdl2h 的用法(WSDL/schema 解析和代码生成器)wsdl2h [opt] 头文件名WSDL 文件名或URL wsdl2h 常用选项-o 文件名,指定输出头文件-n 名空间前缀代替默认的ns -c 产生纯C代码,否则是C++ 代码-s 不要使用STL 代码-t 文件名,指定type map 文件,默认为typemap.dat -e 禁止为enum成员加上名空间前缀type map 文件用于指定SOAP/XML中的类型与C/C++ 之间的转换规则,比如在wsmap.dat 里写。

在本例中,使用的是: wsdl2h -s -o calc.h/~engelen/calc.wsdl 参数s 就表示生成不带STL 的C/C++ 语法结构的头文件calc.h 。

如果不用s就会生成带STL 的头文件,这样,在后边的编译中需要加入STL 的头stlvector.h ,位于: gsoap/import/ 目录下。

注2 :soapcpp2 的用法(编译和代码生成器)soapcpp2 [opt] 头文件名soapcpp2 常用选项-C 仅生成客户端代码-S 仅生成服务器端代码-L 不要产生soapClientLib.c 和soapStub.h 该文件就是直接由 wsdl2 生成的头文件转化而来,它详细定义了 WSDL 所描述的各项服务和数据结构。

它 是 soap 的存根文件,定义了由 wsdl2 生成的头文件里对应 的远程调用模型(RPC )o c.soapPlayerBeanPortBindingProxy. 和soapPlayerBeanPortBindingProxy.cpp 这两个文件是客户soapServerLib.c 文件 -c 产生纯 C 代码,否则是 C++ 代码(与头文件有关 ) -I 指定 import 路径(见上文) -x 不要产生XML 示例文件-i 生成C++封装(代理),客户端为xxxxProxy.h(.cpp) ,服务器端为 xxxxService.h(.cpp) 。

本例 中,使用的是: soapcpp2 -i -x -C -L calc.h 注 3 : gSoap 工具 wsdl2 和 soapcpp 所生成文件的简单分析( 1) wsdl2 生成的具有 C/C++ 语法结构的头文件, 其作用就是: 将 XML 语法结构的 WSDL 文件映射为 C/C++ 语法结构的 .h 文件; 并为下一步做准备。

( 2) soapcpp (采用参数: -i -x -C -L 生成的文件共有6个文件:PlayerBeanPortBinding.nsmap soapC.cpp 、soapH.h 、soapPlayerBeanPortBindingProxy.cppsoapPlayerBeanPortBindingProxy.h 、soapStub.h o a. PlayerBeanPortBinding.nsmap 文件该文件的作用: An XML-to-C/C++ namespace mapping table,即 WSDL 文件 与生成的客户端代码框架的一个名字空间的映射表。

b.端代码的一个简单封装,它封装了底层通信,并向外提供个很简单的界面,该界面展示了用户能够使用的所有服务(由WSDL 所描述)。

d. soapH.h 和soapC.cpp 这个两个文件是soap 的序列和反序列化代码,注4 :设置字符编码在利用gSoap 编写Web Service 客户端和服务器端的程序时,需要设置其编码方式。

接口为:soap_set_mode ,其实它是就是一个宏:#definesoap_set_mode(soap, n) ((soap)-&gt;imode |= (n), (soap)-&gt;omode |= (n)) 如果要设置为UTF8 可以这样调用:soap_set_mode(&amp;soap, SOAP_C_UTFSTRING); 详细信息可参考该宏所在文件:stdsoap2.h。

相关文档
最新文档