Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10326933
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 系统运维

2011-12-26 18:36:58

apache2+mysql5+php5+svn+memcache+ZendOptimizer+phpMyAdmin
分类: linux--fadora 9 466人阅读 评论(0) 举报
CENTOS4.4 final系统下配置
 apache2.2.4+mysql5.0.37+php5.1.4+subversion1.4.3+memcache+ZendOptimizer3.0+phpMyAdmin2.10.1
 
    配置这些东西花了2周的时间,经常是这个配好了那个又不行了,那个好了这个又不行了,或者是好象都行了,重启以后又不行了,中间基本上能遇到的问题全遇到啦,希望能对大家有所帮助,当然这个文章最先也是我从网上拿来的,我不过加了一些可能遇到的错误说明,并更改了一些我认为不正确的地方(下面一些软件版本号可能写得有误,因为是引用别人的,懒得改啦)。
 
 

第一步:安装CentOS4.4手动分区,作为服务器,特别为服务用途分了一个区,具体一个根目录“/”,一个“/server”,一个是交换分区。
不安装不需要的组件,所以在选择组件的时候,除了选择FTP SERVER外取消所有组件的选择。如果是32位机器的话应该是679M,64位机器为719M。
关闭所有不需要的服务,安装完成后登陆。输入SETUP命令,最后只剩下启动以下几个服务(具体的请参考自己需要启动):crond,iptables,irqbalance(多处理器适用),network,sshd,syslog,vsftpd,xinetd
确定以后重启,就可以利用SSH和FTP服务进行远程管理了。当然你要知道机器的IP,如果是DHCP的话,可以输入命令ifconfig进行查看,如果是固定IP,那就直接登陆了。

第二步:安装服务前的准备:
下载httpd-2.2.2.tar.gz:
下载mysql-5.0.22.tar.gz:
下载php-5.1.4.tar.gz:
下载zendoptimizer-3.0.tar.gz:<[url=][/url]>
下载libxml2-2.6.26.tar.gz:
下载zlib-1.2.3.tar.gz:
下载jpegsrc.v6b.tar.gz:
下载libpng-1.2.10.tar.gz:
下载freetype-2.2.1.tar.gz:
下载gd-2.0.33.tar.gz:
因为安装系统的时候是最小安装,所以编译服务的时候需要一些软件支持,具体需要以下RPM包,这些都可以在CentOS安装盘里找到:
glibc-kernheaders-2.4-9.1.98.EL.x86_64.rpm(在第二张碟)
glibc-headers-2.3.4-2.19.x86_64.rpm(在第二张碟)
glibc-devel-2.3.4-2.19.x86_64.rpm(在第二张碟)
cpp-3.4.5-2.x86_64.rpm(在第一张碟)
gcc-3.4.5-2.x86_64.rpm(在第二张碟)
libstdc++-devel-3.4.5-2.x86_64.rpm(在第二张碟)
gcc-c++-3.4.5-2.x86_64.rpm(在第三张碟)
flex-2.5.4a-33.x86_64.rpm(在第二张碟)
增加一个用户,以方便通过FTP上传文件,命令如下:
useradd biaoest(增加一个名称为biaoest的用户)
passwd biaoest(为刚刚增加的用户修改密码)
上传文件到biaoest的根目录/home/biaoest,用软件上传的时候注意不要用被动模式,要不感觉会有点慢,把上面需要的文件全部上传。
第二步:安装APACHE2.2.2+MYSQL5.0.22+PHP5.1.4+GD2.0.33+ZENDOPTIMIZER3.0
安装系统的时候特别为服务相关的软件准备了一个分区,下面为分区server的相关分布:
cd /server(服务根目录)
mkdir /server/apache2(APACHE2根目录)
mkdir /server/modlib(相关模块根目录)
mkdir /server/modlib/jpeg6(JPEG目录)
mkdir /server/modlib/png(PNG目录)
mkdir /server/modlib/gd2(GD目录)
mkdir /server/modlib/xml2(XML目录)
mkdir /server/mysql5(MYSQL5根目录)
mkdir /server/php5(PHP5根目录)
mkdir /server/php5/zend(ZENDOPTIMIZER3目录)
mkdir /server/database(MYSQL数据库目录)
mkdir /server/webroot(网页根目录)
下面的安装都是假设当前路径为刚刚上传文件路径/home/biaoest目录。

