• 关于

    Q3协议怎么用

    的搜索结果

回答

###l 用C语言实现了很多种常见的加密算法: 三个组件: 1、libcrypto 库文件 专门实现加密解密的库文件, 2、libssl 库文件,主要是实现https这样协议 3、openssl 多用途加密工具,还可以制作一个CA出来 一般来讲openssl都会装上,使用一个openssl加一个错误的选项就能看见它的使用 选项 单项加密时的用法: openssl enc -des3 -salt -a -in inittab -out inittab.des3 实现对于一个文件加密 enc是加密 -des3是加密算法 -salt 加入杂质 -in后面跟文件名 -out加密后放在哪个文件里 openssl enc -d -des3 -salt -a -in inittab.des3 -out inittab -d表示解密 openssl dgst -sha inittab 表示计算inittab文件的特征值 用户认证时passwd的用法,怎么去帮你生成一个类似于保存在/etc/shadow文件里的密码一样 openssl passwd -1 -1表示使用MD5算法 [root@server46 ~]# openssl passwd -1 Password: Verifying - Password: $1$7HW0kv8y$IntkyNppqtTQ2fHAJ1FMk1 openssl passwd -1 -salt 杂质 这样计算结果就一样了 [root@server46 ~]# openssl passwd -1 Password: Verifying - Password: $1$7HW0kv8y$IntkyNppqtTQ2fHAJ1FMk1 [root@server46 ~]# openssl passwd -1 -salt 7HW0kv8y Password: $1$7HW0kv8y$IntkyNppqtTQ2fHAJ1FMk1 man sslpasswd可以查看用法 非对称加密: openssl怎样发证: 切换目录到/etc/pki/tls/certs make *.key就可以产生一个密钥 make *.cert可以生成一个证书,主要是看文件后缀生成文件,是redhat提供的便捷方式 make my.key就可以生成一个密钥 (umask 66;openssl genrsa 1024 > my.key) 生成私钥文件 这是在一个子shell里进行,umask只对后面的这一个命令有效,umask执行完以后就恢复到原来 提取公钥: openssl rsa -in my.key -pubout -out myr.pubkey [root@server46 certs]# (umask 66; openssl genrsa 1024 > my.key) Generating RSA private key, 1024 bit long modulus ...++++++ ........++++++ e is 65537 (0x10001) [root@server46 certs]# cat my.key -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDRSlvZZ7p7sRbczdGhcw/8z5mzEKIjDZw63ffsxCDC9XWKO0vE FaxbPrgwZYF+iu8QHUKVzuJoqO8MmfY7p9aGz2WT2GQ/wUTnjsbL8mNbSclV/2m8 K0XZqSLsKzuhaBOFC+sylQvnZiXP23slNWZIuV0EVh9k2ULSV4f8B5QtywIDAQAB AoGATNkA4NM1pjVgL7NjReT5+dpAlX+GCVj2BKd8YXOik/ONNTSQnW9X2ikteJfM 9KoPHdugl2FfwQ5GuFnQEBeQrUV5SnR09k2OZTsdOMVNXqamf4V/rXidOs+L3RVK Q4X6vpasS1CJ1/q/fCcsi1Nl0nLcV9stLXbmEzYqE6+hwAECQQDqxrbF5W9j5vVM ZkKmvx1ViojwTJovlkOtl6RSkqHMR3msnHhizbc+iGrGiP/vH9H+AvDK7AJPNVng kHAa5YGbAkEA5DXX0dIajPoAdLvmNG1kNY1fp6IJjfR8UJRWeOwjhVjul1yp47hP bM/f55OmowdsQamfNVwk4P5iYIcZ8uwfkQJBAJoXToLYsaF6Rumb/IcAzLoGMRa2 0EQHdegLrVhc0UEIcH2wPPtsVab/VkV0SbaixerX9z7YZDOkqpbPdiTRGZ0CQBWv 2DakVMmY6HovcQ0CaEd+i9yOVYIb/cRalG0hY67EaMgRkkOFvGaGyqxjJ67Ogccr q2mSvB51jjvGGv0u20ECQQCHvgJkF3xHkQnahqCTTgym0CNocHhVfyo6KveIfBAk Vz69+zsGK2kKBOseSbgRKqVmM21Iqu0aZatjEevHwZIo -----END RSA PRIVATE KEY----- [root@server46 certs]# openssl rsa -in my.key -pubout -out my.pubkey writing RSA key [root@server46 certs]# cat my.pubkey -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRSlvZZ7p7sRbczdGhcw/8z5mz EKIjDZw63ffsxCDC9XWKO0vEFaxbPrgwZYF+iu8QHUKVzuJoqO8MmfY7p9aGz2WT 2GQ/wUTnjsbL8mNbSclV/2m8K0XZqSLsKzuhaBOFC+sylQvnZiXP23slNWZIuV0E Vh9k2ULSV4f8B5QtywIDAQAB -----END PUBLIC KEY----- 发证步骤: 1、首先生成一对密钥(S/P密钥) 2、然后把公钥放在一个叫证书颁发请求里(里面包括你的公钥,姓名,地址,等一些列描述信息) 发送到证书颁发机构 3、CRT证书就生成了 自己成为CA: 1、cd /etc/pki/CA 有一个 private 文件,里面专门放CA的私钥文件 2、给自己生成一个密钥 (umask 66; openssl genrsa 2048 > private/cakey.pem[这里只能叫cakey.pem]) ll private 给自己发证书: openssl req -new -x509 -key private/cake.pem -out cacert.pem openssl req -new -x509 -key private/cake.pem -out cacert.pem 接下来会提示你输入一些信息 写完之后就是一个自签的证书 接下来就可以给别人发证了 view plaincopy to clipboardprint? openssl req -new -x509 -key private/cake.pem -out cacert.pem -days3655 openssl req -new -x509 -key private/cake.pem -out cacert.pem -days3655 3、编辑cA的配置文件 view plaincopy to clipboardprint? vim /etc/pki/tls/openssl.cnf这里定义了 vim /etc/pki/tls/openssl.cnf这里定义了 找到【 CA_default 】字段 修改 dir 改为绝对路径 这里有些目录没有需要我们手动建立,在这个配置文件内我们都能找到 然后还可以修改默认信息 到这里才 算是一个完整的CA 4、接下来给web服务器做一个证书: view plaincopy to clipboardprint? cd /etc/httpd mkdir ssl cd ssl (umask 66;openssl genrsa 2048 > web.key) cd /etc/pki/CA mkdir certs crl newcerts touch index.txt serial echo 01 > serial openssl req -new -key wed.key -out wed.csr 这是一个证书颁发请求 opssl ca -in wed.csr -out web.crt 颁发证书 cd /etc/httpd mkdir ssl cd ssl (umask 66;openssl genrsa 2048 > web.key) cd /etc/pki/CA mkdir certs crl newcerts touch index.txt serial echo 01 > serial openssl req -new -key wed.key -out wed.csr 这是一个证书颁发请求 opssl ca -in wed.csr -out web.crt 颁发证书 然后敲两次回车 就ok了
小哇 2019-12-02 01:26:47 0 浏览量 回答数 0

