VPS搭建环境过程

#author:wubolu
#date:20110115
#system:CentOS 5.5 64bit
#mysql-5.5.9 + nginx-0.9.4 + php-5.3.5
 
指定以后的HTTP文件目录
groupadd www
useradd -g www www
mkdir -p /usr/local/www/
chmod +w /usr/local/www/
chown -R www:www /usr/local/www/
 
创建mysql用户
groupadd mysql
useradd -g mysql mysql
 
 
安装前首先使用yum命令安装、升级所需的程序库
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libxslt-devel
 
安装cmake
tar zxvf cmake-2.8.3.tar.gz
 
安装mysql
tar zxvf mysql-5.5.9.tar.gz 
MY_dir="/usr/local/mysql" 
cmake -DCMAKE_INSTALL_PREFIX="$MY_dir" -DDEFAULT_CHARSET=utf8  -DMYSQL_DATADIR="$MY_dir/"data/  -DCMAKE_INSTALL_PREFIX="$MY_dir" -DSYSCONFDIR="$MY_dir" -DDEFAULT_COLLATION=utf8_general_ci -DENABLE_DEBUG_SYNC=0 -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=1 -DWITH_READLINE=1 .
make
make install
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
使用my-large.cnf模板
cp mysql/support-files/my-large.cnf ../my.cnf
chown -R mysql:mysql /usr/local/mysql
 
安装PCRE
[root@205053 tmp]# rpm -qa |grep pcre     #查看自带的PCRE。
pcre-6.6-2.el5_1.7
[root@205053 tmp]# cp /lib64/libpcre.so.0 /    #备份libpcre.so.0,32位系统在lib下,64位系统在lib64下。
[root@205053 tmp]# rpm -e --nodeps pcre-6.6-2.el5_1.7     #删除自带的PCRE。
[root@205053 tmp]# cp /libpcre.so.0 /lib64     #恢复libpcre.so.0到lib64
开始安装
tar zxvf pcre-8.12.tar.gz 
cd pcre-8.12
./configure 
make && make install
 
安装Nginx
tar zxvf nginx-0.9.4.tar.gz 
cd nginx-0.9.4
./configure --user=www --group=www --prefix=/usr/local/nginx
make && make install
#修改好配置文件,启动就可以访问到Welcome to nginx!
 
-------------------------------------------------------------------------
安装PHP所需支持库--GD库
安装libpng
tar zxvf libpng-1.5.0.tar.gz 
cd libpng-1.5.0
./configure --prefix=/usr/local/png
make && make install
ln -s /usr/local/png/lib/* /usr/lib64/  #32位系统在/usr/lib/
 
 
-------------------------------------------------------------------------
 
/*
tar zxvf  libpng-1.5.0.tar.gz
cd libpng-1.5.0
./configure --prefix=/usr/local/libpng
make
make install
ln -s /usr/local/libpng/lib/* /usr/lib/
*/
 
默认情况下Nginx和PHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现Nginx与PHP的整合,这个只要我们安装是启用FastCGI即可。此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器,它作为PHP的插件纯在,在安装PHP要想使用PHP-FPM时就需要把PHP-FPM以补丁的形式安装到PHP中,而且PHP要与PHP-FPM版本一致,这是必须的
 
tar zxvf php-5.2.17.tar.gz
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-pdo --with-pdo-mysql=/usr/local/mysql --enable-safe-mode --enable-ftp --enable-zip --with-bz2 --with-jpeg-dir --with-png-dir=/usr/local/png --with-freetype-dir --without-iconv --with-libXML-dir --with-XMLrpc --with-zlib-dir --with-gd --enable-gd-native-ttf --with-curl --with-curlwrappers --with-pear --enable-calendar --enable-mbstring --enable-sockets --enable-exif --enable-magic-quotes --disable-rpath --disable-debug --enable-fastcgi --enable-fpm --enable-force-cgi-redirect
make && make install   #可能会有一两个小插曲,不难解决。
 
# /tmp/php-5.2.17/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
# make[1]: *** [install-pear-installer] Error 127
# make: *** [install-pear] Error 2
解决:把所缺文件链接到/usr/lib64
ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib64/   #32位系统放在/usr/lib下。
 
 
注:Nginx+PHP整合,在安装时必须启用--enable-fastcgi和 --enable-fpm,这两个选项是做什么的上面已经描述。执行完后系统会提示--enable-fastcgi是一个未知选项,我们不必理会
 
指定nobody用户运行PHP,否则PHP-FPM自己不知道以那个用户和组运行PHP:
vi /usr/local/php/etc/php-fpm.conf
       <value name="user">nobody</value>
       <value name="group">nobody</value>
 
/usr/local/php/sbin/php-fpm start
 
查看是否启动成功:
ps -aux | grep php
 
 
Nginx整合PHP
Nginx自己并不处理动态网页的请求,而且Nginx将得到的动态请求转交给PHP,下面我们打开Nginx的配置文件看一下
 
vim nginx.conf
去掉前面的注释即可告知Nginx把*.php页面交给PHP处理
 
        location ~ .*\.(php|php5)?$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/www$fastcgi_script_name;
            include        fastcgi_params;
        }
 
安装wordpress需要使用到ftp,安装vsftpd

猜你喜欢

转载自wubolu.iteye.com/blog/951809