博客架设前,试用了很多相关程序,包括drupal,dedecms,wordpress等,甚至单文件的TiddlyWiki. 个人觉得TiddlyWiki在本地使用是很方便的,只是放在网上管理上会比较麻烦.drupal在定制一番后,也蛮好用,麻烦就麻烦在要定制不少东西.最后决定用wordpress,相对drupal来说,wordpress上手要容易得多,特别是新版本的wordpress 3的menu很好用.
WP3计划放在安装了centos5的VPS上,使用源代码编译安装apache,mod_php以及mysql三大件.Nginx要下次再换了,因为现在最新版本的php5.3.2编译成fpm方式比较麻烦.好在fpm已经进入PHP的SVN了,不久就应该有官方的fpm出来.
安装过程写在下面,方便以后重个装,查个找什么的.
安装apache
从官方网站 http://httpd.apache.org/ 下载 httpd-2.2.15.tar.gz 把所有扩展功能都编译成模块,用--enable-modules=all与--enable-mods-shared=all二个参数.把all替换成most,则只编译大部分模块,或者指定模块名.懒人用all吧,编译完成后再去配置文件里,去掉不要的功能.
tar vzxf httpd-2.2.15.tar.gz cd httpd-2.2.15 ./configure --prefix=/usr/local/apache2 \ --enable-modules=all \ --enable-mods-shared=all
apache的配置文件在PHP安装完成后再修改.
安装mysql
从官方网站http://mysql.com下载mysql-5.1.35.tar.gz 其实mysql的安装,用yum最方便,我自己编译安装,是yum update时省点流量.虽然这个VPS流量挺多...
tar -vzxf mysql-5.1.35.tar.gz cd mysql-5.1.35 ./configure --prefix=/usr/local/mysql \ --enable-assembler \ --with-charset=utf8 \ --enable-thread-safe-client \ --with-extra-charsets=all \ --with-big-tables \ --with-readline \ --with-ssl \ --with-embedded-server \ --enable-local-infile make && make install groupadd mysql useradd -g mysql mysql cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf /usr/local/mysql/bin/mysql_install_db --user=mysql chown -R mysql /usr/local/mysql/var chgrp -R mysql /usr/local/mysql/. cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql chmod 755 /etc/init.d/mysql echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf echo "/usr/local/lib" >>/etc/ld.so.conf ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql ln -s /usr/local/mysql/include/mysql /usr/include/mysql ldconfig
安装完成后,修改/etc/my.cnf文件.用#注释掉skip-networking,开启TCP监听.
#skip-networking
并在之后插入下面这行,只在本机监听:
bind-address=127.0.0.1
安装PHP
centos没有现成的libiconv包,所以在编译PHP之前要手动编译下libiconv. 要用最新的1.13.1才行,1.13我这里编译后PHP死活找不到.
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar -zxvf libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/libiconv make make install
从http://php.net上下载php-5.3.2.tar.gz 现在可以编译PHP子,有一个老长老长的编译参数:
tar vzxf php-5.3.2.tar.gz cd php-5.3.2.tar.gz ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-iconv=/usr/local/libiconv \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-magic-quotes \ --enable-safe-mode \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --with-curlwrappers \ --enable-mbregex \ --enable-mbstring \ --with-mcrypt \ --enable-ftp \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-zip \ --enable-soap \ --without-pear \ --with-gettext make make install
安装后php说是会自动修改/usr/local/apache/conf/httpd.conf文件,检查了下,发现
LoadModule php5_module modules/libphp5.so
会被自动加入,但还是要手工添加
AddType application/x-httpd-php .php
把这行放到任意一个AddType行之后就行.
再次修改apache的配置文件/usr/local/apache/conf/httpd.conf,去掉所有不必要模块(用#注释掉相应的LoadModule行),只保留下面几个:
LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule dir_module modules/mod_dir.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule php5_module modules/libphp5.so
查找
<IfModule dir_module> DirectoryIndex index.php index.html index.htm </IfModule>
加入index.php作为默认页面. 用#注释所有以Order用Deny开头的行:
#Order deny,allow #Deny from all
查找
#Include conf/extra/httpd-mpm.conf
去掉前面的#,并修改httpd-mpm.conf,考虑到现在来我这的客人会比较少,数字填写小点,省点内存.要想过好日子,能省点就省点吧...
<IfModule mpm_prefork_module> StartServers 3 MinSpareServers 3 MaxSpareServers 5 MaxClients 50 MaxRequestsPerChild 500 </IfModule>
其中MaxRequestsPerChild默认值为0.最好改为非0值,500,1000都可.这样一个apache子进程在做完500个份内工作后,会光荣退休,换新鲜血液上来,防止他一直霸占工作岗位.
启动mysql及apache
麻烦的东西都安装好了,现在可以启动mysql和apache了.
/etc/init.d/mysql start /usr/local/apache2/bin/apachectl start
安装wordpress3 从http://wordpress.org下载最新版本的wordpress,我下载的是3.0
wget http://wordpress.org/latest.tar.gz tar vzxf latest.tar.gz mv wordpress/* /usr/local/apache2/htdocs
这样就把wp3放到apache默认网站的根目录了
安装wp3前,要先安装phpmyadmin,用来操作mysql数据库.yum install phpmyadmin 或者直接官网下载解开就好.放在htdocs/db下. 默认mysql root口令为空,如果是新版本的phpmyadmin,要修改一下其配置文件config.inc.php,才能正常login.
$cfg['Servers'][$i]['AllowNoPassword'] = true;
默认为false,改为true就好.没有这行就不用管.
先在firefox打开 http://站点ip或域名/db ,首先修改root口令,然后在mysql里单独建立一个新用户如wp及新库如wp,并将库wp的所有权限授予新用户wp.完成后刷新下权限表.
再打开 http://站点ip或域名 就可以正常安装wordpress了,数据库地址填写localhost 或127.0.0.1,最好mysql新用户wp对应的host字段也是localhost.
可能存在的问题 安装程序如果提示配置文件wp-config.php无法创建,大部分原因是因为htdocs目录的权限问题. 先查找用户名
cat /usr/local/apache2/conf/httpd.conf | grep -1 Group # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for -- User daemon Group daemon
可见apache是以daemon的身份运行的,更改用户并查看结果
chown -R daemon.daemon /usr/local/apache2/htdocs ls -ld /usr/local/apache2/htdocs/ drwxr-xr-x 6 daemon daemon 4096 Jul 15 22:33 /usr/local/apache2/htdocs/
再运行wordpress安装程序就能自动建立配置文件了.以后也不会出现wordpress安装插件或升级时,要输入连接信息的错误.
到这里安装就差不多完成了.接下来就是配置插件等内容了.有空再慢慢写.