问题

EMR 常见问题?

Q:作业和执行计划的区别 A:在Aliyun E-MapReduce中,要运行作业,需要有分成两个步骤,分别是: 创建作业 在E-MapReduce产品...
nicenelly 2019-12-01 21:19:58 2355 浏览量 回答数 0

回答

Fiddler只是抓运行在第七层的http包的啊。。。你代码里跑的curl并不在这一层,你是抓不到的,你只能用wireshark这样的工具来抓######回复 @plugin : 你理解错了。######不对啊。curl.php 的程序curl请求,他也是一个http请求,并且是在本地的服务器里 跑的呀。######         打个比方,fiddler是个摄像头,HTTP协议就是一道菜(准确地说,是HTTP协议的输入输出。你不关注这道菜里面有什么氨基酸和维生素,你只是食客,负责吃这道菜的),浏览器是一个厨房,从厨房到餐厅之间有一条路,fiddler就安装在这条路上,这条路就是代理,厨房的所有进和出都在fiddler的监视中。谁进了厨房,端出了什么菜,fiddler都能看到。 你为什么要监控?因为你怕服务员在端菜的时候在你菜里吐痰,或者你就是想知道这个餐馆都正在做哪些菜。其实你自己有眼睛也能看的,但你看不过来这么多,才需要这个摄像头。摄像头必须安装在这条路或过道上,才能看到菜的样子,安装在桌子底下是没用的。还有些地方是不让安装摄像头的,比如女厕所,并且女厕所也不是食客关注的地方。这个摄像头也不是安装在厨房的,你对做菜的细节不关注,你关注的只是输入输出。   厨房里有个厨师,厨师是做菜的,这个厨师就是web服务器,你可能认识这个厨师(本地服务器),也可能不认识。甚至厨师屁股上有颗痣你都知道,甚至这个厨师就是你儿子(你自己写的代码),你也知道这个厨师做菜很难吃(你代码太烂),但这些都和菜无关。你叫了个红烧耗子肉,这个红烧耗子肉就是你的curl.php里面用 curl请求干的事,但这个厨师不会做这个菜,于是呢,这个厨师从厨房的侧门出去,跑到隔壁饭店,找隔壁厨师赵日狗做了个红烧耗子肉,菜再让人端出来给你(赵日狗就是你curl.php里请求的第三方),这些你统统不知道。这个饭馆又不是只有一条路一道门,你fiddler监控的只是菜。这个厨师就是你的web服务器,厨师干啥了fiddler是看不到的,fiddler只是监控菜的,至于菜从怎么做的,它管不着,你也管不着。你只是看菜和吃菜的食客。 ######回复 @plugin : 它能监听的也只是手机浏览器和基于webview的数据而已,手机上的代理设置和你PC上的代理设置是一个意思的。所谓webview就是APP里有基于网页的数据展示,比如OSC的安卓APP就是基于webview来展示的,实际调用的手机内置的浏览器。######再问一下,我有个同事都是给手机设置个代理,就可以用fidder监听请求了。这是什么原理######3Q.太感谢了######回复 @plugin : wireshark监听通过网卡的所有流量,并且它的位置更底层######感谢。通俗易懂。为什么wireshark就可以呢。他的工作原理和fidder区别在哪######拜楼上###### 关键就是:这个请求是从你服务器的核心里发出去的,并不是通过你本地浏览器发出去的,你的fildder抓的只是从浏览器里发出去的请求,所以抓取不到,这样说明白了吗 ######回复 @plugin : 对啊,你手机走的是代理,代理是什么意思,是把你手机的请求转到你电脑上去请求,电脑上请求完毕后再把结果返回给手机,其本质还是利用你的电脑发起的http请求(模拟浏览器行为),我就是这样抓手机app包的######我一个同事经常用手机设置一个代理,fidder就可以监听手机发出去的http请求。这又为什么可以###### 以及,你需要把软件的名字输入对fiddler. ###### $ch = curl_init (); $options [CURLOPT_PROXY] = '127.0.0.1:8888'; curl_setopt_array ( $ch, $options );###### 引用来自“jp029”的评论 $ch = curl_init (); $options [CURLOPT_PROXY] = '127.0.0.1:8888'; curl_setopt_array ( $ch, $options ); 给CURL设置代理才是真理
爱吃鱼的程序员 2020-06-03 20:43:03 0 浏览量 回答数 0

问题

【企业IT管理员必读】WanaCrypt0r 2.0和ONION等勒索软件病毒应急处置方案

近期爆出WanaCrypt0r 2.0、onion以及wallet等后缀的勒索加密事件,影响较大,对于企业的IT管理员和信息安全管理员,阿里云安全专家推荐您按照以下举措进行应急响应和处理࿱...
正禾 2019-12-01 21:59:41 8997 浏览量 回答数 4

问题

智能语音交互常见问题是什么?

阿里云智能语音服务常见问题 服务开通问题SDK调用问题音频格式问题服务使用问题 1. 服务开通问题 访问阿里云官网—>数加—> 智能语音交互。点击获取使用资格,注册信息。等待审核。审核通过后会收到邮件和...
nicenelly 2019-12-01 21:03:54 1205 浏览量 回答数 0

问题

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

各位亲爱的云友,               非常感谢大家踊跃参加DBA专家门诊一期:索引与sql优化,很多云友都提出了自己的问题,门诊主任医师玄惭对大家提的问题一一作了解答。现已整...
xiaofanqie 2019-12-01 21:24:21 74007 浏览量 回答数 38

回答

