Centos配置PHP环境

<p>一、  安装apache</p><p>先安装gcc编译器</p><p>yum install gcc gcc-c++ gcc-g77</p><p>如果系统中没有make工具就执行下面这条命令安装,后面要用到它</p><p>Yum install make</p><p> </p><p>安装apache需要用到这些文件</p><p>apr-1.4.6.tar.gz-----------apache可移植库</p><p>apr-util-1.5.1.tar.gz -----apache可移植库</p><p>pcre-8.32.zip--------------正则表达式库</p><p>httpd-2.2.23.tar.gz--------Apache源码包</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p> </p><p>安装apr-1.4.6.tar.gz</p><p>#tar –zxvf apr-1.4.6.tar.gz</p><p>#cd apr-1.4.6</p><p>#./configure --prefix=/usr/local/apr</p><p>#make</p><p>#make install</p><p> </p><p>安装apr-util-1.5.1.tar.gz</p><p>#tar –zxvf apr-util-1.5.1.tar.gz</p><p>#cd apr-util-1.5.1</p><p>#./configure --prefix=/usr/local/aprutil --with-apr=/usr/local/apr</p><p>#make</p><p>#make install</p><p> </p><p>安装pcre-8.32.zip</p><p>#unzip pcre-8.32.zip</p><p>#cd pcre-8.32</p><p>#./configure –prefix=/usr/local/prce</p><p>#make</p><p>#make install</p><p> </p><p>安装apache</p><p># tar -zxvf httpd-2.2.23.tar.gz</p><p># cd httpd-2.2.23</p><p>#./configure --prefix=/usr/local/apache2.4.2 -with-apr=/usr/local/apr -with-apr-util=/usr/local/aprutil</p><p>#make</p><p>#make install</p><p>进去apache目录</p><p>#cd /usr/local/apache/bin</p><p>启动apache</p><p>#./apachectl start</p><p>查看端口</p><p>#netstat –an | grep 80</p><p>此时应该显示80端口正在监听中….</p><p>输入http://192.168.111.133看到It Work表明apache安装成功,如果不能看到,则执行iptables –F</p><p> </p><p>二、  安装mysql</p><p>安装mysql需要用到的文件</p><p>cmake-2.8.4.tar.gz</p><p>mysql-5.5.29.tar.gz</p><p> </p><p>安装cmake-2.8.4.tar.gz</p><p>#tar -zxvf cmake-2.8.4.tar.gz</p><p>#cd cmake-2.8.4</p><p>#./configure –prefix=/usr/local/cmake</p><p>#make</p><p>#make install</p><p> </p><p>安装mysql</p><p># tar -zxvf mysql-5.5.29.tar.gz</p><p># cd mysql-5.5.29</p><p>添加mysql运行的用户组和用户</p><p>#groupadd mysql</p><p>#useradd mysql</p><p>创建mysql安装目录</p><p>#mkdir /usr/local/mysql</p><p>#mkdir /usr/local/mysql/data</p><p>#cmake . <br />-DCMAKE_INSTALL_PREFIX=/usr/local/mysql <br />-DINSTALL_DATADIR=/usr/local/mysql/data <br />-DDEFAULT_CHARSET=utf8 <br />-DDEFAULT_COLLATION=utf8_general_ci <br />-DEXTRA_CHARSETS=all <br />-DENABLED_LOCAL_INFILE=1</p><p>如果上面的配置信息出错则安装</p><p># install ncurses-devel</p><p>#make</p><p>#make install</p><p>设置mysql目录用户组和用户</p><p># chown -R root:mysql . 用户组为root 用户root</p><p># chown -R mysql:mysql data</p><p>拷贝配置文件到etc目录下</p><p>#cp support-files/my-medium.cnf /etc/my.cnf</p><p>创建并初始化系统数据库的系统表</p><p># scripts/mysql_install_db --user=mysql</p><p>启动mysql</p><p># ./bin/mysqld_safe –user=mysql &</p><p>修改root密码</p><p>./bin/mysql –uroot –p</p><p>>use mysql</p><p>添加root用户的远程连接能力</p><p>Mysql>GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "root";</p><p>Mysql>update user set Password = password(‘19930526’) where User='root';(19930526为需要设置的密码)</p><p>Mysql>flush privileges;</p><p> </p><p>三、  安装PHP</p><p>安装PHP需要用到的文件</p><p>libxml2-2.6.32.tar.gz</p><p>php-5.3.21.tar.gz</p><p> </p><p>安装libxml2-2.6.32.tar.gz</p><p>#tar –zxvf libxml2-2.6.32.tar.gz</p><p># ./configure --prefix=/usr/local/libxml2</p><p>#make</p><p>#make install</p><p>安装php</p><p>tar –zxvf php-5.3.21.tar.gz</p><p>配置信息</p><p>./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql</p><p>>  --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/libxml2</p><p>#make</p><p>#make install</p><p>拷贝配置文件到/usr/local/php/lib目录下</p><p># cp php.ini-development /usr/local/php/lib/php.ini</p><p>配置Apache PHP 工作</p><p>配置 httpd.conf 让apache支持PHP</p><p># vi /usr/local/apache/conf/httpd.conf</p><p>找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容</p><p>AddType application/x-httpd-php .php      (.前面有空格)</p><p>AddType application/x-httpd-php-source .phps        (.前面有空格)</p><p>重启apache</p><p>新建文件demo.php</p><p><?php</p><p>   echo phpinfo();</p><p>?></p><p>将文件放到/usr/local/apache/htdocs下</p><p>看到打印信息页面则LAMP环境配置成功 …</p>

