LNAMP 环境配置小结

前段时间配置 LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境,遇到过一些小问题,今天有空做个小结,正好也复习一下。

VPS 为 RamHost 的 Standard Plan,系统为 CentOS 5.5。

系统优化的不错,开机只占用 5M 内存,不过他家的 Debian 系统优化得更厉害,开机仅占用 3M,但同时也带来一些小问题:

1. Apache 启动故障:

直接在 /etc/rc.local 中添加 /usr/local/apache/bin/apachectl start 无法开机自启动,原因未知。解决方法:重建启动脚本,添加到系统服务,脚本如下: 继续阅读“LNAMP 环境配置小结”

Nginx Apache 日志分割脚本

现在 VPS 的 Web 环境是 LNAMP,效率很好,但配置 vhost 要麻烦一些,于是把原来 nginx 的日志分割脚本改成现在的:

#!/bin/bash
# This script run at 00:00

# The log path
nginx_log_path="/var/log/nginx/"
httpd_log_path="/var/log/httpd/"

# Yesterday
yesterday=$(date -d "yesterday" +"%Y-%m-%d")

mv ${nginx_log_path}access.log ${nginx_log_path}access_$yesterday.log

for log in ${httpd_log_path}*-access_log; do
        mv $log $log-$yesterday
done

kill -USR1 $(cat /var/run/nginx.pid)

kill -USR1 $(cat /var/run/httpd.pid)

继续阅读“Nginx Apache 日志分割脚本”

Nginx PHP-FPM 502 504 自动重启脚本

网上有很多方法了:增加 php-cgi 进程 增加时间 等等 试了很多都没法完全杜绝 502 和 504 的发生,而且一旦发生了 502 错误,而且我们又不在电脑旁时就可能会损失大量的流量,于是就想让服务器自动检测 php 是否运行正常,若不正常重启之,这样就可以在 php 出现 502 等情况时尽快恢复正常。完全杜绝的方法还在摸索中…

首先新建一个 x.php 文件放入网站根目录:

<?php echo 'onens.com';

然后 编写脚本 内容如下。此脚本并无判断是否是 502 还是 504 还是其他,只要 http 请求返回值不是 200,就重启!

vim restart-php-fpm.sh

#!/bin/sh
wget http://onens.com/x.php --spider

re=$?

if [ $re = "1" ]; then
    echo "##" "502" $(date +"%y-%m-%d %H:%M:%S") "restart php-fpm " | mail -s "Critical Info" 13888888888@139.com
    /etc/init.d/php-fpm restart
    echo "restart php-fpm"
fi

继续阅读“Nginx PHP-FPM 502 504 自动重启脚本”

Nginx PHP-FPM 服务脚本

nginxphp-fpm 添加到系统服务:

vim /etc/init.d/nginx
# Copy the "nginx" into "/etc/init.d/nginx"
chmod 755 /etc/init.d/nginx
chkconfig --level 345 nginx on
vim /etc/init.d/php-fpm
# Copy the "php-fpm" into "/etc/init.d/nginx"
chmod 755 /etc/init.d/php-fpm
chkconfig --level 345 php-fpm on
# Or simply:
echo "/usr/sbin/nginx" >> /etc/rc.local
# Stop
pkill -9 nginx
# Reload
/usr/sbin/nginx -s reload
echo "/usr/sbin/php-fpm -y /etc/php-fpm.conf" >> /etc/rc.local
# Stop
pkill -9 php-fpm

继续阅读“Nginx PHP-FPM 服务脚本”

[转] EPEL 快速安装 Nginx + PHP-FPM + MySQL

现在,我们可以快速全自动搞定 CentOS + Nginx + PHP-FPM + MySQL 的安装了。

这个可比网上流传的什么一键安装包要好得多,强烈推荐此法安装,适合所有菜鸟和高手
这个装完已经包含 php 的一些常用扩展:PDO, eAccelerator, memcache, tidy 等等

先新建一个 repo:

vim /etc/yum.repos.d/Centos-Base-21andy.repo

放入如下内容:

[21Andy.com]
name=21Andy.com Packages for Enterprise Linux 5 - $basearch
baseurl=http://www.21andy.com/centos/5/$basearch/
enabled=1
gpgcheck=0
protect=1

继续阅读“[转] EPEL 快速安装 Nginx + PHP-FPM + MySQL”

Windows 下快速配置 nginx + php 5.3

一、下载最新的稳定的 nginx 的版本:http://nginx.org/

解压到 D:\nginx,修改配置文件 D:\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;
#}

修改为:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  html$fastcgi_script_name;
    include        fastcgi_params;
}

继续阅读“Windows 下快速配置 nginx + php 5.3”