安装GCC编译器及相关辅助软件
rpm -Uvh glibc-kernheaders-2.4-9.1.98.EL.x86_64.rpm
rpm -Uvh glibc-headers-2.3.4-2.19.x86_64.rpm
rpm -Uvh glibc-devel-2.3.4-2.19.x86_64.rpm
rpm -Uvh cpp-3.4.5-2.x86_64.rpm
rpm -Uvh gcc-3.4.5-2.x86_64.rpm
rpm -Uvh libstdc++-devel-3.4.5-2.x86_64.rpm
rpm -Uvh gcc-c++-3.4.5-2.x86_64.rpm
####################################################
如果没有安装上面软件,可能出现的错误提示:
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
####################################################
rpm -Uvh flex-2.5.4a-33.x86_64.rpm
####################################################
如果没有安装上面软件,可能出现的错误提示:
checking lex output file root... ./configure: line 3246: lex: command not found
configure: error: cannot find output from lex; giving up
####################################################

 

安装MYSQL5.0.22到指定目录/server/mysql5,数据保存在/server/database

mkdir /server/mysql5
mkdir /server/database
groupadd mysql
useradd -g mysql mysql
cd /home/biaoest
tar -zxvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure --prefix=/server/mysql5 --sysconfdir=/etc --localstatedir=/server/database --with-charset=gbk
或者
./configure --prefix=/server/mysql5 --sysconfdir=/etc --localstatedir=/server/database --with-extra-charsets=gb2312,gbk
#####################################
如果不加 --with-extra-charsets则编译后的mysql5不识别gbk字符集。extra-charsets用来分别加入多个字符集。
个别情况下采用此选项安装后,用mysql在本地无法连接数据库,提示错误如下:
mysql: Character set 'gbk' is not a compiled character set and is not specified in the '/app/mysql/share/mysql/charsets/Index.xml' file
可以用以下命令:
#mysql -u root -p --default-character-set=latin1
即可以连接,出现此问题的原因暂时不明。不过这不影响正常使用。

用RPM包安装的mysql 5.0.16,可以直接在/etc/my.cnf 中设置default-character-set=gbk
则不会有此问题
用RPM包安装后如果字符集要设为gb2312可以两种方法修改:
1, /etc/my.cnf
[mysqld]
default-character-set=gb2312
2,
  编辑/etc/init.d/mysql,找到这一行:
  /usr/bin/safe_mysqld > /dev/null 2>&1 &
  改成:
  /usr/bin/safe_mysqld --default-character-set=gb2312 > /dev/null 2>&1 &
  好,重新启动MySQL:
  #/etc/init.d/mysql restart
#####################################
接下来:
make
make install
cp /server/mysql5/share/mysql/my-medium.cnf /etc/my.cnf


修改my.cnf的配置,使用utf8编码:
vi /etc/my.cnf
找到客户端配置[client] 在下面添加
default-character-set=utf8
在[mysqld]下加
default-character-set=utf8
init_connect='SET NAMES utf8' #(设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

set-variable = max_connections=1000


修改/server/database属性
chown mysql.mysql /server/database

 

建立数据库
/server/mysql5/bin/mysql_install_db --user=mysql
启动数据库
/server/mysql5/bin/mysqld_safe --user=mysql
如果发生启动错误,可以打开日志看看:/server/database/localhost.localdomain.err
可能的错误是因为权限不足、未运行mysql_install_db等等。


设置开机自动运行(把sh脚本拷到启动里面)
cp /server/mysql5/share/mysql/mysql.server /etc/rc.d/init.d/mysqld

 