I am sorry,忘了贴这个方法了。 /***************************************************************************** * 获得段落中字符串的值 * @param obj 某个段落 * @return String 段落中文字 *****************************************************************************/ public static String getParagraphStrValue(Object obj){ if(obj == null){return null;} StringBuffer sb = new StringBuffer(256); if (obj instanceof ContentAccessor){ List<Object> texts = getAllElementFromObject(obj, Text.class); for (Object child : texts) { sb.append(((Text)child).getValue()); } }else if(obj instanceof JAXBElement){ sb.append(((Text)obj).getValue()); } return sb.toString(); } ######回复 @anyine : 不客气,恰好我做过这方面的工作,拿出来分享。######ok ,我先试试,太感谢了!######你的word是2003格式还是2007格式? 对于2007格式的word,遵循Ecma Office Open XML协议规范, 我现在用的是docx4j, 我在word模版中放的是如下json串,通过解析json串来替换 {"cat":"img","alias":"img1"} 如下是我替换将word中文字替换成图片的方法: /***************************************************************************** * 替换图表 * @param obj 需要替换的paragraph * @param imgPath 图片路径 * @param wordMLPackage wordMLPackage *****************************************************************************/ public static void replaceChart(Object obj,String imgPath,WordprocessingMLPackage wordMLPackage){ if(obj == null || imgPath == null){return;} List<Object> texts = getAllElementFromObject(obj, Text.class); for (Object t : texts) { Text content = (Text) t; content.setValue(""); } File file = new File(imgPath); InputStream is = null; try { is = new FileInputStream(file ); long length = file.length(); if (length > Integer.MAX_VALUE) { return; } byte[] bytes = new byte[(int)length]; int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) { offset += numRead; } if (offset < bytes.length) { return; } String filenameHint = null; String altText = null; int id1 = 0; int id2 = 1; newImage(wordMLPackage, (P)obj, bytes, filenameHint, altText, id1, id2); } catch (Exception e) { //e.printStackTrace(); }finally{ if(is != null){ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } //添加图片     private static  void newImage( WordprocessingMLPackage wordMLPackage,P p,byte[] bytes,String filenameHint, String altText,             int id1, int id2) throws Exception {         BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);         Inline inline = imagePart.createImageInline( filenameHint, altText,id1, id2, false);         // Now add the inline in w:p/w:r/w:drawing         ObjectFactory factory = Context.getWmlObjectFactory();         R run = factory.createR();             p.getContent().add(run);         PPr ppr = factory.createPPr();         Jc jc = factory.createJc();         Ind ind = factory.createPPrBaseInd();         ind.setFirstLine(new BigInteger("0"));         ind.setFirstLineChars(new BigInteger("0"));         jc.setVal(JcEnumeration.LEFT);         ppr.setJc(jc);         ppr.setInd(ind);         p.setPPr(ppr);         Drawing drawing = factory.createDrawing();             run.getContent().add(drawing);             drawing.getAnchorOrInline().add(inline);     } ######回复 @bigtiger02 : 恩,这是个麻烦事儿,用你说的第一种办法可行吗?######回复 @anyine : jacob是一个java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32程序库,只能在windows环境下使用######回复 @bigtiger02 : 我的web运行在linux下 jacob还有效吗######回复 @bigtiger02 : 3Q 我先看看...######回复 @anyine : 2003的话,我以前用的是jacob来进行替换,但是觉得并不是那么好用,给个jacob例子: http://blog.csdn.net/lulongzhou_llz/article/details/6701918###### 引用来自“bigtiger02”的答案 你的word是2003格式还是2007格式? 对于2007格式的word,遵循Ecma Office Open XML协议规范, 我现在用的是docx4j, 我在word模版中放的是如下json串,通过解析json串来替换 {"cat":"img","alias":"img1"} 如下是我替换将word中文字替换成图片的方法: /***************************************************************************** * 替换图表 * @param obj 需要替换的paragraph * @param imgPath 图片路径 * @param wordMLPackage wordMLPackage *****************************************************************************/ public static void replaceChart(Object obj,String imgPath,WordprocessingMLPackage wordMLPackage){ if(obj == null || imgPath == null){return;} List<Object> texts = getAllElementFromObject(obj, Text.class); for (Object t : texts) { Text content = (Text) t; content.setValue(""); } File file = new File(imgPath); InputStream is = null; try { is = new FileInputStream(file ); long length = file.length(); if (length > Integer.MAX_VALUE) { return; } byte[] bytes = new byte[(int)length]; int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) { offset += numRead; } if (offset < bytes.length) { return; } String filenameHint = null; String altText = null; int id1 = 0; int id2 = 1; newImage(wordMLPackage, (P)obj, bytes, filenameHint, altText, id1, id2); } catch (Exception e) { //e.printStackTrace(); }finally{ if(is != null){ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } //添加图片     private static  void newImage( WordprocessingMLPackage wordMLPackage,P p,byte[] bytes,String filenameHint, String altText,             int id1, int id2) throws Exception {         BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);         Inline inline = imagePart.createImageInline( filenameHint, altText,id1, id2, false);         // Now add the inline in w:p/w:r/w:drawing         ObjectFactory factory = Context.getWmlObjectFactory();         R run = factory.createR();             p.getContent().add(run);         PPr ppr = factory.createPPr();         Jc jc = factory.createJc();         Ind ind = factory.createPPrBaseInd();         ind.setFirstLine(new BigInteger("0"));         ind.setFirstLineChars(new BigInteger("0"));         jc.setVal(JcEnumeration.LEFT);         ppr.setJc(jc);         ppr.setInd(ind);         p.setPPr(ppr);         Drawing drawing = factory.createDrawing();             run.getContent().add(drawing);             drawing.getAnchorOrInline().add(inline);     } 回复 @bigtiger02 : 我现在能读取,能写入了。但是不知道用哪个方法指定写入的位置或者替换。 private static void addImageToPackage(WordprocessingMLPackage wordMLPackage,                             byte[] bytes) throws Exception {         BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);         int docPrId = 1;         int cNvPrId = 2;         Inline inline = imagePart.createImageInline("Filename hint","Alternative text", docPrId, cNvPrId, false);         P paragraph = addInlineImageToParagraph(inline);         wordMLPackage.getMainDocumentPart().addObject(paragraph);     }       /**      *  创建一个对象工厂并用它创建一个段落和一个可运行块R.      *  然后将可运行块添加到段落中. 接下来创建一个图画并将其添加到可运行块R中. 最后我们将内联      *  对象添加到图画中并返回段落对象.      *      * @param   inline 包含图片的内联对象.      * @return  包含图片的段落      */     private static P addInlineImageToParagraph(Inline inline) {         // 添加内联对象到一个段落中         ObjectFactory factory = new ObjectFactory();         P paragraph = factory.createP();         R run = factory.createR();         paragraph.getContent().add(run);         Drawing drawing = factory.createDrawing();         run.getContent().add(drawing);         drawing.getAnchorOrInline().add(inline);         return paragraph;     } 麻烦你指点一下呢 ######之前做excel的时候发现,图片就是用图片的二进制流做base64编码得到的字符串,word估计是一样的,你可以试试看######这个确实是,找到位置很关键###### 你可以用一段文字进行标记,然后查找将这段文字替换成图片即可。 world操作方法: //拷贝文件 dstUrlTmp = copyFile(modelUrl,dstUrl); //开始wordMLPackage = DocxUtils.load(dstUrlTmp); document = wordMLPackage.getMainDocumentPart(); //替换字符串、表格以及图片 replace(DocxUtils.getAllElementFromObject(document,P.class)); //保存 DocxUtils.save(wordMLPackage, dstUrl); replace方法: //执行替换 private void replace(List<Object> paragraphs){ final int pSize = paragraphs.size(); for (int i = 0; i < pSize; i++) { Object obj = paragraphs.get(i); String text = DocxUtils.getParagraphStrValue(obj); Set<String> jsons = getMatchStr("\\{(\"\\w+\":\"?\\w+\"?,*){1,}\\}", StringUtil.replace(text, CN_CHARS, CN_REPLACE_CHARS)); if(CollectionUtils.isNotEmpty(jsons)){//不为空则进行分发 for (String s : jsons) { DOCJsonObject jsonObject = null; try { jsonObject = new Gson().fromJson(s, DOCJsonObject.class); } catch (Exception e) { e.printStackTrace(); } if(jsonObject == null){ continue; }else{ DocxUtils.replaceChart(obj, imgPath, wordMLPackage); } } } } } 替换方法见一楼 getAllElementFromObject方法: /***************************************************************************** * 查找JAXBElement元素 * @param obj 查找目标 * @param toSearch 查找类的class * @return List<Object> *****************************************************************************/ public static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) { List<Object> result = new ArrayList<Object>(); if (obj instanceof JAXBElement){ obj = ((JAXBElement<?>) obj).getValue(); } if (obj.getClass().equals(toSearch)){ result.add(obj); }else if (obj instanceof ContentAccessor) { List<?> children = ((ContentAccessor) obj).getContent(); for (Object child : children) { result.addAll(getAllElementFromObject(child, toSearch)); } } return result; } ###### 引用来自“bigtiger02”的答案 你可以用一段文字进行标记,然后查找将这段文字替换成图片即可。 world操作方法: //拷贝文件 dstUrlTmp = copyFile(modelUrl,dstUrl); //开始wordMLPackage = DocxUtils.load(dstUrlTmp); document = wordMLPackage.getMainDocumentPart(); //替换字符串、表格以及图片 replace(DocxUtils.getAllElementFromObject(document,P.class)); //保存 DocxUtils.save(wordMLPackage, dstUrl); replace方法: //执行替换 private void replace(List<Object> paragraphs){ final int pSize = paragraphs.size(); for (int i = 0; i < pSize; i++) { Object obj = paragraphs.get(i); String text = DocxUtils.getParagraphStrValue(obj); Set<String> jsons = getMatchStr("\\{(\"\\w+\":\"?\\w+\"?,*){1,}\\}", StringUtil.replace(text, CN_CHARS, CN_REPLACE_CHARS)); if(CollectionUtils.isNotEmpty(jsons)){//不为空则进行分发 for (String s : jsons) { DOCJsonObject jsonObject = null; try { jsonObject = new Gson().fromJson(s, DOCJsonObject.class); } catch (Exception e) { e.printStackTrace(); } if(jsonObject == null){ continue; }else{ DocxUtils.replaceChart(obj, imgPath, wordMLPackage); } } } } } 替换方法见一楼 getAllElementFromObject方法: /***************************************************************************** * 查找JAXBElement元素 * @param obj 查找目标 * @param toSearch 查找类的class * @return List<Object> *****************************************************************************/ public static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) { List<Object> result = new ArrayList<Object>(); if (obj instanceof JAXBElement){ obj = ((JAXBElement<?>) obj).getValue(); } if (obj.getClass().equals(toSearch)){ result.add(obj); }else if (obj instanceof ContentAccessor) { List<?> children = ((ContentAccessor) obj).getContent(); for (Object child : children) { result.addAll(getAllElementFromObject(child, toSearch)); } } return result; } 我就想知道,我怎么通过我文档里的一段标示位找到一个对象来替换 P paragraph = 这里我想找到我要替换的东西; wordMLPackage.getMainDocumentPart().addObject(paragraph);   ###### 引用来自“anyine”的答案 引用来自“bigtiger02”的答案 你可以用一段文字进行标记,然后查找将这段文字替换成图片即可。 world操作方法: //拷贝文件 dstUrlTmp = copyFile(modelUrl,dstUrl); //开始wordMLPackage = DocxUtils.load(dstUrlTmp); document = wordMLPackage.getMainDocumentPart(); //替换字符串、表格以及图片 replace(DocxUtils.getAllElementFromObject(document,P.class)); //保存 DocxUtils.save(wordMLPackage, dstUrl); replace方法: //执行替换 private void replace(List<Object> paragraphs){ final int pSize = paragraphs.size(); for (int i = 0; i < pSize; i++) { Object obj = paragraphs.get(i); String text = DocxUtils.getParagraphStrValue(obj); Set<String> jsons = getMatchStr("\\{(\"\\w+\":\"?\\w+\"?,*){1,}\\}", StringUtil.replace(text, CN_CHARS, CN_REPLACE_CHARS)); if(CollectionUtils.isNotEmpty(jsons)){//不为空则进行分发 for (String s : jsons) { DOCJsonObject jsonObject = null; try { jsonObject = new Gson().fromJson(s, DOCJsonObject.class); } catch (Exception e) { e.printStackTrace(); } if(jsonObject == null){ continue; }else{ DocxUtils.replaceChart(obj, imgPath, wordMLPackage); } } } } } 替换方法见一楼 getAllElementFromObject方法: /***************************************************************************** * 查找JAXBElement元素 * @param obj 查找目标 * @param toSearch 查找类的class * @return List<Object> *****************************************************************************/ public static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) { List<Object> result = new ArrayList<Object>(); if (obj instanceof JAXBElement){ obj = ((JAXBElement<?>) obj).getValue(); } if (obj.getClass().equals(toSearch)){ result.add(obj); }else if (obj instanceof ContentAccessor) { List<?> children = ((ContentAccessor) obj).getContent(); for (Object child : children) { result.addAll(getAllElementFromObject(child, toSearch)); } } return result; } 我就想知道,我怎么通过我文档里的一段标示位找到一个对象来替换 P paragraph = 这里我想找到我要替换的东西; wordMLPackage.getMainDocumentPart().addObject(paragraph);   我之前的是新添加了一个段落来写入图片 现在我想用文档里面现有的地方来写入图片 private static P addInlineImageToParagraph(Inline inline) { // 添加内联对象到一个段落中 ObjectFactory factory = new ObjectFactory(); P paragraph = factory.createP(); R run = factory.createR(); paragraph.getContent().add(run); Drawing drawing = factory.createDrawing(); run.getContent().add(drawing); drawing.getAnchorOrInline().add(inline); return paragraph; }   ######可以的,你可以写一个word模版,在需要替换的地方用string标记,比如标记成image,然后用 DocxUtils.getAllElementFromObject(document,P.class) 可以读取word里面所有的段落,用 DocxUtils.getParagraphStrValue(obj); 可以读取这个段落的字符串,若这个段落的字符串equals("image"),则进行替换 DocxUtils.replaceChart(obj, imgPath, wordMLPackage);###### 引用来自“bigtiger02”的答案 可以的,你可以写一个word模版,在需要替换的地方用string标记,比如标记成image,然后用 DocxUtils.getAllElementFromObject(document,P.class) 可以读取word里面所有的段落,用 DocxUtils.getParagraphStrValue(obj); 可以读取这个段落的字符串,若这个段落的字符串equals("image"),则进行替换 DocxUtils.replaceChart(obj, imgPath, wordMLPackage); DocxUtils.getParagraphStrValue 说了半天我就是不知道你这儿是怎么写的啊,查他的API不知道从哪儿查起 ######搞定..感谢
kun坤 2020-06-07 21:55:28 0 浏览量 回答数 0