阅读剩余部分 -

免费 .Net 反编译工具

<div><div><p>.Net 曾经最好的反编译工具是 .NET Reflector 但是后来这个优秀的工具开始商业化并收费了。后来大部分都是用 ILSpy,现在可选的工具又多了起来,下面我就介绍几个免费的给大家。</p><ol> <li>Telerik JustDecompile 是 Telerik 公司推出一个免费的 .Net 反编译工具</li> <li>dotPeek 是 JetBrains 推出的免费工具</li> <li>ILSpy 就不用多说了。.Net Reflector 收费后这个用的是最多的。</li></ol></div></div>

苹果iphone APP界面设计尺寸官方版

<div><p>iphone界面设计尺寸(640960)px
苹果IOS APP界面设计尺寸官方版</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>该Iphone界面设计是从苹果官方网站帮助中心提取过来,这也是我第一次帮公司产品设计iphone版的UI使用的尺寸。由于之前接触的比较少,只知道苹果手机的界面尺寸是640
960,其实真正的大小是320480,因为人的视网膜关系,苹果公司放大了2倍。</p><p>所以,我们在设计的时候,需要按照该图上的尺寸来放大2倍作为我们设计的尺寸。</p><p>或者说,我们初学者可以模仿,可以借鉴苹果公司成熟的案例。我们导出一张完整的iphone手机界面。作为我们设计的底版。</p><p>25学堂教程原创二:Android界面通常设计尺寸(480800)px</p><p>系统会根据你手机的分辩率分别到如下几个文件来里来找对应的图片:</p><p>hdpi(hign-dpi) 这个文件平里放置高分辩率的图片,即如下尺寸的文件:480×800、480X854</p><p>mdpi(middle-dpi)这个文件平里放置中等分辩率的图片,即如下尺寸的文件:320×480</p><p>ldpi(lower-dpi)这个文件平里放置低分辩率的图片,即如下尺寸的文件:240×320</p><p>ios-chicun</p></div>

阅读剩余部分 -

C#编程风格