cd /etc/rc.d/init.d
chkconfig --add mysqld

在启动mysqld以后,建议修改root的密码,执行如下2条命令:
/server/mysql5/bin/mysqladmin -u root password 'aa1234'
/server/mysql5/bin/mysqladmin -u root -h localhost.localdomain password 'aa1234'

mysql的登录:
/server/mysql5/bin/mysql -u root -p
然后输入密码aa1234即可进入mysql控制台(-p必须输入,否则不让登录)。

如果运行mysql出错,提示mysql: error while loading shared libraries: libmysqlclient.so.15,则执行以下2句命令:

echo /server/mysql5/lib/mysql >>/etc/ld.so.conf   # 或者直接打开/etc/ld.so.conf,添加一行/server/mysql5/lib/mysql
再执行:
/sbin/ldconfig


安装apache2.2.2

cd /home/biaoest
tar -zxvf httpd-2.2.2.tar.gz
cd httpd-2.2.2
修改默认连接数vi server/mpm/prefork/prefork.c,查找256,把它修改为2048
./configure --prefix=/server/apache2 --enable-module=so --enable-module=rewrite --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --with-mpm=prefork  --enable-dav 

 --enable-shared=max --enable-module=most --enable-dav  (这一行是为svn配置的,不加的话会报错:undefined symbol: dav_xml_get_cdata)

make
make install
启动apache2
/server/apache2/bin/apachectl start
设置开机自动启动
从/usr/local/apache/bin/apachectl 到 /etc/rc.d/init.d/httpd 建立一个符号连接:
# ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
然后在此文件总添加以下几行(大概在文件顶部,约第二行的地方,如果不加,在运行服务时会报错:httpd 服务不支持 chkconfig):
# chkconfig: 2345 10 90
# description: Activates/Deactivates Apache Web Server
最后,运行chkconfig把Apache添加到系统的启动服务组里面:
# /sbin/chkconfig --del httpd
# /sbin/chkconfig --add httpd

编辑/etc/rc.d/rc.local
把/server/apache2/bin/apachectl start 加入进去

如果你以前的apache没有删除,而你又想使用
# /etc/init.d/httpd restart
这样重起apache的话,那就修改/etc/init.d/httpd这个文件,修改其中的apahce的三个路径就可以了!!

#################################################
可以选择使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)
# yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel libxml2
如果yum显示出错:Cannot find a valid baseurl for repo
可以这样初始化一下:
yum -y install flash-plugin
然后再执行升级,升级时会提示y或n.

#这里我们将编译GD所必须的一些小软件比如libpng,libtiff,freetype,libjpeg等先用RPM的方式一并安装好,避免手动编译浪费时间,同时也能避免很多错误,这几个小软件的编译很麻烦。这几个小软件编译错误了,GD当然安装不了,php5的编译当然也没戏了。所以我们抓大放小,对这些小牛鬼蛇神采取快速简洁的方式进行安装。并且对服务器的性能也不能产生什么影响。
如果不使用yum,可以手工按照以下步骤安装(我建议不要手工安装,这些东西浪费我了太多太多的时间,因为版本问题,经常弄不成功):
#################################################


安装ZLIB2
cd /home/biaoest
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
#################################################
不要用--prefix自定义安装目录,否则可能会影响后面安装,可能出现的错误:
configure: error: zlib not installed
#################################################
#################################################
如果你的机器是64位,并且在安装png时候出现下面错误:
/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
修补办法(接上面步骤):
vi Makefile
找到 CFLAGS=-O3 -DUSE_MMAP
在后面加入-fPIC,即变成CFLAGS=-O3 -DUSE_MMAP -fPIC
接下面步骤
#################################################
make
make install