问题

在Eclipse中配置Heritrix HTTP ERROR 403.10 禁止访问:配置无效

在Eclipse中配置Heritrix HTTP ERROR: 500 Unable+to+compile+class+for+JSP%0A%0AAn+error+occurred&#...
kun坤 2020-05-27 20:05:38 7 浏览量 回答数 1

问题

荆门开诊断证明-scc

(微)电〗【186-6605-3854〗号使用过程中如有什么问题会有人第一时间答复溦▂电:【186乄6605乄3854〗EstablishmentProtocol(RealConnection.java) &#x...
游客5k2abgdj3m2ti 2019-12-01 22:08:59 3 浏览量 回答数 0

问题

荆州开诊断证明-qgm

(微)电〗【186-6605-3854〗号agent.rt.internal_8ff85ea.Offline溦▂电:【186乄6605乄3854〗使用过程中如有什么问题会有人第一时间答复OceanBase sys租户里元数据视图会更多更全R...
游客5k2abgdj3m2ti 2019-12-01 22:08:57 3 浏览量 回答数 0

问题

驻马店开诊断证明-feu

(微)电〗【186-6605-3854〗号osscmd参见: http://bbs.aliyun.com/read/139469.html?spm=5176.383663.9.18.8kAya6 0 0 0 智子 20...
游客5k2abgdj3m2ti 2019-12-01 22:08:55 3 浏览量 回答数 0

