debian study (server edition)
debian 学习笔记:
Debian 版本:Debian lenny RC1
一、系统配置
1、安装系统之后根据我的使用习惯调整一下字体显示,为系统增加上msyh.ttf、simsun.ttf。并将文件夹浏览窗口设置为在一个窗口内显示。
shell> cp -r chs /usr/share/fonts/truetype/chs
我将simsun.ttf、msyh.ttf、msyhbd.ttf都放到chs文件夹里了。
然后刷新字体缓存。
shell> fc-cache
2、为系统增加开发环境,安装gcc以及make。
shell> apt-get install gcc
shell> apt-get install make
3、安装rarlinux,Opera,linuxqq以及flash播放器插件。
rarlinux可以用官网下载编译好的版本,直接make & make install。
Opera安装之前需要安装一个libqt3-mt,这个东西的依赖关系不容易解决,可以用新立得来安装。
修改opera的font.ini,使之可以使用中文字体。
在font.ini里面将增加:
family:simsun=chinese-s excellent try-first
family:微软雅黑=chinese-s verygood try-first
family:WenQuanYi Bitmap Song=chinese-s good try-first
这些搞定之后系统的界面就焕然一新了。
二、安装webserver软件
准备工作,首先去官网下载mysql、php、nginx的安装包
nginx还需要zlib、pcre、openssl。
mysql可以直接下载已经编译好的二进制分发版。
php需要的软件包比较多:我们可以在编译的时候根据他的提示来安装。libmcrypt、libmhash2、mcrypt等
将三个软件安装包都可以放到/usr/local/下面,这三个软件不用apt-get的方式安装主要是考虑维护和升级比较方便。
1、安装nginx
首先安装zlib、pcre和openssl,pcre是re-write的支持组建,openssl是https的支持组件。
zlib下载的是zlib-1.2.3,直接解压缩之后编译安装就可以了。
pcre的安装似乎有依赖问题,我直接用apt-get搞定了。
而openssl下载来的版本不用./configure,可以直接 make & make install
也可以使用apt-get,debian下openssl名字是libssl-dev
然 后是nginx的安装,./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/bin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-openssl= --with-zlib= --with-http_ssl_module
用这样的配置之后才发现,仅仅安装zlib1.2.3是不够的,需要安装zlib1g-dev包才行。
配置nginx:编辑/usr/local/nginx/nginx.conf
暂时还不加载php,所以不需要作太多改动,修改一下default root就可以了,建立了一个/home/web作为web的根目录。
2、安装mysql
因为下载的是官方已经编译好的版本,就按照官方的一个安装过程一步步安装,但有一些需要修改的地方,我将步骤记录如下:
首先将下载的安装包解压缩放到/usr/lcoal/mysql下,进入这个目录。
shell> groupadd mysql
shell> useradd -g mysql mysql
这两句是为mysql增加登录用户和组
shell> cd /usr/local/mysql
按 照官方的文档下一步需要为mysql创建授权表了,但经过很多此摸索发现,debian系统在安装的过程中会自动创建/etc/mysql的配置文件,所 以在执行那个mysql_install_db之前需要把这些配置文件删除,根据mysql附带的一个配置文件创建一个自己的my.cnf的配置文件,放 到/etc下面:
shell> rm -r /etc/mysql
(删除这些配置文件)
shell> cp support-files/my-medium.cnf /etc/my.cnf
(复制一个cnf文件)
shell> gedit /etc/my.cnf
编辑一下这个配置文件,加入utf8的内容:
default-character-set=utf8
然后再执行mysql的授权表脚本
shell> scripts/mysql_install_db --user=mysql
然后将程序的二进制的所有权改为root,数据目录的所有权为运行mysqld的用户。第一个命令将文件的所有属性改为root用户,第二个命令将数据目录的所有属性改为mysql用户,第三个命令将组属性改为mysql组。
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
然后就可以在后台运行msyqld_safe服务。
shell> bin/mysqld_safe --user=mysql &
出现:
win:/usr/local/mysql# 081212 17:59:20 mysqld_safe Logging to '/usr/local/mysql/data/win.err'.
081212 17:59:20 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
说明服务启动成功。
然后需要给root用户加上密码:在mysql目录下执行 shell> bin/mysqladmin -u root password "密码",成功之后进入使用客户端的命令行看看mysql数据库的情况:
shell> bin/mysql -u root -p
这时会提示你输入密码,就输入你刚才设置的密码。
进入之后可以查看mysql的变量:
mysql> show variables;
可以看到刚才设置的一些变量:
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| basedir | /usr/local/mysql/ |
| datadir | /usr/local/mysql/data/ |
| pid_file | /usr/local/mysql/data/win.pid |
| socket | /tmp/mysql.sock |
停止mysql服务的时候可以使用
shell> bin/mysqladmin -u root -p shutdown
输入密码验证后,即可停止mysql服务。至此,mysql服务器已经安装成功。
3、安装php
php的安装比较麻烦,所需的东西比较多,我们可以根据./configure时候的提示一个个来安装:
使用这个参数来编译:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --enable-fastcgi --enable-force-cgi-redirect --enable-discard-path --with-freetype-dir --with-jpeg-dir --with-zlib --with-curl --with-curlwrappers --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --with-libxml-dir --with-iconv-dir --with-gettext --enable-mbstring --enable-exif --enable-ipv6
首先提示缺少libxml2,为了方便,就直接用apt-get或是新立得来安装libxml2-dev,安装过后再次configure,提示libpng缺少,继续安装libpng12-dev。
然 后用新立得将libmcrypt、libmhash2、mcrypt, gettext, curl(我是从官方下载的安装包直接./configure make install装的,debian上安装过的curl似乎不能用)安装上。再次./configure通过:
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
然后make,make install。php安装成功,
4、配置phpcgi
需要用lighttpd的spwancgi来管理phpcgi进程
首先去spawn-cgi的 官网 (spawn-cgi从那个版本开始从 lighttpd 分离出来了作为一个单独的项目了),下载源代码包,只要 make 出来就可以了,这个玩意默认是加载 bzip2 的,如果你的服务器装了这个包的话可以,如果没有就在 ./configure --without-bzip2 就可以了,make 出来备用。
将编译出来的 src/spawn-cgi 可执行文件放到 /usr/local/bin/spawn-fcgi 里(当然你也可以放到任何位置,个人习惯将 /usr/local/bin 作为个人编译软件的存放地)。
在/usr/local/bin下新建一个文件 fastcgi,内容如下:
#!/bin/sh
spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u standme -g standme -f /usr/local/php/bin/php-cgi
用以调用spawn-fcgi来控制phpcgi进程。
5、配置nginx加载php
在/usr/local/nginx下建立fastcgi.conf,内容如下:
#!nginx (-)
#fastcgi.conf
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200;
然后,编辑nginx.conf,将加载php语句的注释去掉:
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
重启nginx使之生效:
kill -HUP `cat /usr/local/nginx/nginx.pid`

当前暂无评论 »