<h2>1.空白</h2><p style="margin-left:30px;">这个没啥好说的,意思就是该留空白的时候要果断留,不要怕浪费。空白有助于提高代码的可读性。</p><h2>2.块</h2><p style="margin-left:30px;">一般表示用大括号“{”和“}”括起来的部分。</p><h2>3.驼峰法(小驼峰法)</h2><p style="margin-left:30px;">变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如</p><div style="margin-left:30px;"><pre>int myStudentCount;</pre></div><p style="margin-left:30px;">变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><h2>4.Pascal法(大驼峰法)</h2><p style="margin-left:30px;">相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,函数名,属性,命名空间。譬如</p><div style="margin-left:30px;"><pre>publicclass DataBaseUser;</pre></div><p> </p><h2>5.全局变量</h2><p style="margin-left:30px;">一般惯例是加一个前缀或者后缀用于私有变量和局部变量。通常是用下划线“_”来标识。譬如</p><div style="margin-left:30px;"><pre>privateint myStudentCount_;</pre></div><p> </p><p style="margin-left:30px;">下划线有加在前面的,也有加在后面的。个人比较习惯加在前面。</p><h2>6.常量</h2><p style="margin-left:30px;">常量通常用全大写,并用下划线来分割单词来标志。譬如</p><div style="margin-left:30px;"><pre>privateintconst STUDENT_COUNT=50;</pre></div><p> </p><h2>7.switch</h2><p style="margin-left:30px;">用switch的时候,无论case是否涵括了所有情况,都应该加上Default语句。很多时候结果是不再我们考虑范围内的。应该尽量涵盖所有情况。譬如</p><div style="margin-left:30px;"><div>复制代码</div><pre>switch(month) { case1: //...break; case2: //...break; ... case12: //code...break; default: //code...break; }</pre><div>复制代码</div></div><p> </p><p style="margin-left:30px;">代码用于处理每个月的不同情况,虽然已经处理了十二个月的情况,但是代码还是加上了default用于以防万一,这是值得推荐的。</p><h2>8.二元运算符</h2><p style="margin-left:30px;">一般在二元运算符左右需要加一个空格。当然用VS的人一般都知道当你打出每一句代码的最后标志符“;”的时候,VS会自动处理代码,给二元运算符的左右加上一个空格。譬如</p><div style="margin-left:30px;"><pre>count = count + i;</pre></div><p> </p><p style="margin-left:30px;">可以发现在“=”和“+”左右都是有一个空格的。这样比起不加空格确实好看很多。不信,你别加试试。</p><h2>9.条件语句</h2><p style="margin-left:30px;">添加语句上面尽量不要用直接值。譬如</p><div style="margin-left:30px;"><pre>int count = 60; if(count_ >= count) { //code...}</pre></div><p> </p><p style="margin-left:30px;">我们推荐这种做法,我们不推荐</p><div style="margin-left:30px;"><pre>if(count_ >= 60) { //code...}</pre></div><p> </p><p style="margin-left:30px;">这种做法。当要发生修改的时候,前者的价值就相当明显了。</p><h2>10.使用别名</h2><p style="margin-left:30px;">尽量使用类型名的别名。例如</p><div style="margin-left:30px;"><pre>int count = 60; System.Int32 count2 = 60;</pre></div><p> </p><p style="margin-left:30px;">其实int只是System.Int32的别名而已,两者产生的效果作用是一模一样的。不过我们推荐使用前者,不推荐后者。这有历史的因素吧,不过只要是个人,都会很自觉写int,double这些别名吧。</p><h2>11.原子方法</h2><p style="margin-left:30px;">我们推荐原子操作。一个函数不需要做太多的事情。特别是对于类来说。如果一个实现可以用几个原子方法来完成,我们推荐这种做法,而不推荐把方法写地太长。最好别超过100行。</p><h2>12.访问控制标志</h2><p style="margin-left:30px;">虽然可以默认不填写访问控制符。但是我们不推荐这种做法。我们推荐把类里面所有的变量,方法,属性,...都写上访问权限。</p><h2>13.region</h2><p style="margin-left:30px;">#region和#endregion是非常好用的东西。它可以在任何位置,无聊是否在同时在同一个块内,都可以使用,将代码收缩。在一个类里面,我们推荐使用region将代码分类。譬如</p><p style="margin-left:30px;"></p></div>

阅读剩余部分 -

骆驼命名法

<p>骆驼式命名法(又称驼峰命名法), 正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量 和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜 欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名 法来表示,可以增加程序可读性。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>
printEmployeePaychecks();
print_employee_paychecks();
第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。
骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得相当多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。
骆驼式命名法(Camel-Case)是电脑程式编写时的一套命名规则(惯例)。
骆驼式命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
骆驼式命名法(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,而 Larry Wall 等人所著的畅销书《Programming Perl》(O'Reilly 出版)的封面图片正是一匹骆驼。
骆驼式命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。</p><p>小驼峰法</p><p>变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如
int myStudentCount;
变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。</p><p>大驼峰法</p><p>相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,函数名,属性,命名空间。譬如
public class DataBaseUser;</p>

阅读剩余部分 -

网页正文提取算法研究[非正则]

<p>互联网的页面展现形式相当丰富,但是如果按页面结构特征来分类,却不外乎以下几种类型:首页(包括栏目首页),列表页,内容页,评论页。</p><p>(1) 首页: 网站的首页, 一般含有多个栏目、图片、动画,以及若干文章标题链接。如: 网易首页。</p><p>(2) 列表页: 信息以列表的方式给出, 一般以表格的形式列出若干个条目, 经常含有分页功能。例如: 某论坛版面的文章标题列表。</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>(3) 内容页: 指含有正文内容的底层网页, 一般只含有不超过一篇的文章内容, 无评论或评论较少。如: 各类网站的含有具体某篇文章的底层网页。</p><p>(4) 评论页: 除了含有正文, 正文后面还跟有若干个评论,以论坛为代表。</p><p>       在这几种类型之中,信息含量最大的当数内容页,它是我们平常摄取信息的主要来源。由于内容页的重要性,不同的Web站 点为了加强内容页的展示,都会加入一些与内容相关或无关的信息块,如导航,广告等。虽然这些信息块在一定程度上有助于我们的延伸阅读,但很多情况下,我们 只需要获取正文信息就可以了,其他信息块反倒成了一种干扰。如何从一个内容页面中,正确提取出正文信息,就成了一个研究课题。</p><p>       在详述之前,先说一下正文提取的意义。以笔者的经历看来,应用包括但不限于以下几个方面。</p><p>(1) 采集,搜索。信息采集很常见,互联网上超过30%的内容都是从其他Web站点采集而来。现在的采集系统或工具,大多是基于页面的正则来进行信息采集的,这样的优点是,对于需要采集的信息精确度很高,但是缺点也是很明显的,由于是基于页面的Html源码来采集,一旦源站点改版或调整,导致页面的Html源码改变,所有正则将全部作废。而正文提取技术,不是以Html源码格式为依据,所以Html源码的改变相对来说影响不大。</p><p>(2) 门户文章发布。很多门户站点,并没有专门的记者团队,大部分文章都靠编辑在网上复制粘贴。如果能在发布界面加个功能,只需要输入网址,即可正确导入正文内容,并自动处理图片,想必是个不错的用户体验。</p><p>(3)Wap浏览器。Wap浏览由于受到流量及手机屏幕的限制,现在的Wap页面大部分以特出文字信息为主,但也不排除会有一些干扰信息块出现。作为用户,希望能只显示正文信息,特别是对于新闻及小说等页面。Wap浏览器如果可以将正文内容自动提取出来,应该是个不错功能。Android系统的迷人浏览器有个阅读模式,算是在这方面的一个探索。</p><p> </p><p>       正文提取技术的算法很多,本文是基于多特征的一种算法研究,根据信息块的特征进行判定。内容页又称为主题页,主题内容通常可以分解层次为: ①标题; ②发布时间; ③内容正文; ④相关文章或延伸性阅读。除了“内容正文”为必须元素外,其他几个元素都不一定会在内容页出现。根据对大量不同网页观察,各个元素的位置及表现形式虽无固定的标准,但是大部分却满足一定的特征。</p><p> </p><p>一.标题块</p><p>分块节点:td,div,h,span
一般位于Head/Title的位置
当前单元含有<h1>-<h3>,<b>,<i>,<strong>等标签
样式,一般class包含title,head等字符
文字长度,一般大于3个字符,小于35个字符</p><p> </p><p>二.发表时间块</p><p>分块节点:td,div, span
文字长度,一般小于50个字符
包含日期格式(2010-08-09)的字符串
包含以下关键字:来源,发表</p><p> </p><p>三.主题块</p><p>分块节点:td,div
HTML网页中有一些特殊标签,通常只出现在网页主题块中,如<P><BR>等。因此,主题块中往往包含着特殊标签。
主题块内容含有较多的句子,因此具有较多逗号、句号等标点符号(>5)。
若从信息量角度考虑,主题块一般是含有较多文字信息。
主题块的 标签密度=1000*标签数/文字数 应在小于一个范围。
主题块的 文本密度=len(文本)/len(HTML代码) 较大
不应该包含 “上一篇”,“下一篇”
包含以下字符串的内容块,判定为包含版权信息,需减权:“ICP备04000001号”,“版权所有”,“Copyright”
主题块序号在标题块之下
主题块序号在发表时间块之下
主题块序号在相关链接块之上</p><p> </p><p>四.相关链接块</p><p>分块节点:td,div
文字应为“相关链接”、“相关新闻”、“相关报道”等敏感词,且连接比例很高。
链接数小于20</p>

阅读剩余部分 -

将应用部署到公有云的五个要点

将应用部署到公有云的五个要点

云计算可以使基础设施更廉价、更灵活,我们可按需求对这些灵活基础设施进行创建、拆除、重新配置、扩张和收缩。但并不是所有的应用是按照云架构进行设计的。在本文中,您将了解到哪些应用的设计特点更适合云计算。本文将重点关注使用由国家标准和技术研究所定义的公共云。

阅读剩余部分 -

浅析C# treeview控件的使用方法

<div><p>C# treeview控件的使用方法步骤之一:</p><p>首先当窗体加载的时候,我们添加上图中所示的节点。</p><p>C# treeview控件的使用方法步骤之二:</p><p>当点击“Delete the Selected”按钮时,被选中的节点将被删除。</p><p>当点击“Edit the Selected”按钮式,被选中的节点变成修改状态,此时我们可以对其修改。</p><p>C# treeview控件的使用方法图 </p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>其代码如下:</p><pre> </pre><ol> <li>private void Form1_Load(object sender, EventArgs e)  </li> <li>{  </li> <li>    treeView1.LabelEdit = true;//可编辑状态。  </li> <li> </li> <li>,这个结点是根节点。  </li> <li>    TreeNode node = new TreeNode();  </li> <li>    node.Text = "hope";  </li> <li>    treeView1.Nodes.Add(node);  </li> <li>    TreeNode node1 = new TreeNode();  </li> <li>    node1.Text = "hopeone";  </li> <li>    TreeNode node11 = new TreeNode();  </li> <li>    node11.Text = "hopeoneone";            </li> <li>    TreeNode node2 = new TreeNode();  </li> <li>    node2.Text = "hopetwo";  </li> <li>    node1.Nodes.Add(node11);//在node1下面在添加一个结点。  </li> <li>    node.Nodes.Add(node1);//node下的两个子节点。  </li> <li>    node.Nodes.Add(node2);  </li> <li>      </li> <li>    TreeNode t = new TreeNode("basil");//作为根节点。  </li> <li>    treeView1.Nodes.Add(t);  </li> <li>    TreeNode t1 = new TreeNode("basilone");  </li> <li>    t.Nodes.Add(t1);  </li> <li>    TreeNode t2 = new TreeNode("basiltwo");  </li> <li>    t.Nodes.Add(t2);  </li> <li> </li> <li> </li> <li>}  </li> <li> </li> <li>private void button1_Click(object sender, EventArgs e)  </li> <li>{//点击该按钮的时候,会移除选中项  </li> <li>    treeView1.Nodes.Remove(treeView1.SelectedNode);  </li> <li>}  </li> <li> </li> <li>private void button2_Click(object sender, EventArgs e)  </li> <li>{//点击这个按钮的时候,可以修改选中项  </li> <li>    treeView1.SelectedNode.BeginEdit();  </li> <li>} </li></ol><p>注意:在使用这个属性的时候,必须设置treeView1.LabelEdit = true,否则会提示错误。</p></div>

阅读剩余部分 -

随机文章

最近回复

分类

其它

友情连接

推广链接