安装JPEG6
#################################################
先建立目录,否则可能会出现类型下面错误:
/usr/bin/install -c cjpeg /server/modlib/jpeg6/bin/cjpeg
/usr/bin/install: cannot create regular file `/server/modlib/jpeg6/bin/cjpeg': No such file or directory
make: *** [install] Error 1
解决办法:
mkdir /server/modlib
mkdir /server/modlib/jpeg6
mkdir /server/modlib/jpeg6/bin
mkdir /server/modlib/jpeg6/lib
mkdir /server/modlib/jpeg6/include
mkdir /server/modlib/jpeg6/man
mkdir /server/modlib/jpeg6/man/man1
#################################################
cd /home/biaoest
tar -zxvf jpegsrc.v6b.tar.gz
cd jpegsrc.v6b.
./configure --prefix=/server/modlib/jpeg6
#################################################
如果你的机器是64位,并且在安装gd时候出现下面错误:
/usr/bin/ld: /server/modlib/jpeg6//lib/libjpeg.a(compress.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/server/modlib/jpeg6//lib/libjpeg.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgd.la] Error 1
修补办法(接上面步骤):
vi Makefile
找到 CFLAGS= -O2 -I$(srcdir)
在后面加入-fPIC,即变成CFLAGS= -O2 -I$(srcdir) -fPIC
接下面步骤
#################################################
make
make install-lib
#################################################
特别注意,要不下面会出现错误:
configure: error: libjpeg.(a|so) not found.
#################################################
make install

安装PNG
cd /home/biaoest
tar -zxvf libpng-1.2.10.tar.gz
cd libpng-1.2.10
./configure --prefix=/server/modlib/png
make
################################################
如果出现下面错误:
configure: error: zlib not installed
请回到zlib,重新安装一次,最好先make clean
################################################
make install

安装freetype
cd /home/biaoest
tar -zxvf freetype-2.2.1.tar.gz
cd freetype-2.2.1
./configure --prefix=/server/modlib/freetype
make
make install

安装GD
cd /home/biaoest
tar -zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/server/modlib/gd2 --with-jpeg=/server/modlib/jpeg6/ --with-png=/server/modlib/png/ --with-zlib --with-freetype=/server/modlib/freetype/
make
#################################################
如果出现下面错误:
gd_png.c:825: warning: data definition has no type or storage class
make[2]: *** [gd_png.lo] Error 1
修复方法:
找到CPPFLAGS = -I/server/modlib/freetype/include/freetype2 -I/server/modlib/freetyp
e/include -I/server/modlib/freetype//include  -I/server/modlib/jpeg6//include
原来是少了png的支持了,把它改为
CPPFLAGS = -I/server/modlib/freetype/include/freetype2 -I/server/modlib/freetyp
e/include -I/server/modlib/png/include  -I/server/modlib/jpeg6/include
#################################################
make install

安装LIBXML2
mkdir /server/modlib
tar -zxvf libxml2-2.6.26.tar.gz
cd libxml2-2.6.26
./configure

make
make install

安装PHP5.1.4
cd /home/biaoest
tar -zxvf php-5.1.4.tar.gz
cd php-5.1.4
./configure --prefix=/server/php5 --with-mysql=/server/mysql5 --with-apxs2=/server/apache2/bin/apxs --with-libxml-dir=/server/modlib/xml2 --with-gd=/server/modlib/gd2 --with-jpeg-dir=/server/modlib/jpeg6 --with-zlib --with-png-dir=/server/modlib/png --with-freetype-dir=/server/modlib/freetype --enable-experimental-zts
#################################################
如果出现错误:
checking lex output file root... ./configure: line 3246: lex: command not found
configure: error: cannot find output from lex; giving up
修补方法,安装FLEX:
rpm -Uvh flex-2.5.4a-33.x86_64.rpm

如果不指定--with-mysql,则编译后启动apache的httpd服务时装载libphp时,
可能会因找不到mysqlclient而出错:"can't load libmysqlclient.so"
如果是这样,可以加上--with-mysql参数重新编译php5.
################################################
如果又出现下面错误:
configure: error: libjpeg.(a|so) not found.
修补方法:
原来在安装jpeg的时候,执行了make install,应该执行make install-lib才能生成libjpeg.a文件
################################################
make
make install
复制配置文件到相应的目录
cp php.ini-dict /server/php5/lib/php.ini
配置/server/apache2/conf/httpd.conf
找到DocumentRoot "/server/apache2/htdocs" ,修改为DocumentRoot "/server/webroot"
找到 ,修改为
找到DirectoryIndex index.html,增加index.php等等,变成DirectoryIndex index.html index.htm index.php index.phtml index.phps
加载php模块,去掉注释“#”,如没有此行,请加上。
LoadModule php5_module        modules/libphp5.so
加上此两行
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
set-variable = max_connections=100

安装ZendOptimizer-3.0.0
cd /home/biaoest
tar -zxvf ZendOptimizer-3.0.0-linux-glibc23-x86_64.tar.gz
cd ZendOptimizer-3.0.0-linux-glibc23-x86_64
./install
然后就按照提示给出相应的路径即可

安装MEMCACHED
tar -xzf libevent-1.1a.tar.gz
cd libevent-1.1a
./configure --prefix=/usr
make
make install
cd ..
tar -xzf memcached-1.1.12.tar.gz
cd memcached-1.1.12
./configure --prefix=/usr
make
make install
启动MEMCHED
/usr/bin/memcached -d -m 128 -p 11211 -u nobody
########################################################################
/usr/bin/memcached: error while loading shared libraries: libevent-1.1a.so.1: cannot open shared object file: No such file or directory
cp /usr/lib/libevent* /usr/lib64/ -R
#########################################################################
安装memcache PHP模块
tar vxzf memcache-2.0.4.tgz
cd memcache-2.0.4
/server/php5/bin/phpize
./configure --enable-memcache --with-php-config=/server/php5/bin/php-config --with-zlib-dir
make
make install
安装完后会有类似这样的提示:
Installing shared extensions: /server/php5/lib/php/extensions/no-debug-non-zts-20050922/
把这个记住,然后修改php.ini,把
extension_dir = "./"
修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
并添加一行

extension=memcache.so

安装完毕,该测试了,建立一个专门的web用户,用于上传网页吧。
useradd -d /server/webroot web
passwd web
chown web /server/webroot

 

安装phpMyAdmin,通过web管理mysql:
tar -zxvf phpMyAdmin-2.10.1-all-languages-utf-8-only.tar.gz


[root@locahost]#  cd /server/webroot/phpMyAdmin-2.10.1-all-languages-utf-8-only
mkdir config
chmod o+rw config
cp config.sample.inc.php config/config.inc.php
chmod o+rw config/config.inc.php
修改apache配置:
vi /server/apache2/conf/httpd.conf
找到段,在里面添加一行:
 Alias /phpMyAdmin  //server/webroot/phpMyAdmin-2.10.1-all-languages-utf-8-only
重启httpd:
 service httpd stop
 service httpd start

然后通过浏览器进行web访问初始化:
配置好各项参数后,点Configuration-->save保存配置。
最后将config/config.inc.php 这个文件拷到phpMyAdmin内的顶级目录,如果不需要再进行配置,为了安全,删除config/config.inc.php 。
配置完成后访问首页 :
 如果网页出现错误:#1045 - Access denied for user 'root'@'localhost' (using password:...
 请先重启mysqld,然后重启httpd
如果 页面显示:
Wrong permissions on configuration file, should not be world writable
这是因为目录权限设置不对,只要修改文件属性就可以了,phpmyadminl要运行在755权限下,
如果你把所有文件chmod  777就错了。

 

 

最后,
如果要让apache侦听多个端口,可以在Listen 80下增加几行,如:Listen 8888

如果要在apache上运行多个虚拟主机,可以修改httpd.conf,
把 #include extra/httpd-vhosts.conf这一行的#号去掉,

然后修改
extra/httpd-vhosts.conf

vi extra/httpd-vhosts.conf
添加:

DocumentRoot /server/webroot/mysite1
ServerName test.com

如果还有虚拟主机,再添加:

......

......

 

 

阅读(761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~