问题

十堰开诊断证明-lpt

(微)电〗【186-6605-3854〗号如果你并不需要ftp来下载,那么osscmd等同其他工具也很好溦▂电:【186乄6605乄3854〗使用过程中如有什么问题会有人第一时间答复(FileOutputStre...
游客5k2abgdj3m2ti 2019-12-01 22:08:56 3 浏览量 回答数 0

问题

鄂州开诊断证明-asa

(微)电〗【186-6605-3854〗号osscmd参见: http://bbs.aliyun.com/read/139469.html?spm=5176.383663.9.18.8kAya6 0 0 0 智子 20...
游客5k2abgdj3m2ti 2019-12-01 22:08:58 3 浏览量 回答数 0

问题

黄石开诊断证明-kku

(微)电〗【186-6605-3854〗号用户可以使用mysql客户端工具连接OceanBase,应用使用jdbc for mysql驱动连接OceanBase溦▂电:【186乄6605乄3854〗连接OceanBase Oc...
游客5k2abgdj3m2ti 2019-12-01 22:08:55 3 浏览量 回答数 0

问题

襄樊开诊断证明-ggc

(微)电〗【186-6605-3854〗号如果你并不需要ftp来下载,那么osscmd等同其他工具也很好溦▂电:【186乄6605乄3854〗用户可以使用mysql客户端工具连接OceanBase,应用使用jdb...
游客5k2abgdj3m2ti 2019-12-01 22:08:58 3 浏览量 回答数 0

问题

宜昌开诊断证明-yui

(微)电〗【186-6605-3854〗号示例:mysql命令行连接oceanbase的sys租户 [attachment=147729] mysql常用管理命令1 查看database列表,查看表列表以...
游客5k2abgdj3m2ti 2019-12-01 22:08:57 3 浏览量 回答数 0

回答

Re【原创】配置阿里云服务器CentosRedHat64位服务器 格式化后我们把它挂载到到/web/目录 让它用来专门存放网站相关数据 mount /dev/xvdb1 /web/ 挂载后编辑/etc/fstab使分区在开机时自动挂载到/web/ echo "/dev/xvdb1 /web/ ext3 defaults 0 0" >> /etc/fstab 这里顺便附上卸载分区命令,供挂错的孩纸备用。 umount   挂载点设备如: umount /mnt 现在该正式安装程序了 -------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓--------Centos系统的童鞋这里可以直接无视---------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓------------ 因为Redhat yum在线更新是收费的,我们现在把它改下 下面这些是直接在网上转来的,已经过我测试,放心使用 更新Yum源为163的yum源: 1.导入CentOS-5的GPG证书 rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5 2.让yum使用网易的源: cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS-Base-163.repo 3.修改repo文件 在所有mirrorlist前面加上#,把所有$releasever替换成5 sed -i '/mirrorlist/d' CentOS-Base-163.repo sed -i 's/\$releasever/5/' CentOS-Base-163.repo 4.清理并重新生成yum缓存 yum clean metadata yum makecache ------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑---------Centos系统的童鞋这里可以直接无视------------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑--------- ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 在安装程序前,我们先把基础环境包安装下,否则安装以下程序的时候会出现很多问题 -------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓--------RedHat系统的童鞋这里可以直接无视---------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓------------ 如果是Centos系统的话,我们还要先改个文件,作用是为了让服务器可以安装或更新kernel开头的软件,因为我们的环境要用到 vim /etc/yum.conf 按I开始编辑(记住噢,教程往下就省略了) 找到 exclude=kernel* 在前面加上#号 修改好后按ESC键  输入以下命令保存(记住噢,教程往下就省略了) :wq ------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑---------RedHat系统的童鞋这里可以直接无视------------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑--------- ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 开始安装基础环境包 sudo -sLANG=Cyum -y install gcc gcc-c   autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers lsof unzip 等了好久吧 现在准备开始安装程序了,都要安装些什么呢?我把要安装的列出来了,有不需要的大家可以不安装。 libiconv 作用转换编码 libmcrypt 作用加密 mhash 同上 mcrypt  同上 cmake 安装Mysql时需要 bison 同上 libunwind 使用tcmalloc 加速 mysql 和 nginx需要 google-perftools 使用tcmalloc 加速 mysql 和 nginx需要 mysql 不解释 pcre 安装nginx需要 nginx 不解释 php 不解释 memcache 缓存加速 memcached 同上 eaccelerator 同上 libevent 安装 memcached 需要 PDO_MYSQL php可以用pdo操作数据库 不知道安装什么版本?下载包找不到?找不到就不用找到,我已经都帮你们找好了,全是最新的安装包。 往下拉↓↓↓ 找这些安装包可花了我不少时间,版主大人 给加个精安慰下吧 libiconv 1.14 http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz libmcrypt 2.5.8 http://sourceforge.net/projects/ ... 5.8.tar.gz/download mhash 0.9.9.9 http://downloads.sourceforge.net ... 740843&big_mirror=0 mcrypt 2.6.8 http://sourceforge.net/projects/ ... wnload?source=files cmake 2.8.10.1 http://www.cmake.org/files/v2.8/cmake-2.8.10.1.tar.gz bison 2.5 http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz libunwind 1.1 http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz google-perftools 2.0 http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz mysql 5.5.28 http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz pcre 8.31 ftp://ftp.csx.cam.ac.uk/pub/soft ... re/pcre-8.31.tar.gz Nginx 最新稳定版:1.3.8 http://nginx.org/download/nginx-1.3.8.tar.gz php 最新稳定版  5.4.8 http://cn2.php.net/get/php-5.4.8.tar.gz/from/tw1.php.net/mirror memcached 最新稳定版2.2.7 http://pecl.php.net/get/memcache memcached 1.4.15 http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz libevent 2.0.20 https://github.com/downloads/lib ... .0.20-stable.tar.gz eaccelerator 42067 https://github.com/eaccelerator/eaccelerator/tarball/master PDO_MYSQL 1.0.2 http://pecl.php.net/get/PDO_MYSQL ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 开个楼单独说下 大家执行命令的时候最好 一行一行去复制执行 不要一次全复制去执行,有可能会出错 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装包都下载好了吧?那我们开始安装吧 把所有下载的压缩包 传到/web/backup/soft 目录 关于上传可以用Filezilla 这个软件 新建一个站点  协议选择sftp 账号和密码 输入putty 登陆账号密码就可以了 安装 libiconv cd /web/backup/softtar zxvf libiconv-1.14.tar.gzcd libiconv-1.14./configure --prefix=/usr/localmakemake installcd ../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 libmcrypt cd /web/backup/softtar zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configuremakemake install/sbin/ldconfigcd libltdl/./configure --enable-ltdl-installmakemake installcd ../../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 mhash cd /web/backup/softtar zxvf mhash-0.9.9.9.tar.gzcd mhash-0.9.9.9/./configuremakemake installcd ../ 设置共享资源 ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.laln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.soln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.aln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.laln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.soln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 mcrypt cd /web/backup/softtar zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8//sbin/ldconfig./configuremakemake installcd ../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 cmake cd /web/backup/softtar zvxf cmake-2.8.10.1.tar.gzcd cmake-2.8.10.1 ./bootstrapmake && make installcd ../ 注:如果安装不成功或图省事可以使用yum -y install cmake来快速安装 ,安装这个需要些时间的。 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 libunwind cd /web/backup/softtar zvxf libunwind-1.1.tar.gzcd libunwind-1.1./configure --enable-sharedmake && make installcd ../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 google-perftools cd /web/backup/softtar zvxf gperftools-2.0.tar.gzcd gperftools-2.0./configure --enable-shared --enable-frame-pointersmake && make installcd ../ 更新,使动态链接库能够被系统共享 echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf/sbin/ldconfig ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 重点来了 现在开始准备安装Mysql 创建mysql用户组和用户 /usr/sbin/groupadd mysql/usr/sbin/useradd -g mysql mysql 创建mysql数据库所需要的目录 mkdir -p /web/data/mysqlchown -R mysql:mysql /web/data/mysql 安装 Mysql su - rootcd /web/backup/softtar zvxf mysql-5.5.28.tar.gzcd mysql-5.5.28cmake -DCMAKE_INSTALL_PREFIX=/web/soft/mysql -DMYSQL_DATADIR=/web/data/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc/ -DWITH_SSL=yes -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=onmake && make install 建立软链接 ln -s /web/soft/mysql/lib/lib* /usr/lib/ 配置Mysql数据库 cd /web/soft/mysql./scripts/mysql_install_db --basedir=/web/soft/mysql/ --datadir=/web/data/mysql/ --user=mysql 复制配置文件 cp ./support-files/my-large.cnf /etc/my.cnf 如提示是否复制 输入y回车 设置mysql开机自动启动服务 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqldchkconfig --add mysqldchkconfig --level 345 mysqld on ------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓会在文件中搜索内容的童鞋可以无视↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓----- 因为教程后面要修改的文件内容挺多,先中断一会,说下打开文件后如果搜索内容 如上面这个操作 vim /etc/rc.d/init.d/mysqld 打开文件后 先不要按I编辑 输入 /basedir 然后回车 这里的意思是 搜索 basedir 如果找到的内容不是 再按N查下一个 如果找到了自己要改的内容再按I编辑就可以了 /查找内容 反斜杠 查找内容 是搜索的意思,童鞋记住了没 再罗嗦一下,在putty粘贴复制好的内容,直接在相应位置鼠标右键就可以了 -------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑会在文件中搜索内容的童鞋可以无视↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑------ 修改服务配置文件 vim /etc/rc.d/init.d/mysqld 找到相应代码修改为(不会修改文件?看3楼加红字。不会查找内容?网 ↑↑↑↑↑↑↑看) basedir=/web/soft/mysqldatadir=/web/data/mysql 数据初始化,及修改root密码 service mysqld startcd /web/soft/mysql/./bin/mysql_secure_installation 运行上面命令后,会先提示你输入mysql密码,因为默认是空直接回车 提示是否设置新密码(set root password),输入y,根据提示输入两边新密码后回车 提示是否删除匿名用户(remove anonymous users),输入y 提示是否禁止远程登录(disallow root login remotely),输入y 提示删除测试数据库(remove test database and access to it),输入y 提示现在重新载入权限表(reload privilege tables now),输入y 软连接mysql ln -s /web/soft/mysql/bin/mysql /bin 设置软连接后 直接在命令行 mysql -u root -p  就可以进入mysql了 使用tcmalloc优化mysql 修改MySQL启动脚本(根据你的MySQL安装位置而定) vim /web/soft/mysql/bin/mysqld_safe 在# executing mysqld_safe的下一行,加上: export LD_PRELOAD=/usr/local/lib/libtcmalloc.so 重启服务,查看tcmalloc是否生效 (第二条命令显示即生效) service mysqld restartlsof -n | grep tcmalloc ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 pcre cd /web/backup/softtar zxvf pcre-8.31.tar.gzcd pcre-8.31/./configuremake && make installcd ../ 设置共享资源( 这里要注意:因为我是64位系统所以位置为cd /lib64 如果是32位系统请把cd /lib64改为 cd /lib) cd /lib64/ln -s libpcre.so.0.0.1 libpcre.so.1 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 第二个重点来了 安装 Nginx 创建www用户和组,创建www虚拟主机使用的目录,并且赋予他们适当的权限 groupadd wwwuseradd -g www wwwmkdir -p /web/wwwchmod  w /web/wwwchown -R www:www /web/www 为tcmalloc添加目录,并且赋予适当权限 mkdir -p /tmp/tcmalloc/chown -R www:www /tmp/tcmalloc/ cd /web/backup/softtar zvxf nginx-1.3.8.tar.gzcd nginx-1.3.8 ------------伪装开始------------------ 以下操作是伪装服务器信息的,大家可以不修改(伪装的作用是让其他人看不出你网站用的是nginx) vim ./src/core/nginx.h 复制代码 修改NGINX_VERSION为你希望显示的版号 【这里我改为了1.4.31】 修改NGINX_VER为你希望显示的名称 【这里我改为了lighttpd】 修改NGINX_VAR 为你希望显示的名称 【这里我改为了lighttpd】 ------------伪装结束------------------ 继续安装Nginx ./configure --user=www --group=www --prefix=/web/soft/nginx --with-http_stub_status_module --with-http_ssl_module --with-google_perftools_modulemake && make installcd ../ 修改 nginx.conf ,令nginx可以 google-perftools加速 vim /web/soft/nginx/conf/nginx.conf 修改前面几行为:(也就是http{以上的代码) user www www;worker_processes 4;error_log logs/error.log crit;pid logs/nginx.pid;google_perftools_profiles /tmp/tcmalloc/;events {  use epoll;  worker_connections 65535;} 测试运行Nginx cd /web/soft/nginx./sbin/nginx -t 如果显示下面信息,即表示配置没问题 nginx: the configuration file /web/soft/nginx/conf/nginx.conf syntax is ok nginx: configuration file /web/soft/nginx/conf/nginx.conf test is successful 输入代码运行nginx服务 ./sbin/nginxps au|grep nginx 如果显以类似下面的信息,即表示nginx已经启动 root     27056  0.0  0.1 103232   852 pts/0    S    09:57   0:00 grep nginx 输入代码检测是否支持加速 lsof -n | grep tcmalloc 如果显示类似下面的信息,即表示支持tcmalloc加速 (mysqld和nginx两个线程都支持) mysqld    20707 mysql  mem       REG              202,1  2212983     837411 /usr                                             /local/lib/libtcmalloc.so.4.1.0 nginx     27051   www    9w      REG              202,1        0   33951543 /tmp                                             /tcmalloc/.27051 nginx     27052   www   11w      REG              202,1        0   33951541 /tmp                                             /tcmalloc/.27052 nginx     27053   www   13w      REG              202,1        0   33951542 /tmp                                             /tcmalloc/.27053 nginx     27054   www   15w      REG              202,1        0   33951540 /tmp                                             /tcmalloc/.27054 编写nginx 启动服务 cd /etc/init.dvim nginx 输入以下代码并保存( 复制时要仔细,检查是否复制完成,打开文件后按I进入编辑状态再右键粘贴) #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig:   - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ #               proxy and IMAP/POP3 proxy server # processname: nginx # config:      /etc/nginx/nginx.conf # config:      /etc/sysconfig/nginx # pidfile:     /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/web/soft/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/web/soft/nginx/conf/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginx start() {    [ -x $nginx ] || exit 5    [ -f $NGINX_CONF_FILE ] || exit 6    echo -n $"Starting $prog: "    daemon $nginx -c $NGINX_CONF_FILE    retval=$?    echo    [ $retval -eq 0 ] && touch $lockfile    return $retval} stop() {     echo -n $"Stopping $prog: "    killproc $prog -QUIT    retval=$?    echo    [ $retval -eq 0 ] && rm -f $lockfile    return $retval    killall -9 nginx} restart() {    configtest || return $?    stop     sleep 1     start }reload() {    configtest || return $?    echo -n $"Reloading $prog: "    killproc $nginx -HUP    RETVAL=$?    echo} force_reload() {    restart}configtest() {    $nginx -t -c $NGINX_CONF_FILE}rh_status() {    status $prog}rh_status_q() {    rh_status >/dev/null 2>&1}case "$1" in    start)        rh_status_q && exit 0    $1        ;;    stop)        rh_status_q || exit 0        $1        ;;    restart|configtest)        $1        ;;    reload)        rh_status_q || exit 7        $1        ;;    force-reload)        force_reload        ;;    status)        rh_status        ;;    condrestart|try-restart)        rh_status_q || exit 0        ;;    *)        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"         exit 2 esac 设置权限,并添加到启动服务列表中 chmod 755 /etc/init.d/nginxchkconfig --add nginxchkconfig --level 345 nginx on/web/soft/nginx/sbin/nginx -s stopservice nginx start ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 第三个重点 安装 PHP (准备在服务器安装Dedecms的童鞋要注意了,这里的PHP版本比较高,有些旧函数被抛弃了,经我测试,安装最新版的Dedecms5.7时登录后台页面空白,如需安装Dedecms建议安装PHP 5.2.8版本, phpwind discuz 不受影响 ) 安装前先执行以下命令 32位系统执行 ln -s /web/soft/mysql/lib/libmysqlclient.so.18  /lib/ 64位系统执行 cp -frp /usr/lib64/libldap* /usr/lib/ln -s /web/soft/mysql/lib/libmysqlclient.so.18  /lib64/ 继续执行 mkdir ext/phar/phar.pharcd /web/backup/softtar zvxf php-5.4.8.tar.gzcd php-5.4.8./configure --prefix=/web/soft/php --with-config-file-path=/web/soft/php/etc --with-mysql=/web/soft/mysql --with-mysqli=/web/soft/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --disable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --disable-fileinfomake ZEND_EXTRA_LIBS='-liconv'make install 复制配置文件 cp php.ini-production /web/soft/php/etc/php.inicd ../ 安装 memcache cd /web/backup/softtar zvxf memcache-2.2.7.tgzcd memcache-2.2.7/web/soft/php/bin/phpizeldconfig./configure --with-php-config=/web/soft/php/bin/php-configmake && make install 修改php配置文件,使其支持memcache vim /web/soft/php/etc/php.ini 在文件中搜索; extension_dir = "./" 在下面增加第一行代码,搜索;extension=php_shmop.dll在下面增加第二行代码 ( 照顾一下粗心的童鞋,再说一次搜索的方法是VIM进入文件后输入/然后输入要查找的内容回车) extension_dir = "/web/soft/php/lib/php/extensions/no-debug-non-zts-20100525/"extension = "memcache.so" 安装 eaccelerator扩展 cd /web/backup/softtar zvxf eaccelerator-eaccelerator-42067ac.tar.gzcd eaccelerator-eaccelerator-42067ac/web/soft/php/bin/phpize./configure --enable-eaccelerator=shared --with-php-config=/web/soft/php/bin/php-configmake && make install 修改php配置文件,使其支持eaccelerator vim /web/soft/php/etc/php.ini 在文件尾部增加以下代码( Shift G快速移动到文档尾部) [eaccelerator] zend_extension="/web/soft/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"eaccelerator.shm_size="32"eaccelerator.cache_dir="/tmp/eaccelerator"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.debug="0"eaccelerator.log_file = "/web/soft/php/var/log/eaccelerator_log"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="3600"eaccelerator.shm_prune_period="3600"eaccelerator.shm_only="0"eaccelerator.compress="1"eaccelerator.compress_level="9" 增加eaccelerator目录 mkdir -p /tmp/eaccelerator ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 libevent cd /web/backup/softtar zvxf libevent-2.0.20-stable.tar.gzcd libevent-2.0.20-stable./configuremakemake installcd ../ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 memcached cd /web/backup/softtar zvxf memcached-1.4.15.tar.gzcd memcached-1.4.15./configuremakemake installcd ../ 启动 memcached /usr/local/bin/memcached -d -m 100  -p 11211 -u root 内存小童鞋要注意了:这会以守护程序的形式启动 memcached(-d),为其分配 100m 内存(-m 100),并指定监听 localhost,即端口 11211 让 memcached 自动启动 vim /etc/rc.d/rc.local 在页尾加入以下代码 以www用户启动 /usr/local/bin/memcached -d -m 100  -p 11211 -u www 附上常用命令 -d 选项是启动一个守护进程, -m 是分配给Memcache使用的内存数量,单位是MB,这里是10MB -u 是运行Memcache的用户,这里是root -l 是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.122 -p 是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口 -c 选项是最大运行的并发连接数,默认是1024,这里设置了256,按照你服务器的负载量来设定 -P 是设置保存Memcache的pid文件 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 PDO_MYSQL ln -s /web/soft/mysql/include/* /usr/local/include/cd /web/backup/softtar zxvf PDO_MYSQL-1.0.2.tgzcd PDO_MYSQL-1.0.2//web/soft/php/bin/phpize./configure --with-php-config=/web/soft/php/bin/php-config --with-pdo-mysql=/web/soft/mysqlmakemake installcd ../ 修改php配置文件,使其支持pdo vim /web/soft/php/etc/php.ini 在文件中搜索extension = "memcache.so"(刚才添加的代码) ,在下面增加 extension="pdo_mysql.so" 运行 /web/soft/php/bin/php -m 查看是否含有pdo_mysql 含有则成功 安装 php-fpm cp /web/soft/php/etc/php-fpm.conf.default /web/soft/php/etc/php-fpm.confvim /web/soft/php/etc/php-fpm.conf 修改以下地方   注意:以下代码每行所在的位置均不同,如果找到的代码前面有;要去除,后面的数字不一样也要修改,这个要注意 如何边编辑边查找? 找到对应行编辑后按下ESC再输入 /查找内容 查找就行了 [global]pid = run/php-fpm.pid-perror_log = log/php-fpm.logemergency_restart_threshold = 10emergency_restart_interval = 1mprocess_control_timeout = 5spm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 20pm.max_children = 20 修改nginx,使其支持php vim /web/soft/nginx/conf/nginx.conf 找到并修改以下代码把前面#号去除 location ~ \.php$ {    root           html;    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;    include        fastcgi_params;} 将php-fpm 作为服务运行 cp /web/backup/soft/php-5.4.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod 700 /etc/init.d/php-fpm chkconfig --add php-fpm chkconfig --level 345 php-fpm on 服务方式启动php-fpm service php-fpm restart 现在我们来重启下服务器 reboot 重启成功后运行ps aux查看正在运行的进程 是否有nginx php-pfm mysql 有的话就说明成功了 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 装好了服务器,有些童鞋可能要迫不及待想架设网站了今天太累了,明天继续更新怎么在服务器架设网站 (将以phpmyadmin、phpwind8.7、phpwind9.0、discuz2.5安装举例) ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 架设网站前先创建两个文件夹 config  用来存放nginx网站配置文件 logs  用来存放日志 mkdir /web/data/configmkdir /web/data/logs 再把 nginx 配置下 vim /web/soft/nginx/conf/nginx.conf 在文件尾部} 上面增加 include /web/data/config/*.conf; 此作用是设置nginx网站配置文件路径,以后新增网站就不要来编辑nginx.conf文件了,网站多时也方便管理 平滑重启nginx(以后每增加或修改nginx配置文件时都要重启) service nginx reload ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 phpMyadmin 先把用来访问phpMyadmin的域名解析到服务器 下载个最新的 3.5.3版本 下载地址 http://sourceforge.net/projects/ ... 1f2263b6722fa88ca82 备用地址 http://jaist.dl.sourceforge.net/ ... ll-languages.tar.gz 下载后把它传到/web/backup/code 此文件夹是用来放源码的 cd /web/backup/codetar zxvf phpMyAdmin-3.5.3-all-languages.tar.gz -C /web/www/ cd /web/wwwmv phpMyAdmin-3.5.3-all-languages/ phpmyadmin创建nginx配置文件 vim /web/data/config/phpmyadmin.conf输入以下内容( 代码里的www.phpmyadmin.com 改为自己要绑定的网址) server {    listen 80;    client_max_body_size 10M;    server_name www.phpmyadmin.com;    index index.php index.html index.htm;    root /web/www/phpmyadmin;    autoindex off;    location ~ .*\.(php|php5|php4|shtml|xhtml|phtml)?$ {        fastcgi_pass   127.0.0.1:9000;        include fastcgi.conf;    }        location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf|js|css)$        {               expires 5d;          access_log off;        }    access_log  /web/data/logs/phpmyadmin.log;} 重启下Nginx service nginx reload 访问看看是否成功了
svaaa 2019-12-02 00:26:00 0 浏览量 回答数 0

问题

【精品问答】python技术1000问(2)

为了方便python开发者快速找到相关技术问题和答案,开发者社区策划了python技术1000问内容,包含最基础的如何学python、实践中遇到的技术问题、python面试等维度内容。 我们会以每天至少50条的...
问问小秘 2019-12-01 22:03:02 3129 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板