Cherokee设置WordPress伪静态规则

Cherokke设置wordpress的伪静态需要在后台操作。我们假设你已经添加好wordpress的虚拟主机devops.webres.wang,下面我们介绍如何配置wordpress伪静态。
1、选择创建好的虚拟主机,切换到“行为”,点击“规则管理”,把所有已存在的规则删除,除了默认的。
2、选择默认规则,切换到“处理程序”,处理程序下拉框选择“转发”,点击“Add New RegEx”增加转发规则,在转发规则对话框中,显示选择“内部”,正则表达式输入^(.+)$,替换输入index.php。
3、增加目录规则,网页目录输入“/wp-admin”,切换到处理程序,处理程序选择“列表和发现”。
4、克隆两次第三步的规则,分别把网页目录更改为/wp-content和/wp-includes。
5、最后添加php扩展支持。如不明白如何操作,请参考http://devops.webres.wang/2011/11/cherokee-vhost-configure/
配置的最终结果如图:
Cherokee
6、最后点save-》重载

Cherokee配置虚拟主机支持PHP

上次我们学习了cherokee php mysql的安装,但安装完全可以正常打开静态文件,但无法访问php文件,因为这需要配置cherokee支持PHP。下面学习cherokee虚拟主机配置。

1、登录cherokee后台

执行cherokee-admin -b命令获取后台密码,执行命令之后请不要中断或关闭当前ssh,否则无法登录后台。如图:
Cherokee

2、更换后台语言为简体中文

在后台的首页右侧,Language的下拉菜单选择chinese simplfied,如图:
Cherokee

3、添加数据源

1、切换Sources,点击左侧的“+”添加数据库:
Cherokee
2、在添加数据源对话框输入昵称php-fpm(可以输入任何),连接:/tmp/php-cgi.sock。
Cherokee
3、配置数据源。在类型选择“本地解析器”,解释器输入

  1. /usr/local/php/sbin/php-fpm –fpm-config /usr/local/php/etc/php-fpm.conf

之后点击右上角的save保存数据,接着点击“重载”。
Cherokee

4、添加配置虚拟主机

1、切换“vServers”,点击左侧“+”新建虚拟主机。在手动配置中的昵称输入域名(如:devops.webres.wang),输入网站根目录(如/home/www/devops.webres.wang,必须是已存在的目录),点击“增加”新建虚拟主机。
Cherokee
2、在目录列表中输入“index.html,index.php”定义默认首页
Cherokee
3、切换到“行为”,点击规则管理,删除已存在的两个规则。并点击“+”增加新规则。
Cherokee
4、配置规则。在增加规则对话框,选择规则类型为“扩展”,在扩展中输入“php”,并勾选“check”,点击“增加”添加规则。
Cherokee
5、切换到处理程序,在处理程序下拉框中选择“快速CGI”,在下面的负载均衡中选择“Round Robin”,设置数据源中应用程序选择刚才设置的数据源昵称”php-fpm”,点击save保存。
Cherokee
6、验证是否配置成功。在/home/www/devops.webres.wang目录下新建文件p.php,输入

  1. <?php
  2. phpinfo();
  3. ?>

如果能正常显示php配置信息,则表示已经配置成功,如图:
Cherokee

CentOS 创建本地YUM软件库

首先从CentOS官方源(msync.centos.org),同步一份本地镜像(约7G左右),然后禁用原有的源,并创建一个本地的.repo仓库文件。

一、Rsync 同步脚本

  1. wget http://devops.webres.wang/wp-content/uploads/2011/11/rsync_repo.sh
  2. vim rsync_repo.sh //修改"local"值(本地镜像存放路径)
  3. chmod 755 rsync_repo.sh
  4. ./rsync_repo.sh

二、禁用原有的源

注:你也可以直接编辑.repos文件,加上参数”enabled=0″禁用源。

  1. for i in `ls /etc/yum.repos.d/`;do mv /etc/yum.repos.d/$i /etc/yum.repos.d/$i.bak;done

禁用fastestmirror插件,再也不需要这东西了。

  1. sed -i ‘s/plugins=1/plugins=0/g’  /etc/yum.conf

三、创建本地.repo文件

注意记得修改默认的”/mnt/hgfs/e/CentOS”本地镜像路径

  1. wget http://devops.webres.wang/wp-content/uploads/2011/11/CentOS-Local.repo -P /etc/yum.repos.d
  2. chmod 644 /etc/yum.repos.d/rsync_repo.sh
  3. yum -y update

来源:https://wangyan.org/blog/centos-local-yum-repo.html

CentOS安装Cherokee php mysql

Cherokee 号称是目前最快的 Web 服务器软件,Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。Cherokee 内含一个名为 cherokee-admin 的工具,执行后,允许管理员直接通过浏览器进入 http://localhost:9090/ 对其进行管理和配置。比如,开启或关闭服务器,进行一般选项的设定,配置虚拟服务器、信息源、图标、Mime 类型等项目。下面以centos 5.5 32位系统为例介绍如何安装cherokee php mysql。

安装mysql

安装必要软件包

  1. yum -y install make gcc gcc-c++ ncurses-devel

