2009年01月19日

LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin+eAcelerator一键安装包(2011年12月14日更新)

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。

LNMPA是在LNMP的基础上产生的新的扩展,目前LNMP一键安装包的用户可以直接升级到LNMPA(Nginx、MySQL、PHP、 Apache),由Nginx作为前端处理静态页面、js、图片等,Apache作为后端处理PHP,解决高并发时php-cgi的502问题,提高服务 器处理动态内容的能力及稳定性。

LNMP一键安装包官网:http://lnmp.org/

LNMP一键安装包 0.8 & LNMPA已经在VPSYOU(感谢提供测试VPS)、DiaHosting(感谢提供测试VPS)、PhotonVPS(感谢提供测试VPS)、vpszzMyHost123瑞豪开源VPSBurstNetLinodeYardVPSDirectSpaceThrustVPSBuyVM123Systems等多家美国VPS的CentOS、Debian、Ubuntu的32位和64位系统上测试通过(CentOS/Debian 均为5.0以上版本,Ubuntu为9.04以上版本),个别128MB小内存CentOS 64位模板存在问题,小内存请尽量选择32位。 (更多...)

  • » 阅读全文...
  • 2009年01月18日

    Nginx关闭日志

    用Nginx做Web服务器,如果没有处理好日志,日志文件可能会很恐怖~10G、20G

    可以修改nginx.conf 找到access_log:

    access_log /dev/null;
    error_log /dev/null;

    这样全部把他们丢到系统的黑洞里了
    不用每时每刻都往系统磁盘疯狂的读写日志了 还延长硬盘的寿命

    修改完,重启Nginx( kill -HUP `cat logs/nginx.pid` )即可。

  • » 阅读全文...
  • 2009年01月17日

    由于应用程序配置不正确 应用程序未能启动

    今天在家里的电脑使用VMware虚拟机精简版 6.5的时候提示“由于应用程序配置不正确 应用程序未能启动”。只要安装下微软的Microsoft Visual C++ 2005 SP1即可。至于引起这个问题的原因可能是破解精简的时候默认电脑里安装了这个程序,所以就去给掉了。 点击下载:Microsoft Visual C++ 2005 SP1

    另外以下某人说的非常有理!
    vc  2005对系统级dll(如msvcrt.dll)的依赖性检查比以前更严格,不能像以前那样直接随exe打包然后简单放在安装机器的搜索目录中,操作系统自带的msvcrt.dll   只是供操作系统使用的。
    以下是自己想起在学校学VC++时想起的~~
    对于程序员来讲在开发中可以使用一些两种方法把问题解决:
    1、静态链接:
    修改项目属性,静态链接mfc库(静态链接时,会自动修改上面提到的多线程DLL为多线程)。
    2、动态链接:
    拷贝msvcrt.dll ,和Microsoft.VC80.CRT.manifest文件到XP机上。
  • » 阅读全文...
  • 2009年01月16日

    Windows下Nginx以服务的方式运行

    从wnmp发布以来,很多朋友就问Windows下如何将Nginx加入服务中,以便于服务器重启后自动运行,我在朋友的留言中回复了,可能不是很好找,便整理在此,便于需要的朋友查找。

    假设nginx安装在c:\nginx\下:

    1.下载微软服务注册工具srvany.exe, instsrv.exe, srvany-instsrv存放到c:\nginx\目录下

    2.安装Nginx服务, 将命令行切换到c:\nginx\,执行下列命令

    instsrv NGINX c:\nginx\srvany.exe

    3.在c:\nginx\下,新建一个nginx.reg文件,输入一下内容:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
    "Application"="C:\\nginx\\nginx.exe"
    "AppParameters"=""
    "AppDirectory"="C:\\nginx\\"

    5.让服务与程序关联起来, 命令行执行

    regedit /s nginx.reg

    6.编辑启动nginx脚本start-nginx.bat(关闭脚本不用变), 让程序以服务方式运行

    @ECHO OFF
    net stop nginx
    net start nginx
    EXIT

    完成~

    最近一直在研究Linux下的Nginx自动安装,呵呵,鼓励大家迁移到Linux平台...

  • » 阅读全文...
  • 2009年01月9日

    CentOS 5.2安装以后的一些初始化操作

    1、建立一个普通权限的用户
    因为root用户对系统具有全权的操作权限,为了避免一些失误的操作,建议在一般情况下,以一般用户登录系统,必要的时候需要root操作权限时,再通过“su -”命令来登录为root用户进行操作。
    useradd pysche
    passwd pysche
    usermod -G wheel pysche
    修改pam配置,使非wheel组用户不能使用su命令登录为root:
    vi /etc/pam.d/su
    找到
    #auth required /lib/security/$ISA/pam_wheel.so use_uid
    将行首的 # 去掉。
    然后
    vi /etc/login.defs
    在文件末尾加上
    SU_WHEEL_ONLY yes
    2、安装yum加速工具,并更新系统
    yum install yum-fastestmirror -y
    yum upgrade -y
    3、安装mlocate工具
    yum install mlocate -y
    4、root邮件的修改
    在系统出现错误或有重要通知发送邮件给root的时候,让系统自动转送到我们通常使用的邮箱中,这样方便查阅相关报告和日志。
    vi /etc/aliases
    在文件末尾加上
    root: pysche@ipbfans.org
    5、locate命令设置
    vi /etc/updatedb.conf
    在末尾增加
    DAILY_UPDATE=yes
    然后运行
    updatedb
    6、关闭不必要的服务
    比如cups
    /etc/init.d/cups stop
    chkconfig cups off
    除了以下服务以外,其他服务默认的都可以采用刚才的方法关闭:
    atd
    crond
    irqbalance
    lvm2-monitor
    microcode_ctl
    network
    sendmail
    sshd
    syslog
    7、停止ipv6
    vi /etc/modprobe.conf
    在文件末尾加上
    alias net-pf-10 off
    alias ipv6 off
    8、关闭SELinux
    vi /etc/selinux/config
    将其中的
    SELINUX=enforcing
    改为
    SELINUX=disabled
    9、安装sudo工具
    yum install sudo -y
    安装好了以后,修改sudo的配置
    vi /etc/sudousers
    # %wheel ALL=(ALL) NOPASSWORD:ALL
    去掉前面的 # , 然后保存文件。
    这样修改了以后,只有所有属于wheel组的用户能执行sudo命令,并且执行sudo命令时只需要输入自己的密码即可。
    10、修改SSH配置
    vi /etc/ssh/sshd_config
    增加ServerKey的强度
    找到
    #ServerKeyBits 768
    改为
    ServerKeyBits 1024
    不允许root用户直接登录
    #PermitRootLogin Yes
    改为
    PermitRootLogin no
    禁止空密码登录
    找到
    #PermitEmptyPasswords no
    去掉前面的 #
    全部修改完了以后,重启服务器
    init 6
  • » 阅读全文...
  • Apache升级到了Nginx的几个注意点

    最近把整站从apache升级到了nginx,客户的站点大概有30台服务器大部分架构位tomcat+apache,只有一个php页面
    一下是我升级遇到的几个问题的注意点

    1.
    当我们去访问服务器上的一个目录时候,他不会自动加上一个/ ,浏览器会给出改页无法打开的错误,这个时候浏览器去取的地址实际上是upstream中所写的地址和端口或如果没有使用upstream时 当使用localhost做servername时候 浏览器会去访问http://127.0.0.1/dir
    解决办法
    在每个虚拟主机的server定义中加上
    if (-d $request_filename) {
                               rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
                    }
    注意 root字段的定义也一定要出现在server中 如果server中没有定义root 错误还将存在
    例子:
    server {
                    listen                800;
                    server_name www.1.com;
                    root   /opt/1-index;   //这边定义了 就会在目录访问的时候加上/  如果这边没有定义这个 上面的url重写依然不会生效
                    include                vhost/alias.conf;
                    include                vhost/proxy.conf;
                    if (-d $request_filename) {
                               rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
                    }
                    error_page   405 =200 @405;
                    location @405 {
                    proxy_pass      http://PROXY_STATIC;
                    }
                    location / {
                            root   /opt/1-index;        //只在这边定义是没有用的,这边甚至可以不做定义
                            rewrite ^/(\d+)\.home$ /index.html?userId=$1 last;
                            index  index.html index.htm;
                    }                       

    2.url重写的注意事项:
    原有的url支持正则  重写的url不支持正则
    rewrite ^/(\d+)\.home$ /index.html?userId=$1 last;
    这个重写中 ^/(\d+)\.home$ 这部分支持正则
    而/index.html?userId=$1
    不要用正则 也不匹配正则 /index.html?*userId=$1 这样他就会去找.html?*userId=$1这个url 然后给你个404 not found

    3.post方式去访问静态文件
    Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。(但是之前程序在apache上跑 没问题)
    如果有这个需求呢 就要做如下配置了
    error_page   405 =200 @405;
                    location @405 {
                    proxy_pass      http://PROXY_STATIC;
            #        root /usr/local/nginx/html;
                    }
    把所有405错误重定向成200 然后吧所有405错误的请求全部交给一个代理去执行
    或者写上本地路径,因为我的路径比较多 所以重定向请求到一台web服务器上了

    4.。关于防盗链
    1.com的需求是 不是从本来来的请求给除一个403
    因为在虚拟主机里配置毫无作用 可能是我们用的是虚拟目录的缘故
    所以我们直接对目录做的防盗链
    在alias里
    别名配置
                    location /res/ {
                    alias   /opt/Src/;
                    valid_referers none blocked server_names *.1.com ;
                    if ($invalid_referer) {
            return 403;
                    }
            }

    5,关于动态请求转发
    location  ~ ^/login/(.*\.do)$ {
                    proxy_pass      http://login ;
            proxy_set_header  X-Real-IP  $remote_addr;
    }
    ~ ^/login/(.*\.do)$ 这个表示 凡是匹配/login/ 下 .do的都转发到一个upstream池里处理 这里的$符号并不起多大作用 只要是有.do的他会全部转 并不是以.do结尾的才转

    6.关于php上传文件大小的问题
    只改php里的配置是没有用的
    需要更改的地方还有nginx的配置

    client_max_body_size 10M;
    他的默认值是1M;

    以上就是基本的注意点

    (本文转载自CU论坛)

  • » 阅读全文...
  • 2009年01月7日

    Linux下Nginx+PHP+MySQL+phpMyAdmin+eAcelerator自动编译安装软件 预告

    此软件基于CentOS,主要应用与VPS,并在SWVPS.comthenynoc.com上测试成功.

    软件已发布:LNMP-Linux下Nginx+PHP+MySQL+phpMyAdmin+eAcelerator一键安装包

    此软件包含Nginx、PHP、MySQL、phpMyAdmin、eAcelerator,方便管理员已经想在自己的VPS上或独立主机上安装使用Nginx的站长使用。

    本软件将于近期发布,敬请期待......

  • » 阅读全文...
  • 2009年01月4日

    WordPress 2.7 启用 GZip压缩输出页面

    WordPress 2.5 以后就关闭了 GZip 功能。可以使用以下几种方法中适合自己的方法开启:
    方法1:

    在根目录 index.php 中找到:
    define(’WP_USE_THEMES’, true);
    在后面加上:
    ob_start(’ob_gzhandler’);
    就OK了。

    也可以加一点条件判断:
    if(ereg(’gzip’,$_SERVER['HTTP_ACCEPT_ENCODING'])){ //判断浏览器是否支持Gizp
    if(substr($_SERVER['REQUEST_URI'],0,10)!=’/wp-content/uploads/’) //排除不需要Gzip压缩的目录
    ob_start(’ob_gzhandler’); //打开Gzip压缩
    }

    方法2:

    如果服务器支持.htaccess文件,那么在wordpress根目录的.htaccess增加以下代码,如果没有.htaccess则新建后增加代码。增加完成后上传到wordpress根目录后即可。
    php_value output_handler ob_gzhandler

    方法3:

    通过php.ini 启用Gzip, 添加如下代码来开启gzip。

    output_buffering = Off
    output_handler =
    zlib.output_compression = On

    zlib.output_compression_level = 6

    zlib.output_compression_level = < 任何1—9的值,1的压缩比率最低, 建议取 6>

    需要注意的是如果在.htaccess文件中禁止了gzip功能的话,那在php.ini文件中开启后需在.htaccess文件中开启,否则无效。
    开启wordpress的gzip功能后,服务器将在页面传输前将页面压缩后传送,可以有效减少服务器的带宽使用,也可以加速页面下载。
    这个网站可以查看页面是否启用 GZip,以及启用后页面的压缩率。

    我用的GoDaddy的虚拟主机,能够自己重定义 php.ini,如果是PHP5就修改php5.ini~ 用 http://www.gidnetwork.com/tools/gzip-test.php 查看一下 ~压缩了72.8% ~ 速度也提升了~

    WordPress 2.7 启用 GZip压缩输出页面

    注意:这样就可以给所有php文件进行gzip压缩了。注意的是,这样启用gzip之后需要将程序原来的gzip功能去掉,例如discuz等的gzip不要启用,否则程序会报错。

  • » 阅读全文...
  • WordPress页面模板选项丢失解决办法

    最近碰到比较郁闷的事,在新建页面时,新建页面右边的页面模板选项总是不显示。如图:

    原来是edit-page-form.php里面代码里面有个地方需要修改下。

    找到<?php if ( 0 != count( get_page_templates() ) ) { ?> 修改成 <?php if ( 110 != count( get_page_templates() ) ) { ?>即可。

    对了edit-page-form.php在wp-admin 文件夹里面。

    注意:修改代码后可能不会立即显示出来,需要你更好为其他主题,再换为你的主题,就可以了载下拉列表中选择你的模板了。

  • » 阅读全文...
  • 2009年01月2日

    Dreamweaver使用正则表达式批量替换网页内容

    今天看到播布客上几个视频比较好,于是准备下载~但是太懒,不想一个一个的下,就运用一下Dreamweaver正则表达式替换。

    播布客视频的地址有一定的规律,如 http://www.boobooke.com/v/bbk1234  这个是在线观看的地址,下载地址是 http://www.boobooke.com/v/bbk1234.zip

    先将网页上的所有视频地址复制到Dreamweaver,再打“开查找替换”功能。

    查找:  http://www.boobooke.com/v/bbk(\d)   替换:http://www.boobooke.com/v/bbk$1.zip

    这样就完成了替换工作~很简单

    附 Dreamweaver替换正则表达式表:

    字符 匹配 示例
    ^ 输入或行的起始部分。 ^T 匹配“This good earth”中的“T”,但不匹配“Uncle Tom's Cabin”中的“T”。
    $ 输入或行的结尾部分。 h$ 匹配“teach”中的“h”,但是不匹配“teacher”中的“h”
    * 0 个或多个前置字符。 um* 匹配“rum”中的“um”、“yummy”中的“umm”以及“huge”中的“u”
    + 1 个或多个前置字符。 um+ 匹配“rum”中的“um”和“yummy”中的“umm”,但在“huge”中没有任何匹配项
    ? 前置字符最多出现一次(即,指示前置字符是可选的)。 st?on 匹配“Johnson”中的“son”和“Johnston”中的“ston”,但在“Appleton”和“tension”中没有任何匹配项
    . 除换行符外的任何单字符。 .an 匹配短语“bran muffins can be tasty”中的“ran”和“can”
    x|y x 或 y。 FF0000|0000FF 匹配 bgcolor=”#FF0000” 中的“FF0000”和 font color=”#0000FF” 中的“0000FF”
    {n} 恰好 n 个前置字符。 o{2} 匹配“loom”中的“oo”和“mooooo”中的前两个“o”,但在“money”中没有任何匹配项
    {n,m} 至少 n 个、至多 m 个前置字符。 F{2,4} 匹配“#FF0000”中的“FF”和“#FFFFFF”中的前四个“F”
    [abc] 用括号括起来的字符中的任何一个字符。用连字符指定某一范围的字符(例如, [a-f] 等效于 [abcdef])。 [e-g] 匹配“bed”中的“e”、“folly”中的“f”和“guard”中的“g”
    [^abc] 未在括号中括起来的任何字符。用连字符指定某一范围的字符(例如,[^a-f] 等效于[^abcdef])。 [^aeiou] 最初匹配“orange”中“r”、“book”中的“b”和“eek!”中的“k”
    \b 词边界(例如空格或回车符)。 \bb 匹配“book”中的“b”,但在“goober”和“snob”中没有任何匹配项
    \B 词边界之外的任何内容。 \Bb 匹配“goober”中的“b”,但在“book”中没有任何匹配项
    \d 任何数字字符。等效于 [0-9]。 \d 匹配“C3PO”中的“3”和“apartment 2G”中的“2”
    \D 任何非数字字符。等效于 [^0-9]。 \D 匹配“900S”中的“S”和“Q45”中的“Q”
    \f 换页符。  
    \n 换行符。  
    \r 回车符。  
    \s 任何单个空白字符,包括空格、制表符、换页符或换行符。 \sbook 匹配“blue book”中的“book”,但在“notebook”中没有任何匹配项
    \S 任何单个非空白字符。 \Sbook 匹配“notebook”中的“book”,但在“blue book”中没有任何匹配项
    \t 制表符。  
    \w 任何字母数字字符,包括下划线。等效于 [A-Za-z0-9_]。 b\w* 匹配“the barking dog”中的“barking”以及“the big black dog”中的“big”和“black”
    \W 任何非字母数字字符。等效于 [^A-Za-z0-9_]。 \W 匹配“Jake&Mattie”中的
  • » 阅读全文...