Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17721607
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-04-13 22:13:46

说明:
主要是以假设php网站为目标,网站使用了GD库(包括GIF create功能),采用zend加速,数据库用的是Mysql,由于程序设计和数据库使用了一些新版本的新特性,所以没办法使用Linux默认安装的Http和mysql服务,需要自己配制安装。

 
这方面的文章和教程很多了,我写这个笔记主要是为了自己备忘和总结经验。还有就是明确地为架设同类站点的程序员参考,因为很多程序员都没有太多时间研究Linux服务器的配置,希望能给他们省点儿时间。希望对Linux比较熟悉的高手或是网管朋友多多批评指正,不然有错误害了人可就不好了,呵呵。
准备工作
首先你需要安装Linux,我推荐用Red Hat Linux,版本8.0以上就可以了,因为我在RH8、RH9和Fedora core2上面都用下面的方法安装成功过,其他的版本我没有试过,应该最好是用内核版本较高的Linux,这样编译比较少出问题。

 
以下是我用到的软件及下载地址。
Apache
httpd-2.0.54.tar.gz        下载地址:
l         说明:没有给出直接链接,因为Apache.org总是提供最新的版本下载,有可能现在已经不是2.054了,而是更高的版本。注意要下载源码包。
PHP
php-4.3.11.tar.gz              下载地址:
l         说明:源码包
Mysql
mysql-max-4.1.12-pc-linux-gnu-i686.tar.gz
下载地址:http://dev.mysql.com/downloads/mysql/4.1.html
l         说明:反复装过几次,我个人觉得就Mysql而言,二进制包比RPM包的安装较少出问题,所以我个人推荐安装二进制包,而且RPM包一旦出问题,不容易查出问题所在。源码包编译也不错的,不过好像Mysql.com上不提供源码包下载了:(
GD
gd-2.0.33.tar.gz              下载地址:
l         说明:gd2.0.29开始就恢复GIF创建的支持了,这是一个珍贵的版本,建议保留一个,说不定什么时候又闹版权问题弄得不支持了,那样又要打补丁,很麻烦。GIF真的很变态,支持共享!
jpegsrc.v6b.tar.gz             下载地址: (这个竟然是传说中的官网)
libpng-1.2.7.tar.gz           下载地址:
zlib-1.2.2.tar.gz              下载地址:
freetype-2.1.9.tar.gz 下载地址:
Zend
ZendOptimizer-2.5.10-linux-glibc21-i386.tar.gz       下载地址:
卸载:
我们需要把原来系统自带的或者后来采用rpm方式安装的Apache | mysql | php软件卸载掉,我听说不卸载rpm也是可以的,不会影响源码包或者二进制包的安装,就是将来你不起动那些进程就没问题了,但我还是建议卸载,因为rpm方式安装的软件把各种文件放在很多奇怪的地方,我感觉是非常不好管理的。

 
下面的卸载范例是Fedora core2默认安装的包。
卸载Mysql
[root@yourdomainname/]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9

 
l         说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,我上面的例子是Fedora core2默认安装mysql的rpm软件包列表,如果是别的Linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。
l         比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:

 
rpm –e mysql-server

 
l         说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:

 
rpm –e mod_auth_mysql
卸载Apache
[root@ yourdomainname /]# rpm -qa | grep httpd
httpd-2.0.49-4
system-config-httpd-1.2.0-3
httpd-manual-2.0.49-4

 
l         说明:方法跟卸载Mysql一样,不用说了吧
卸载PHP
[root@ yourdomainname /]# rpm -qa | grep php
php-odbc-4.3.4-11
php-4.3.4-11
php-mysql-4.3.4-11
php-pear-4.3.4-11
php-ldap-4.3.4-11
php-pgsql-4.3.4-11

 
l         说明:方法跟卸载Mysql一样,不用说了吧
l         注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包就可以了。
l         如果实在实在有卸载不掉的包,可以加—nodeps这个参数来卸载,比如我们卸载php-4.3.4-11,实在卸不掉了。就用:
[root@ yourdomainname /]# rpm -e php-4.3.4-11 –nodeps 命令很强硬,应该行的。
安装:
安装Mysql二进制包

解压缩:

 
# tar zxvf mysql-max-4.1.12-pc-linux-gnu-i686.tar.gz /usr/local
# cd /usr/local
# mv mysql-standard-4.0.20-pc-linux-i686 mysql

 
解压缩以后,可以看到mysql目录里面有一个文件叫INSTALL-BINARY,里面有很详细的二进制安装说明(可惜英文的),如果能看明白就基本上搞定了,我是看不懂地。其实解压以后,安装工作基本上已经完成了,配置一下就可以工作了。

 
我知道的目录和文件的用途:

目录

 
 

目录的内容

 
 

/bin

 
 

客户程序和mysqld服务器

 
 

/data

 
 

日志文件和数据库文件存放的地方,这个位置跟源码包的安装是有区别的,源码包的目录是var

 
 

/include

 
 

头文件 这些文件是php编译时会用到的

 
 

/lib

 
 

库文件 这些文件是php编译时会用到的

 
 

/scripts

 
 

mysql_install_db    就这一个文件,初始化数据库

 
 

 

 

添加用户和组:

 
下面添加 mysql 用户组和用户(如果你刚刚卸载掉mysql,组和用户都是存在的,验证一下吧),如果系统中还没有mysql组和用户,建立他们:
# groupadd mysql
# useradd -g mysql -d /usr/local/mysql -s /sbin/nologin mysql
l         上面第一条命令建立mysql组,第二条添加mysql帐号,并设定其主目录为/usr/local/mysql,如果你的mysql解压在别的地方就改一下,同时出于安全考虑设定该帐号不可以登录系统

 

初始化数据库:

 
# scripts/mysql_install_db --user=mysql
用mysql这个用户运行 /usr/local/mysql/scripts目录下的数据库初始化程序
l         注意:这个命令只能在mysql的安装目录下(/usr/local/mysql)执行,别的地方执行是绝对不可以的,也不要到scripts目录底下去执行。

 

权限设定:

 
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .

 

启动一下试试:

 
# /usr/local/mysql/bin/safe_mysqld
# /mysql
mysql>

 
最后将safe_mysqld拷贝到safe_mysqld /etc/rc.d/init.d/ 成为系统启动的守护进程!

 
这就意味着成功安装了mysql了,其他的事情推荐安装了apache 编译了php以后再做,因为那时候上传一套phpmyadmin就完事大吉了。

 

 

 

 

安装APACHE2:

 

 
首先# tar zxvf  apache.gar.gz
./configure -prefix=/usr/local/apache2 -enable-so (可改为你自己的目录;-enable-so用于加载connector,不可略,你还可以加上你自己的其他模块)
推荐如下:

./configure --prefix=/usr/local/apache2 --mandir=/usr/share/man --enable-so --enable-module=rewrite --enable-track-vars --enable-deflate --enable-cache --enable-mem-cache --enable-disk-cache --enable-rewrite=shared --enable-status=shared --enable-file-cache --enable-cgid --enable-expires=share

要和tomcat集成module=so必有;其他一些参数:--enable-cgi 支持CGI;--enable-track-vars 为启动cookie的get/post等追踪功能

make
make install
cd /usr/local/apache2/conf
vi httpd.conf
更改:servername 你的机器ip或域名

 

 
1、 安装jpeg-6b
#./configure
#make
编译成功,但是在安装的时候报错,系统提示不能将文件拷贝到/usr/local/man/man1这个目录,于是建立目录以后安装成功:

#mkdir /usr/local/man & /usr/local/man/man1
安装记录

# make install
# make install-lib  //以前因为没有执行这一步安装导致在编译php时报错


2、libpng-1.2.5的安装配置

#cp scripts/makefile.gcmmx makefile \\makefile.gcmmx是针对MMX指令集优化的

#make && make install

3、zlib-1.1.4安装配置

#./configure --shared \\shared生成zlib的共享库文件

#make && make install

4、freetype-2.1.5安装配置

#./configure
#make && make install

 

 
5.gd-1.0.15安装配置
#./configure
配置完成后,注意输出的信息是否如下
:
** Configuration summary for gd 2.0.15:

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes
   Support for Xpm library:          no
Xpm库以前安装不成功,如果程序部门不常用用,一般PNG/JPEG/FREETYPE三个库打开支持就行

#make && make install
#cp gd.h /usr/local/lib 

 

 

配置PHP

 
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs --enable-track-vars --with-config-file-path=/usr/local/php/etc --with-gd --enable-sysvmsg --enable-sockets --enable-sysvshm --enable-sysvsem --enable-gd-native-ttf --with-ttf=/usr/lib --disable-debug --with-tiff-dir=/usr/lib --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-xml --with-gdbm-dir=/usr/lib --enable-wddx --with-freetype-dir=/usr/local/lib --with-zlib --enable-exif  --with-iconv
#make
#make install
注意路径!!!

 
配置:
Httpd.conf的修改
支持php

 
虚拟主机
Httpd.conf 的虚拟主机配置的例子里面,只用到了开设虚拟主机最常用的几条命令,其他的虚拟主机功能非常强大,在 里面有详细的说明:

 

l         比较有用的一条 ServerAlias ,如果你需要一台虚拟主机支持多个别名的指向,就很需要了,还可以支持通配符:

 

 

 

ServerName server.domain.com

 

ServerAlias server server2.domain.com server2

 

# ...

 

 

 

 
PHP.ini的修改
默认设为中文:
 
找到以下行:
;default_charset = "iso-8859-1"
在这行下面加一行或修改成:
default_charset = "gb2312"

 
关于PHP.ini大家弄的都很熟悉了。这里不在赘述!!

 

 

 
我遇到过的问题及解决方法
问:在使用Freetype的时候,程序提示字体找不到,并且列出了字体的名称和位置
答:其实很简单,不同版本的Freetype默认安装的目录是不一样的,找到默认安装的目录,修改程序使用正确的路径就可以了。如果是编译的程序你改不了的话,就把系统目录按照程序的要求cp一份就可以了。同时默认安装路径尽量放到/usr/local/就OK了!!

 

 

 
所有文件的下栽我做了一个包。路径在
阅读(343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~