下面的rpm只适用于CentOS-5 32位,其它的到http://mirrors.sohu.com/fedora-epel/这里查找。

  1. rpm -Uvh http://mirrors.sohu.com/fedora-epel/5/i386/epel-release-5-4.noarch.rpm

下载软件

  1. cd /tmp
  2. wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.17.tar.gz/from/http://mysql.he.net/
  3. wget -c http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz
  4. wget -c http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

安装cmake和bison

  1. cd /tmp
  2. tar zxvf cmake-2.8.6.tar.gz
  3. cd cmake-2.8.6
  4. ./bootstrap
  5. make && make install
  6. cd /tmp
  7. tar zxvf bison-2.5.tar.gz
  8. cd bison-2.5
  9. ./configure
  10. make && make install

开始安装mysql

  1. /usr/sbin/groupadd mysql
  2. /usr/sbin/useradd -g mysql mysql
  3. cd /tmp
  4. tar xvf mysql-5.5.17.tar.gz
  5. cd mysql-5.5.17/
  6. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
  7. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
  8. -DDEFAULT_CHARSET=utf8
  9. -DDEFAULT_COLLATION=utf8_general_ci
  10. -DWITH_EXTRA_CHARSETS=all
  11. -DWITH_MYISAM_STORAGE_ENGINE=1
  12. -DWITH_INNOBASE_STORAGE_ENGINE=1
  13. -DWITH_MEMORY_STORAGE_ENGINE=1
  14. -DWITH_READLINE=1
  15. -DENABLED_LOCAL_INFILE=1
  16. -DMYSQL_DATADIR=/var/mysql/data
  17. -DMYSQL_USER=mysql
  18.  
  19. make && make install

一些相关设置

  1. chmod +w /usr/local/mysql
  2. chown -R mysql:mysql /usr/local/mysql
  3. ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
  4. mkdir -p /var/mysql/
  5. mkdir -p /var/mysql/data/
  6. mkdir -p /var/mysql/log/
  7. chown -R mysql:mysql /var/mysql/
  8. cd support-files/
  9. cp my-medium.cnf /var/mysql/my.cnf
  10. cp mysql.server /etc/rc.d/init.d/mysqld
  11.  
  12. /usr/local/mysql/scripts/mysql_install_db
  13. –defaults-file=/var/mysql/my.cnf
  14. –basedir=/usr/local/mysql
  15. –datadir=/var/mysql/data
  16. –user=mysql
  17.  
  18. chmod +x /etc/init.d/mysqld

vi /etc/init.d/mysqld(编辑此文件,查找并修改以下变量内容:)

  1. basedir=/usr/local/mysql
  2. datadir=/var/mysql/data
  1. chkconfig –add mysqld
  2. chkconfig –level 345 mysqld on
  3. service mysqld start
  4. /usr/local/mysql/bin/mysqladmin password [new-password]

安装PHP

安装必要软件包

  1. yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel autoconf pcre-devel libtool-libs freetype-devel gd libmcrypt-devel zlib-devel zip unzip gettext

开始安装php

  1. cd /tmp
  2. groupadd www
  3. useradd -s /sbin/nologin -g www www
  4. wget -c http://cn2.php.net/get/php-5.3.8.tar.gz/from/this/mirror
  5. tar xzvf php-5.3.8.tar.gz
  6. cd php-5.3.8
  7. ./configure –prefix=/usr/local/php –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d  –with-libxml-dir –with-openssl –with-zlib –with-curl –enable-ftp –with-gd –with-jpeg-dir –with-png-dir –with-zlib-dir  –with-freetype-dir –enable-gd-native-ttf –with-gettext –enable-mbstring –with-mcrypt  –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –without-pear
  8. make && make install
  9. cp php.ini-production /etc/php.ini
  10. cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  11. cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf

编辑php-fpm.conf,找到如下字段,删除前面的”;”号

  1. pid = run/php-fpm.pid
  2. pm.start_servers = 20
  3. pm.min_spare_servers = 5
  4. pm.max_spare_servers = 35

找到:

  1. listen = 127.0.0.1:9000

改为:

  1. listen = /tmp/php-cgi.sock
  1. chmod 755 /etc/init.d/php-fpm
  2. chkconfig –add php-fpm
  3. chkconfig –level 345 php-fpm on
  4. /etc/init.d/php-fpm start

安装cherokee

  1. yum -y install rrdtool
  2. groupadd www
  3. useradd -s /sbin/nologin -g www www
  4. wget http://www.cherokee-project.com/cherokee-latest-tarball -O -| tar zxvf –
  5. cd cherokee-1.2.101
  6. ./configure –prefix=/usr/local/cherokee –with-wwwroot=/home/www –with-wwwuser=www –with-wwwgroup=www
  7. make && make install
  8. wget http://devops.webres.wang/wp-content/uploads/2011/11/cherokee -O /etc/init.d/cherokee
  9. chmod +x /etc/init.d/cherokee
  10. chkconfig –add cherokee
  11. chkconfig –level 345 cherokee on
  12. ln -s /usr/local/cherokee/sbin/cherokee-admin /usr/sbin/
  13. service cherokee start

