通知和轮询机制的区别 / 蓝讯

LAMP的搭建
时间: 06:42:21
&&&& 阅读:220
&&&& 评论:
&&&& 收藏:0
标签:&&&&&LAMP详细学习记录文档----------------仅供参考一、Apache--&configure apache时出错:[ httpd-2.4.12]#./configure --prefix=/application/apache2.4.12/ --enable-deflate --enable-expires --enable-headers --enable-modules=most --en&&& able-so --with-mrm=worker --enable-rewrite-------------------------------------------------------------------checking for APR... noconfigure: error: APR not found .& Please read the documentation-----------------------------------------------------------------checking for APR-util... noconfigure: error: APR-util not found.& Please read the documentation.--------------------------------------------------------------------checking for pcre-config... falseconfigure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/----------------------------------------------------------------------------&&&&&出错原因:缺失APR APR-util pcre 这三个包解决办法具体步骤如下:--&解决apr not found问题[ httpd]#wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz[ httpd]# tar -zxf apr-1.5.2.tar.gz &[ httpd]# cd& apr-1.5.2 &[ apr-1.5.2]# ./configure --prefix=/usr/local/apr &[ apr-1.5.2]# make && make install &--&解决APR-util not found问题[ httpd]#wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz[ httpd]# tar -zxf apr-util-1.5.4.tar.gz &[ httpd]# cd apr-util-1.5.4 &[ apr-util-1.5.4]#./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config &[ apr-util-1.5.4]# make && make install --&解决pcre问题[ httpd]#wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.36.zip[ httpd]#unzip -o pcre-8.36.zip &[ httpd]#cd pcre-8.36 &[ pcre-8.36]#./configure --prefix=/usr/local/pcre &[ pcre-8.36]#make && make install &&&&&安装pcre的时候可能出现如下问题:libtool: compile:& g++ -DHAVE_CONFIG_H -I. -c pcrecpp.cc& -o .libs/pcrecpp.o./libtool: line 990: g++: command not foundmake[1]: *** [pcrecpp.lo] Error 1make[1]: Leaving directory `/root/Downloads/pcre-8.10‘make: *** [all] Error 2&&&&&原因分析:没有安装gcc-c++组建解决过程:使用如下命令安装即可[ ~]# yum -y install gcc-c++安装完毕后再重新configure,make && make install&&&&&重新configure用如下命令apache ---漫长的等待[ httpd-2.4.12]#./configure --prefix=/application/apache2.4.12/ --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mrm=worker --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/& --with-pcre=/usr/local/pcre&&&&&重新编译安装[ httpd-2.4.12]make && make install&&&&&&& &&&&&又是漫长的等待&&&&&至此安装工作就已经完成了----以下是一些常用命令--&创建一个软链接--以方便维护人员使用管理,也方便后期升级工作[ httpd-2.4.12]#ln -s /application/apache2.4.12 /application/apache--&很重要的apache命令“/application/apache/bin/apachectl”--&1.启动[ httpd-2.4.12]#/application/apache/bin/apachectl start--&第一次使用会有如下提示信息,可以忽略。AH00558: httpd: Could not reliably determine the server‘s fully qualifieddomain name, using 218.30.64.194. Set the ‘ServerName‘ directive globally tosuppress this message--&在浏览器地址栏输入http://localhost或者http://本地ip地址 查看浏览器是否能显示“It work!”,是则安装成功,否则失败。--&失败排查工作--&1.查看防火墙与selinux是否已经关闭--&2.查看进程和端口号--&3.查看apache的错误日志 /application/apache/apache/logs/error_log--&make install时出错: /bin/sh /usr/local/httpd-2.2.3/srclib/apr/libtool --mode=install/usr/bin/install -c -m 755 libaprutil-1.la /usr/local/apache2/liblibtool: install: error: cannot install `libaprutil-1.la‘ to a directory notending in /usr/local/apache2/lib& www.2cto.com &make[2]: *** [install] Error 1猜测可能是以前安装用过./configure 来直接安装到/usr/local/apache2导致安装文件已经不太“干净”&解决方法:&1、执行make clean后,重新编译安装。&2、删除source&code目录,重新解压apache安装包,进行编译安装,可解决上面的问题。&另外,在处理FCGI安装时,也会默认安装到 apache2 目录,这时你需要 修改 Makefile&文件,将里面的目录进行更改。&&&&&部署一个简单的个人web站点--&我们可以先查看一下apache的默认站点目录[ ~]# ll /application/apache/htdocs/total 4-rw-r--r-- 1 root root 45 Jun 12& 2007 index.html[ ~]# [ ~]# cat /application/apache/htdocs/index.html &html&&body&&h1&It works!&/h1&&/body&&/html&[ ~]# --&我们可以发现在浏览器中测试apache是否安装成功的时候看到的内容就是这个index.html文件的内容--&所以我们只需要把我们的站点程序放在/application/apache/htdocs/目录下即可。--&访问我们的站点http://本地ip地址/*.html文件--&修改完配置文件一定要对配置文件进行语法检测,否则重启apache时可能启动失败。--&重启apache建议使用graceful参数进行重启--&graceful参数比较优雅,使正在浏览的用户无感知--&所以不会强行中断用户的访问请求,而是等待请求完毕后重启[ bin]# ./apachectl -tSyntax OK[ bin]# ./apachectl graceful[ bin]# ps -ef|grep httpd|grep -v greproot&&&&& 4666&&&& 1& 0 10:03 ?&&&&&&& 00:00:02/application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 17:31 ?&&&&&&& 00:00:00/application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 17:31 ?&&&&&&& 00:00:00/application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 17:31 ?&&&&&&& 00:00:00/application/apache2.4.12//bin/httpd -k start[ bin]# netstat -lnt |grep 80tcp&&&&&&& 0&&&&& 0 :::80&&&&&&&&&&&&&&&&&&&&&& :::*LISTEN&&&& &[ bin]#&&&&&安装日志轮询工具(在虚拟主机配置)[ software]# tar zxvf cronolog-1.6.2.tar.gz [ cronolog-1.6.2]# ./configure && make && make install--&查看是否安装成功[ cronolog-1.6.2]# ll /usr/local/sbin/cronolog -rwxr-xr-x 1 root root 33348 May 19 20:36 /usr/local/sbin/cronolog&&&&&基于域名的虚拟主机--常用--&1.修改httpd-vhosts.conf文件,加入如下内容&VirtualHost *:80&&& &ServerAdmin & ;服务器管理员邮箱&& &DocumentRoot "/var/blog"&& ;站点目录,要确保目录存在,否则语法检测汇出错&& &ServerName blog.etiantian.org& ;域名&& &ServerAlias etiantian.org&&&&& ;别名&& &ErrorLog "logs/blog-error_log"& ;错误日志文件&& &#CustomLog "logs/blog-access_log" common ;日志文件&& &CustomLog "|/usr/local/sbin/cronolog /app/logs/access_www_%Y%m%d.log" combined& ;使用日志工具(不能用相对路径)&/VirtualHost&--&2.在主配置文件加授权(若不对虚拟主机进行目录授权则会出现403错误)###############################--虚拟主机授权目录许可--################&Directory "/var/blog"&&& &Options FollowSymLinks&& ;不允许目录浏览&& &AllowOverride None&& & ;&& &Order allow,deny&& &Allow from all&/Directory&--&3.检查配置文件的语法[ bin]# ./apachectl -tSyntax OK[ bin]# ./apachectl graceful[ bin]# ps -ef|grep httpd|grep -v greproot&&&&& 4666&&&& 1& 0 10:03 ?&&&&&&& 00:00:02/application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 17:31 ?&&&&&&& 00:00:00/application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 17:31 ?&&&&&&& 00:00:00/application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 17:31 ?&&&&&&& 00:00:00/application/apache2.4.12//bin/httpd -k start[ bin]# netstat -lnt |grep 80tcp&&&&&&& 0&&&&& 0 :::80&&&&&&&&&&&&&&&&&&&&&& :::*LISTEN[ bin]#-----------------------虚拟主机配置完成!--------------------------------当检查语法出现如下提示的时候--解决方法为将虚拟主机里面NameVirtualHost字段删除即可AH00548: NameVirtualHost has no effect and will be removed in the next release/application/apache2.4.12/conf/extra/httpd-vhosts.conf:1Syntax OK&&&&&Forbidden(禁止访问) 403错误--------------------&1.apache配置文件没有站点目录的权限许可设置--&解决办法:如上文所述在主配置文件加站点目录授权--&检查语法--&重启--&2.站点目录没有主页文件,且在配置文件又阻止了目录浏览-&解决方法:在站点目录加入主页文件即可--&3.站点目录没有设置被web服务器访问的权限--&4.……&&&&&apache两种常用模式--&1.worker:有多个子进程,每个子进程又会有多个线程,每个线程在某个确定的时候只能维持一个连接。编译的时候加入参数“--with-mpm=worker” --线程与进程的结合。--&优点:资源占用比profork小,适合高并发高流量http服务。--&缺点:如果一个线程崩溃,整个进程就会连同其任何线程一起挂掉,稳定性不如profork模式。--&配置说明(配置文件:../conf/extra/httpd-mpm.conf)--需要注意的是要在主配置文件开启该配置文件。&&IfModule mpm_prefork_module& &&startServers&&&&&&&&& 3&&&&& #开始建立子进程,此处表示启动apache的时候就建立至3个子进程,默认最大是16,需要加大可以显式声明serverlimit(最大20000)&MinSpareTheads&&&&&&& 50&&&& #最小空闲线程数,此处表示空闲线程数小于5的时候,apache自动建立线程,如果服务器并发负载大的,建议加大该数 &MaxSpareTheads&&&&&&& 200&&& #最大空闲线程数,此处表示空闲线程数大于10的时候,apache自动kill掉多余线程,如果服务器并发负载大的,建议加大该数&ServerLimit&&&&&&&&&& 25&&&& #&MaxClients&&&&&&&&&&& 1600&& #apache并发连接数,最大客户端连接数,可以同时处理的请求数。此处表示有1000个用户在访问,并不是每秒有1000个请求。即第1001个&&用户就要等待之前的访问结束才能访问。&TheadLimit&&&&&&&&&&& 200&TheadsPerChild&& &&&&&&& 64&&&& #每个进程包含固定的线程数,是影响最大的参数,最大缺省为64,在负载较大的情况下,64是不够的,这是就需要显式使用Theadlimt指令,最大缺省是20000&MaxRequestsPerChild&& 5000&& #每个子线程课处理的请求数。即子线程处理完“最大请求数”以后自动销毁该子线程。0表示无限制,就是说线程永不销毁&/IfModule& --&常见计算--&worker最大请求量 = 子进程总数*Theadsperhild &= Maxclients--&MaxClients必须是TheadsPerChild的整数倍,否则apache会自动调节到相应的一个值。--&2.profork:使用多个子进程,每个子进程只有一个进程,每个进程在某个确定的时候只能维持一个连接。编译的时候加入参数 “--with-mpm=profork”,apache默认模式--进程模式--&优点:效率高,稳定,安全,对于线程调试困难的平台来说,调试更容易实现。--&缺点:和worker相比较,消耗资源更多。--&配置说明&IfModule mpm_prefork_module&startServers&&&&&&&&& 10&&&&&& #开始建立子进程,此处表示启动apache的时候就建立至10个子进程MinSpareServers&&&&&& 10&&&&&& #最小空闲进程数,此处表示空闲进程数小于5的时候,apache自动建立进程,如果服务器并发负载大的,建议加大该数MaxSpareServers&&&&&& 15&&&&&& #最大空闲进程数,此处表示空闲进程数大于10的时候,apache自动kill掉多余进程,如果服务器并发负载大的,建议加大该数ServerLimit&&&&&&&&&& 2000&&&& #同workerMaxClients&& &&&&&& 1000&&&& #apache并发连接数,最大客户端连接数,可以同时处理的请求数。此处表示有1000个用户在访问,并不是每秒有1000个请求。即第1001个用户就要等待之前的访问结束才能访问。MaxRequestsPerChild&& 5000&&&& #每个子进程课处理的请求数。即子进程处理完“最大请求数”以后自动销毁该子进程。0表示无限制,就是说进程永不销毁&/IfModule&--&查看本地安装的是哪个模式[ bin]#./apachectl -M|grep -E "worker|profork"mpm_worker_module (static)[ bin]#./apachectl -l|grep -E "worker|profork"worker.c[ bin]# --&查看apache当前的进程数--1.进程模式[ ~]# ps -ef|grep httpdroot&&&&& 1837&&&& 1& 0 07:45 ?&&&&&&& 00:00:00 /application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 07:45 ?&&&&&&& 00:00:00 /application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 07:45 ?&&&&&&& 00:00:00 /application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 07:45 ?&&&&&&& 00:00:00 /application/apache2.4.12//bin/httpd -k startdaemon&&& & 0 09:09 ?&&&&&&& 00:00:00 /application/apache2.4.12//bin/httpd -k startroot&&&&& & 0 09:39 pts/1&&& 00:00:00 grep httpd[ ~]# ps -ef|grep httpd|wc -l6[ ~]#--2.线程模式[ ~]# pstree -a|grep httpd|grep -v grep& |-httpd -k start& |&& |-httpd -k start& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& `-{httpd}& |&& |-httpd -k start& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& `-{httpd}& |&& |-httpd -k start& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& |-{httpd}& |&& |&& `-{httpd}& |&& `-httpd -k start& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& |-{httpd}& |&&&&&& `-{httpd}[ ~]# pstree -a|grep httpd|grep -v grep |wc -l109[ ~]# &&&&&生产环境常见的http状态码列表分析200&& &&& &#正常301403&&&&&&& #拒绝访问500502503504[ ~]# curl -I www.baidu.comHTTP/1.1 200 OKDate: Wed, 20 May :46 GMTServer: ApacheCache-Control: max-age=86400Expires: Thu, 21 May :46 GMTLast-Modified: Tue, 12 Jan :00 GMTETag: "51-4b4c7d90"Accept-Ranges: bytesContent-Length: 81Connection: Keep-AliveContent-Type: text/html---状态分析------TIME_WAIT 1&&&& --内核调优参数,修改linux内核参数---c/s建立TCP/IP连接完毕,关闭socket后,处理完请求正在等待关闭的状态。--CLOSE_WAIT 1&&& --远端已经关闭,等待sockt关闭。--FIN_WAIT 1&&&&& --连接已经关闭,socket正在等待远端结束。--ESTABLISHED 1&& --一个服务的并发连接数,正在建立的连接,处于连接状态的状态--重要--FIN_WAIT 1&&&&& &--SYN_RECV 1&&&&& --已经从网络收到一个连接请求--CLOSING 1&& && --socket已经关闭,但是我们仍旧没有发送数据。--LAST_ACK 1&& && --远端已经结束,socket已经关闭,等待acknowl-edgement。--&解决time_wait过高--1.减少状态的等待时间(超时时间)。--2.time_wait重用,即重新处理请求。--3.系统回收--&解决操作--内核参数--/etc/sysctl.confnet.ipv4.tcp_fin_timeout=2#--&表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2的状态时间--超时时间net.ipv4.tcp_tw_reuse=1#--&表示开启重用,允许重新用于TCP连接,默认为0,表示关闭net.ipv4.tcp_tw_recycle=1#--&表示开启TCP连接中TIME_WAIT的sockets的快速回收,默认为0,表示关闭。net.ipv4.tcp_syncookies=1#--&表示开启SYN-Coolies,当出现SYN等待队列溢出时,启用cookies来处理,可以防范少量SYN攻击,默认为0,表示关闭。net.ipv4.tcp_keepalive_time=1200#--&表示当keepalive启用的时候,TCP发送keepalive消息频度。默认是2h,现在改为20分钟。net.ipv4.ip_local_port_range=4000&&&&&& 65000#--&表示用于向外连接的端口范围。默认情况下很小:3,改为net.ipv4.tcp_max_syn_backlog=16384#--&表示SYN队列长度,默认长度1024,加大队列长度为16384,可以容纳更多等待连接的网络连接数。net.ipv4.tcp_max_tw_buckets=30000#--&表示系统同时保持TIMEWAIT套接字的最大数量,如果超过这个数字,TIMEWAIT套接字将立刻被清楚并打印警告信息。默认为180000,对于apache、nginx等服务器可以调低一点(),看业务而定。如lvs、squid可以大一点&&&&&基于ip的虚拟主机--少用--&1.增加一个ip(别名ip)--ifconfig eth0:89 down删除[ ~]# ifconfig eth0:89 192.168.24.89 netmask 255.255.255.0 up[ ~]# ifconfig eth0:89eth0:89&& Link encap:Ethernet& HWaddr 00:16:D4:20:C0:C0 &&& && inet addr:192.168.24.89& Bcast:192.168.24.255& Mask:255.255.255.0&& && UP BROADCAST RUNNING MULTICAST& MTU:1500& Metric:1&& && Interrupt:22 Base address:0xe800 [ ~]#--&检查是否可用(使用其他主机ping新添加的ip)[ ~]# ifconfig eth0|grep "inet addr"&&&&&&&&& inet addr:192.168.24.77& Bcast:192.168.24.255& Mask:255.255.255.0[ ~]# ping 192.168.24.89PING 192.168.24.89 (192.168.24.89) 56(84) bytes of data.64 bytes from 192.168.24.89: icmp_seq=1 ttl=64 time=0.153 ms64 bytes from 192.168.24.89: icmp_seq=2 ttl=64 time=0.176 ms^C--- 192.168.24.89 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1726msrtt min/avg/max/mdev = 0.153/0.164/0.176/0.017 ms[ ~]# --&2.建立虚拟主机--可以与基于域名的虚拟主机配置文件进行比较&VirtualHost 192.168.24.89:80&&& &ServerAdmin && &DocumentRoot "/application/apache/htdocs/moshan"&& &ServerName 192.168.24.89&& &ServerAlias moshan.com&& &ErrorLog "logs/blog/blog_error_log"&& &# CustomLog "logs/blog/blog-access_log" common&& &CustomLog "|/usr/local/sbin/cronolog/app/logs/access_www_%Y%m%d.log" combined&/VirtualHost&--&3.测试--直接在浏览器输入对应的ip地址&&&&&基于端口的虚拟主机--不常用--局域网使用--域名和端口/ip和端口混合--&1.增加端口在主配置文件添加[ ~]# vim /application/apache/conf/httpd.confListen 80Listen 8080Listen 8090--&修改虚拟主机的配置文件(ip/域名)&VirtualHost 192.168.24.89:8080&&& &ServerAdmin && &DocumentRoot "/application/apache/htdocs/moshan"&& &ServerName 192.168.24.89&& &ServerAlias moshan.com&& &ErrorLog "logs/blog/blog_error_log"&& &CustomLog "|/usr/local/sbin/cronolog/app/logs/access_www_%Y%m%d.log"combined&/VirtualHost&&VirtualHost *:8080&&& &ServerAdmin && &DocumentRoot "/application/apache/htdocs/moshan"&& &ServerName 192.168.24.89&& &ServerAlias moshan.com&& &ErrorLog "logs/blog/blog_error_log"&& &CustomLog "|/usr/local/sbin/cronolog/app/logs/access_www_%Y%m%d.log"combined&/VirtualHost&--&3.测试。在浏览器直接输入192.168.24.89:8080&&&&&mod_deflate压缩模块----apache调优选项--&1.安装该模块---检查是否安装该模块--dso方式编译[ modules]# ll mod_deflate.so-rwxr-xr-x 1 root root 70954 May 19 09:52 mod_deflate.so[ modules]# [ modules]# grep mod_deflate.so /application/apache/conf/httpd.conf#LoadModule deflate_module modules/mod_deflate.so&& --安装完毕以后在主配置文件会多出这一行,启用mod_deflate模块时在主配置文件里取消该行的注释。--若没有安装可以使用如下方式安装[ metadata]# pwd/root/Downloads/apach/httpd-2.4.12/modules/metadata&& --切换到apache解压的目录[ metadata]# ll |grep ".c$"&&&&&&&&&&&&&&& --查找需要安装的模块是否存在-rw-r--r-- 1 501 games 11688 Apr 15& 2013 mod_cern_meta.c-rw-r--r-- 1 501 games& 5405 Dec 12& 2012 mod_env.c-rw-r--r-- 1 501 games 18396 May& 7& 2014 mod_expires.c-rw-r--r-- 1 501 games 32800 Jun& 3& 2014 mod_headers.c-rw-r--r-- 1 501 games 11012 Dec 14& 2011 mod_ident.c-rw-r--r-- 1 501 games 73995 Nov 16& 2013 mod_mime_magic.c-rw-r--r-- 1 501 games 15400 Feb 17& 2014 mod_remoteip.c-rw-r--r-- 1 501 games 22673 Apr 26& 2013 mod_setenvif.c-rw-r--r-- 1 501 games 16170 Dec& 5& 2011 mod_unique_id.c-rw-r--r-- 1 501 games 15371 Jun 17& 2014 mod_usertrack.c-rw-r--r-- 1 501 games& 8640 Oct 24& 2010 mod_version.c[ ~]# /application/apache/bin/apxs -a -i -a /root/Downloads/apach/httpd-2.4.12/modules/metadata/mod_flate.c& --使用apxs工具编译安装--c 编译操作--i 安装操作--a 自动增加一行LoadModule到httpd.conf文件中。--&2.启用该模块--在虚拟主机文件中添加如下代码--在httpd-vhosts.conf文件的&VirtualHost*:8080&&/VirtualHost&中添加&ifmodule mod_deflate.c&&& &DeflateCompressionLevel 9&&&&&&&&&&&&& #压缩等级,数值越大效率越高&& &SetOutputFilter DEFLATE&& &&& &&&&&&& #启用压缩&& &AddOutputFilterByType DEFLATE text/html text/plain text/xml&& &#以下三行为设置压缩类型&& &AddOutputFilterByType DEFLATE application/javascript&& &AddOutputFilterByType DEFLATE text/css&/ifmodule&--某公司使用的配置&ifmodule mod_deflate.c&&& &DeflateCompressionLevel 9&& &SetOutputFilter DEFLATE&& &AddOutputFilterNote Input instream&& &AddOutputFilterNote Output outstream&& &AddOutputFilterNote Ratio ratio&/ifmodule&--&3.通过firefox浏览器进行测试--yslow工具或者直接通过curl -I命令测试,比较前后的头&&&&&mod_expires模快--调优选项--优点:--1.提升用户体验--2.节约网站带宽--3.服务器压力减小,节约维护成本--介绍:允许数据在用户的浏览器端进行缓存,当第一次访问某个apache服务器的时候,就会将数据加载到浏览器的缓存,在缓存的有效期之内,客户端再请求同样的内容的时候,就不需要再到服务器进行下载,直接读取本地的缓存,mod_expires模块就是设置缓存有效期的功能。--&dso方式编译检查是否安装该模块[ modules]# grep mod_expires.so /appapp/&&&&&&&& application/ [ modules]# grep mod_expires.so /application/apache/conf/httpd.conf#LoadModule expires_module modules/mod_expires.so[ modules]# --&该模块的常规安装方式参考上文的mod_deflate模块--&1.模块在httpd.conf中的应用--将以下内容完整的拷贝到httpd.conf文件结尾保存,所有的虚拟主机都会生效。--全局生效ExpiresActive onExpiresDefault "access plus 12 months"ExpiresByType text/html "access plus 12 months"&&&&&& #缓存时间设置为12个月,具体可以根据自己的业务需求设定。ExpiresByType text/css "access plus 12 months"ExpiresByType image/gif "access plus 12 months"ExpiresByType image/jpeg "access plus 12 months"ExpiresByType image/jpg "access plus 12 months"ExpiresByType image/png "access plus 12 months"ExpiresByType application/x-shockwave-flash "access plus 12 months"ExpiresByType application/x-javescript "access plus 12 months"ExpiresByType video/x-flv "access plus 12 months"--&2.模块在httpd-vhosts.conf中的应用--将以下内容完整的拷贝到httpd-vhosts.conf文件结尾保存& --局部生效ExpiresActive onExpiresDefault "access plus 12 months"ExpiresByType text/html "access plus 12 months"ExpiresByType text/css "access plus 12 months"ExpiresByType image/gif "access plus 12 months"ExpiresByType image/jpeg "access plus 12 months"ExpiresByType image/jpg "access plus 12 months"ExpiresByType image/png "access plus 12 months"ExpiresByType application/x-shockwave-flash "access plus 12 months"ExpiresByType application/x-javescript "access plus 12 months"ExpiresByType video/x-flv "access plus 12 months"--&expires失效条件--1.用户主动清空缓存。--2.缓存时间到期。&&&&&apache优化--1.配置cronolog进行日志轮询。--2.错误页面优雅显示。--重定向到其他页面--httpd.conf Errorocument 404 http://www.baidu.com--3.mod_deflate文件压缩功能。--4.mod_expires缓存功能。--5.更改apache的默认用户。(不被别人猜到)--6.使用worker模式,提升并发数。--7.屏蔽apache版本等敏感信息。--修改httpd-default.conf文件Serverignature off Serverokens Prod--8.apache目录权限设置。(root目录权限755,文件644)--9.开启httpd-mpm.conf增加连接数。--10.apache防盗链功能。-----网站元素不允许嵌套到别的网站--11.禁止目录索引。(特别是没有主页文件的情况)--12.禁止用户重载。--13.关闭CGI。--14.避免使用。htaccess文件。(分布式配置文件)--15.apache安全模块。----mod_evasive20&&&& 防DDOS----nod_limitipconn&& 针对单站点----mod_security2&&&& 防止SQL注入----make jail&&&&&&&& 自动建立jail所需要的程序放到jail内的软件--16.正确途径取得源代码,多大apache补丁。--17.apache日志授予root 700权限。--18.系统内核优化。--19.禁止PHP解析指定站点的目录。--20.使用tmpfs文件系统代替频繁访问的目录。--21.尽可能减少HTTP请求数。--22.使用CDN做网站加速。---存放静态资源(网宿、快网、蓝讯……)--23.apache程序架构优化。程序页面服务器、图片附件服务器、上传服务器,三者尽量分离(独立服务器)二、MYSQL http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz--1.建立Mysql帐号[ ~]# groupadd mysql[ ~]# useradd -s /sbin/nologin -g mysql -M mysql[ ~]# tail -n 1 /etc/groupmysql:x:501:[ ~]# tail -n 1 /etc/passwdmysql:x:501:501::/home/mysql:/sbin/nologin[ ~]# --2.configure[ mysql-5.1.62]#./configure --prefix=/usr/local/mysql --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --with-pthread --enable-assembler --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugin=partition,innobase --with-plugin-PLUGIN --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static可能出现的错误--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sockconfigure: error: No curses/termcap library found原因:缺少ncurses安装包解决:[ mysql-5.1.62]# yum install ncurses-devel -y》》参数说明----详细请看./configure --help--prefix=/usr/local/mysql&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 指定安装路径默认为/usr/local--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock&&&&&&&&&&&& 指定mysql.sock文件存放路径--localstatedir=/usr/local/mysql/data&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 指定数据文件存放位置--enable-assembler && &&& &&& &&& &&& &&& &&&& 允许使用汇编模式--性能优化选项--enable-thread-safe-client && &&& &&& &&& &&& &&&& 使用线程方式编译客户端&& &&& &&& &&& &&&&&&&&&& &--with-mysqld-user=mysql && &&& &&& &&& &&& &&&& 指定mysql运行的系统账户--with-big-tables --with-pthread &&& &&& &&& &&& &&& &&& &&&& 强制使用pthread线程序库编译--enable-assembler --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugin=partition,innobase --with-plugin-PLUGIN --with-mysqld-ldflags=-all-static && &&& &&& &&& &&&&& 服务器使用静态哭--性能优化选项--with-client-ldflags=-all-static&& &&& &&& &&&&&&&&&&&&& 客户端使用静态哭--性能优化选项--&重新configure----------------漫长的等待[ mysql-5.1.62]#./configure --prefix=/usr/local/mysql --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --with-pthread --enable-assembler --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugin=partition,innobase --with-plugin-PLUGIN --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static--3.编译[ mysql-5.1.62]#make && make install&& ---------------漫漫漫长的等待--4.编译安装完成。--&mysql的默认配置文件 /etc/my.cnf&& 以下为mysql提供的配置文件模板[ mysql-5.1.62]# ll support-files/*.cnf-rw-r--r-- 1 root root& 4714 May 21 20:41 support-files/my-huge.cnf-rw-r--r-- 1 root root 19763 May 21 20:41 support-files/my-innodb-heavy-4G.cnf&& 建议认真阅读一遍,进行注释-rw-r--r-- 1 root root& 4688 May 21 20:41 support-files/my-large.cnf-rw-r--r-- 1 root root& 4699 May 21 20:41 support-files/my-medium.cnf-rw-r--r-- 1 root root& 2467 May 21 20:41 support-files/my-small.cnf[ mysql-5.1.62]# /bin/cp support-files/my-small.cnf /etc/my.cnf&& 根据个人业务需求选择合适的模板--5.创建数据库文件(configure指定的参数路径),并授权[ mysql-5.1.62]#make -p /usr/local/mysql/data[ mysql-5.1.62]#chown -R mysql /usr/local/mysql--6.安装mysql数据库文件[ mysql-5.1.62]#/usr/local/msyql/bin/mysql_install_db --user=mysql--安装可能遇到的错误ERROR: 1004& Can‘t create file ‘/tmp/#sql23e7_1_0.frm‘ (errno: 13)按照如下方式解决:重新给/tmp目录授权777即可解决[ mysql-5.1.62]# chmod 777 /tmp/--7启动mysql--多种方式----1.[ mysql-5.1.62]# /usr/local/mysql/bin/mysqld_safe &&&&&& [ mysql-5.1.62]# netstat -lnt|grep 3306&&&&& tcp&&&&&&& 0&&&&& 0 0.0.0.0:3306&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&& &&&&&& [ mysql-5.1.62]# ----2.[ bin]# cp/root/Downloads/mysql-5.1.62/support-files/mysql.server ./& 到源码目录复制启动脚本到安装路径下的/bin目录&&&&& [ bin]# chmod 700 mysql.server&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 授权700&&&&& [ bin]# ./mysql.server &&&&& [ bin]# ./mysql.server start&& &&& &&& &&& &&& &&& &启动&&&&& Starting MySQL SUCCESS! &&&&& [ bin]# &&&&& [ bin]# netstat -lnt|grep 3306&&&&& tcp&&&&&&& 0&&&&& 0 0.0.0.0:3306&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&&&&&&& LISTEN&&&& &&&&&& [ bin]# ps -ef|grep mysqld |grep -v grep&&&&& root&&&&& & 0 21:12 pts/2&&& 00:00:00 /bin/sh& /usr/local/mysql/bin/mysqld_safe&&&&& [ bin]# &&&&& [ bin]# mysql -uroot -pzzmoshan&&& 登录遇到如下错误的话可以按下问进行解决&& &ERROR ): Access denied for user ‘root‘@‘localhost‘ (using password:NO)&& &ERROR ): Access denied for user ‘root‘@‘localhost‘ (using password:YES)--我就是遇到了上面的问题,后来百度看了很多的博文,按照博友的方法,但都没有解决。--博友们的方法基本都是围绕着mysqladmin和update来解决的并没有考录到root用户不存在的可能。--解决办法(视情况而定)--上面的问题的原因,我个人认为是因为root密码丢失或者root用户不存在造成的--所以可以对mysql数据库的user表进行查询看看root是否存在。但是不管是哪种原因,--解决问题的前期的准备工作都是一样的,即要进入mysql数据库,可以按如下方式进入。--开始解决[ bin]# ./mysql.server stop&&&&&&&&&&&&&&&&&&&&& 先关闭mysql的服务[ bin]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &&& 然后加入这几个选项进行启动mysql服务 &[1] 8324[ bin]# :50:00 mysqld_safe Logging to‘/usr/local/mysql/data/moshan.err‘.:50:00 mysqld_safe Starting mysqld daemon with databases from/usr/local/mysql/data[ bin]# mysql -u root mysql&&&&& -------------------------------------- 直接回车就能进入mysql数据库&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &Welcome to the MySQL monitor.& C or \g.Your MySQL connection id is 1Server version: 5.1.62 Source distributionCopyright (c) , Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql&Database changedmysql& select user from mysql.&&&&&&&& 发现是空的--由此猜测不存在root用户Empty set (0.00 sec)mysql& insert into user set user=‘root‘,ssl_cipher=‘‘,x509_issuer=‘‘,x509_subject=‘‘;& 所以使用insert语句插入root用户,并授权即解决了问题Query OK, 1 row affected (0.00 sec)mysql& update user set Host=‘localhost‘,select_priv=‘y‘,insert_priv=‘y‘,update_priv=‘y‘,Alter_priv=‘y‘,delete_priv=‘y‘,create_priv=‘y‘,drop_priv=‘y‘,reload_priv=‘y‘,shutdown_priv=‘y‘,Process_priv=‘y‘,file_priv=‘y‘,grant_priv=‘y‘,References_priv=‘y‘,index_priv=‘y‘,create_user_priv=‘y‘,show_db_priv=‘y‘,super_priv=‘y‘,create_tmp_table_priv=‘y‘,Lock_tables_priv=‘y‘,execute_priv=‘y‘,repl_slave_priv=‘y‘,repl_client_priv=‘y‘,create_view_priv=‘y‘,show_view_priv=‘y‘,create_routine_priv=‘y‘,alter_routine_priv=‘y‘,create_user_priv=‘y‘ where user=‘root‘;&&& 为新增加的root用户授予系统权Query OK, 1 row affected (0.00 sec)Rows matched: 1& Changed: 1& Warnings: 0mysql& quit&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -----------------------------------退出Bye[ bin]# mysql -u root&&&&&&& ----------------------------------使用root登录Welcome to the MySQL monitor.& C or \g.Your MySQL connection id is 2Server version: 5.1.62 Source distributionCopyright (c) , Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql& update mysql.user set password=password(‘zzmoshan‘) where user=‘root‘;----------------------------为root添加密码Query OK, 1 row affected (0.00 sec)Rows matched: 1& Changed: 1& Warnings: 0mysql&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ----------------------使设置生效(也可以重启mysql服务)Query OK, 0 rows affected (0.00 sec)mysql& quit&&&&&&&&&&&&&&&&&&&&&&&&& ---------------------------------退出 Bye[ bin]# ps&&&&&&&&&&&&&&& ------------查找mysql_safe进程idPID TTY&&&&&&&&& TIME CMD4637 pts/0&&& 00:00:00 bash5112 pts/0&&& 00:00:00 mysqld_safe&&&&&& &5744 pts/0&&& 00:00:00 ps[ bin]# kill 5112&&&&&&& --------------将其kill掉[ bin]# mysql.server start& -------------重启mysql服务Starting MySQL SUCCESS! [ bin]# mysql -uroot -pzzmoshan&& -------------- 正常进入mysqlWelcome to the MySQL monitor.& C or \g.Your MySQL connection id is 3Server version: 5.1.62 Source distributionCopyright (c) , Oracle and/or its affiliates. All rightsreserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current inputstatement.mysql& select user();+----------------+| user()&&&&&&&& |+----------------+|
|+----------------+1 row in set (0.00 sec)mysql&+--------------------+| Database&&&&&&&&&& |+--------------------+| information_schema || moshan&&&&&&&&&&&& || mysql&&&&&&&&&&&&& || test&&&&&&&&&&&&&& |+--------------------+4 rows in set (0.00 sec)mysql& ------问题解决-----大功告成---&配置/etc/init.dmysqld start方式启动[ support-files]# find / -name mysql.server&& ---找到mysql的启动脚本mysql.server/root/Downloads/mysql-5.1.62/support-files/mysql.server[ bin]# cp /root/Downloads/mysql-5.1.62/support-files/mysql.server /etc/init.d/mysqld&&& 添加到/etc/init.d下并改名为mysqld &[ bin]# /etc/init.d/mysqld stopShutting down MySQL. SUCCESS! [ bin]# /etc/init.d/mysqld startStarting MySQL. SUCCESS! [ bin]#三、PHP--&PHP的安装要依赖于apache和mysql和一些lib库,所以要先检查安装apache、mysql环境和lib库是否已经安装。--1.检查apache和mysql环境[ bin]# netstat -lnt | egrep "3306|80"tcp&&&&&&& 0&&&&& 0 0.0.0.0:3306&&&&&&&&&&&&&&& 0.0.0.0:*&&&&&&&&&&&&& LISTEN&&&& &tcp&&&&&&& 0&&&&& 0 :::8080&&&&&&&&&&&&&&&&&&&& :::*&&&&&&&&&&&&&&&&&& LISTEN&&&& &tcp&&&&&&& 0&&&&& 0 :::80&&&&&&&&&&&&&&&&&&&&&& :::*&&&&&&&&&&&&&&&&&& LISTEN&&&& &[ bin]# ------------以下两步操作是检查mysql和apache的版本的--可以省略[ bin]# ./apachectl -vServer version: Apache/2.4.12 (Unix)Server built:&& May 19 :40&&& --搭建于[ bin]# mysql -uroot -pzzmoshan -e "select version();"+-----------+| version() |+-----------+| 5.1.62&&& |+-----------+[ bin]# [ bin]# wget 127.0.0.1-- 09:07:45--& http://127.0.0.1/Connecting to 127.0.0.1:80... connected.HTTP request sent, awaiting response... 200 OKLength: K) [text/html]Saving to: “index.html”100%[===================================================================================================================&]4,948&&&&&& --.-K/s&& in 0s&&&& & 09:07:45 (99.4 MB/s) - “index.html” saved [][ bin]#--------------------以上表明apache能正常访问。由于mysql在查找版本的时候是调用内部的vertion函数,所以也已经表明能正常访问。--2.检查lib库[ ~]# rpm -qa zlib-devel libxm12-devel libjpeg-devel freetype-devel libpng-develfreetype-devel-2.3.11-15.el6_6.1.i686zlib-devel-1.2.3-29.el6.i686libxm12-devel-2.7.6-17.el6_6.1.i686libjpeg-turbo-devel-1.2.1-3.el6_5.i686libpng-devel-1.2.49-1.el6_2.i686[ ~]#&& 缺少lib包的朋友可以自行通过yum安装或者源码安装。--安装libiconv包(自行选择版本)& http://ftp.gnu.org/pub/gnu/libiconv[ libiconv-1.14]# tar zxf libiconv-1.14.tar.gz [ libiconv-1.14]# cd libiconv-1.14[ libiconv-1.14]# ./configure --prefix=/usr/local/libiconv[ libiconv-1.14]# make && make install--&由此可见,我的机器环境搭建完成。下面可以进行PHP的安装了。http://cn.php.net/get/php-5.5.25.tar.gz/from/a/mirror[ Downloads]# tar zxf php-5.5.25.tar.gz[ Downloads]# cd php-5.5.25[ Downloads]# ./configure \--prefix=/application/php-5.5.25 \&&&&&&&& #指定路径--with-apxs2=/application/apache/bin/apxs \#类似dso加载 dso编译方式--with-mysql=/usr/local/mysql \&&&&&&&&&&& #依赖mysql--with-xmlrpc \--with-openssl \--with-zlib \--with-freetype-dir \--with-gd \--with-jpeg-dir \--with-png-dir \--with-iconv=/usr/local/libiconv \--enable-short-tags \--enable-sockets \--enable-zend-multibyte \--enable-soap \--enable-mbstring \--enable-static \--enable-gd-native-ttf \--with-curl \--with-xsl \--enable-ftp \--with-libxml-dir--注:--enable-sigchild --enable-pcntl --enable-bcmath 这几个选项适合nagios的php监控------configure报这个错误--表示没有libxsl-devel包,通过yun安装即可configure: error: xslt-config not found. Please reinstall the libxslt &= 1.1.0distribution------然后重新configure即可Thank you for using PHP.&& configure完成[ php-5.5.25]# make && make install&&&& --------编译安装------------需要很长时间---看到如下内容表示安装成功Wrote PEAR system config file at: /application/php-5.5.25/etc/pear.confYou may want to add: /application/php-5.5.25/lib/php to your php.iniinclude_path/root/Downloads/php-5.5.25/build/shtool install -c ext/phar/phar.phar/application/php-5.5.25/binln -s -f /application/php-5.5.25/bin/phar.phar/application/php-5.5.25/bin/pharInstalling PDO headers:&&&&&&&&& /application/php-5.5.25/include/php/ext/pdo/---配置php[ php-5.5.25]# ln -s /application/php-5.5.25 /application/php---查看php的配置文件[ php-5.5.25]# ll php.ini-*-rw-r--r-- 1 236 May 14 08:02 php.ini-development----------------开发版-rw-r--r-- 1 266 May 14 08:02 php.ini-production-----------------产品版 --生产环境用的[ php-5.5.25]# ------两者的区别可以通过diff工具进行比较---配置apache支持php--1.修改apache的主配置文件(做好备份)[ php-5.5.25]# cp php.ini-production /application/php/lib/php.ini&& -----默认配置文件[ conf]# vim httpd.conf----1.先将ServerName 127.0.0.1:80的注释去掉,即要使这句生效----2.在下面1、2两行的后面加入3、4行内容1.AddType application/x-compress .Z2.AddType application/x-gzip .gz .tgz3.AddType application/x-httpd-php .php .php34.AddType application/x-httpd-php-source .phps5.AddType application/x-httpd-php .php .phpml----3.将系统默认daemon用户改为普通用户moshan(根据自己的情况修改)User moshanGroup moshan----4.添加php的主页文件&IfModule dir_module&&& &DirectoryIndex& index.php index.html&/IfModule&----5.检查语法并重启[ apache]# ./bin/apachectl -tSyntax OK[ apache]# ./bin/apachectl graceful[ apache]#[ apache]# netstat -lnt|grep 80tcp&&&&&&& 0&&&&& 0 :::8080&&&&&&&&&&&&&&&&&&&& :::*&&&&&&&&&&&&&&&&& LISTEN&&&& &tcp&&&&&&& 0&&&&& 0 :::80&&&&&&&&&&&&&&&&&&&&&& :::*&&&&&&&&&&&&&&&&& LISTEN&&&& &[ apache]# ps -ef|grep httpd|grep -v startroot&&&& & 0 11:21 pts/0&&& 00:00:00 grep httpd[ apache]----编写php主页文件并授可执行权限[ htdocs]# cat index.php &?phpphpinfo();?&[ htdocs]# ll index.php -rwxr-xr-x 1 root root 20 May 23 11:28 index.php[ htdocs]# ---测试--在浏览器输入本机ip即可=======需要注意的一点--要将虚拟主机配置在httpd.conf中注释掉--测试连接mysql是否成功编辑index.php文件,加入如下内容。&?php&& &$link=mysql_connect("localhost","root","zzmoshan");&& &if(!$link) echo "FAILD!";&& &else echo "OK!";?&---网页出现OK!的则表示连接成功。-----------------------------------------------------------------------------------&搭建个人博客站点--1.下载博客程序https://cn.wordpress.org/wordpress-4.2.2-zh_CN.zip--2.解压缩至站点目录,并授权目录相应的权限[ apache]# chown -R root.root htdocs/[ apache]# chown -R moshan.moshan ./htdocs/wp-content/--3.建立wordpress数据库及帐号[ ~]# mysql -uroot -pzzmoshanmysql& create database wordpress default character set gbk collategbk_chinese_Query OK, 1 row affected (0.08 sec)mysql&+--------------------+| Database&&&&&&&&&& |+--------------------+| information_schema || moshan&&&&&&&&&&&& || mysql&&&&&&&&&&&&& || test&&&&&&&&&&&&&& || wordpress&&&&&&&&& |+--------------------+5 rows in set (0.09 sec)mysql& grant select,insert,delete,update,create on wordpress.* to identified by ‘zzmoshan‘;Query OK, 0 rows affected (0.09 sec)mysql&Query OK, 0 rows affected (0.04 sec)mysql& select user,host from mysql.+-----------+-----------+| user&&&&& | host&&&&& |+-----------+-----------+| root&&&&& | localhost || wordpress | localhost |+-----------+-----------+2 rows in set (0.00 sec)mysql& mysql& grant select,insert,delete,update on wordpress.* to* identified by ‘zzmoshan‘;--4.创建wp-config.php文件& 访问后面的地址按照提示创建即可--http://blog.moshan.com本文出自 “” 博客,请务必保留此出处标签:原文地址:http://7998660.blog.51cto.com/4520
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 长轮询 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信