现在你已经可以访问默认的chreokee页面,执行cherokee-admin -b命令得到后台密码,并通过localhost:9090进入后台。关于配置cherokee支持PHP请看http://devops.webres.wang/2011/11/cherokee-vhost-configure/

服务不支持chkconfig

今天chkconfig –add nginx的时候,出现nginx 服务不支持chkconfig。
如果想让服务支持chkconfig,必须定义服务的启动级,启动优先级,关闭优先级,还有描述,如下

  1. # chkconfig: 345 85 15
  2. # description: Nginx is an HTTP server

345是启动级,85和15分别是启动优先级,关闭优先级,下面的就是描述了。

nginx alias的设置

nginx也有像apache的别名功能,格式为:

  1. location ~ /alias {
  2.     root           /home/www/default;
  3.     index          index.php;
  4. }

但nginx在处理php脚本时,需要传递给fastcgi才能处理,所以比apache的别名设置多一个,下面我们以phpmyadmin别名设置为例:

  1. location ~ ^/phpmyadmin.+.php$ {
  2.     root          /home/www/default;
  3.     fastcgi_pass   127.0.0.1:9000;
  4.     fastcgi_index  index.php;
  5.     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  6.     include        fastcgi_params;
  7. }
  8. location ~ /phpmyadmin {
  9.     root           /home/www/default;
  10.     index          index.php;
  11. }

wordpress启用memcached

wordpress启用memcached需要环境符合两个条件,1,安装了php-memcached扩展,2,安装了memcached
1、启用方法很简单,如果你的memcached启用的是默认端口11211,则只需要下载object-cache.php文件到wp-content目录即可。
2、如果端口不是11211或者需要配置多台memcached,则需要修改wp-config.php文件,在文件中加入下面代码。

  1. global $memcached_servers;
  2. $memcached_servers = array(‘default’ => array(‘127.0.0.1:11211′,’192.168.1.101:11211’)); // 这里是你的 memcached 地址和端口
  3. global $blog_id;
  4. $blog_id = ‘centos_blog’; // 这里是用于区分服务器上有多个 wordpress 而避免使用同一内存缓存

CentOS安装mysql分布式缓存服务器memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。下面我们来一步步安装memcached。
1、首先为PHP安装扩展memcache。参考如下教程。
http://devops.webres.wang/2011/11/linux-install-php-memcache/
2、安装libevent

  1. yum -y install libevent-devel

3、下载memcached

  1. wget -c http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz
  2. tar xzf memcached-1.4.9.tar.gz
  3. cd memcached-1.4.9

4、开始编译安装memcached

  1. ./configure –prefix=/usr/local/memcached
  2. make
  3. make install

5、配置memcached
1)下载启动脚本

  1. wget http://devops.webres.wang/wp-content/uploads/2011/11/memcached -O /etc/init.d/memcached
  2. chmod +x /etc/init.d/memcached

2)创建文件/usr/local/memcached/memcached.conf,并写入以下代码。

  1. PORT="11211"
  2. USER="memcached"
  3. MAXCONN="2048"
  4. CACHESIZE="64"
  5. OPTIONS=""

PORT=”11211″:指定端口为11211
USER=”memcached”:以memcached用户运行
MAXCONN=”2048″:最大连接数
CACHESIZE=”64″:设置缓存内存为64M
3)建立用户memcached,加入启动项,并启动memcached

  1. groupadd memcached
  2. useradd -g memcached memcached
  3. chkconfig –add memcached
  4. chkconfig memcached on
  5. service memcached start

Linux安装php扩展memcache

php扩展memcache的作用是为了支持memcached数据库缓存服务器,下面是安装方法。
1、下载并解压memcache文件

  1. wget -c http://pecl.php.net/get/memcache-3.0.6.tgz
  2. tar xzvf memcache-3.0.6.tgz
  3. cd memcache-3.0.6

2、执行phpize扩展安装程序,假设phpzie的路径为/usr/local/php/bin/phpize,具体的路径得根据自己的环境修改。

  1. /usr/local/php/bin/phpize

3、开始安装扩展memcache

  1. ./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
  2. make && make install

4、最后修改php.ini文件,在zend之前加入如下代码。

  1. [memcache]
  2. extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
  3. extension=memcache.so

解决apache与vsftpd写入权限共存问题

我们有时候会遇到apache有写入权限时,vsftpd又不能上传,反过来,vsftpd能上传,但apache又没有写入权限了。我们现在来看看如何解决这个问题。解决的思路是,把ftp用户添加到apache用户组,并设置用户组有写入权限。
假设现在我们建有ftp用户为:centos,httpd进程以apache用户运行。
1、添加centos到用户组apache

  1. usermod -a -G apache centos

2、设置网站根目录/var/www的所有组为apache

  1. chown -R :apache /var/www

3、设置网站根目录的权限为用户组有读写权限

  1. chmod -R g+rw /var/www

最后还需要确认vsftpd的配置文件中的local_umask=002,这是使新上传的文件的用户组有写入权限。