Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289470
  • 博文数量: 176
  • 博客积分: 2516
  • 博客等级: 少校
  • 技术积分: 1350
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-01 11:18
文章分类
文章存档

2011年(1)

2010年(18)

2009年(157)

我的朋友

分类: 系统运维

2009-05-13 13:09:54

linux+apache2+php5+mysql5+zend环境架设
linux+apache2+php5+mysql5+zend环境架设
我的安装环境是centos5,缺省不安装apache  mysql等
安装顺序是mysql > apache > php > zend
 
一、准备工作
 
安装多线程下载工具
wget
tar zxvf myget-0.1.2.tar.gz
cd myget-0.1.2
./configure
make
make install
测试一下是不是正常:
 
下载相关的软件包:
wget 
wget
wget
 
 
wget                             
wget
wget     
wget
wget      
 
mytget -n 10   
mytget -n 10
 
说明:所有的包全部安装到/usr/local/src目录下。
以下的软件版本的相关性得到测试是相互符合的,如果是换新的版本安装,各位在编译安装的时候要注意是否提示软件相关性的问题!
主要软件:
mysql-5.0.45-linux-i686-icc-glibc23.tar.gz     httpd-2.2.6.tar.gz      php-5.2.5.tar.gz
suhosin-patch-5.2.5-0.9.6.2.patch.gz
gd库相关软件:
zlib-1.2.3.tar.gz              libpng-1.2.23.tar.gz           freetype-2.3.5.tar.gz
jpegsrc.v6b.tar.gz             gd-2.0.33.tar.gz
php相关软件:
curl-7.17.1.tar.gz             libxml2-2.6.30.tar.gz          libxslt-1.1.22.tar.gz
 
zend相关软件:ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz(去zend网站注册然后下载)
 
二、安装mysql(选择合适的编译好的二进制包)
 
我的计算机是intel的cpu 主板也是intel的芯片 所以我选择了icc编译好的二进制包.
mysql-5.0.45-linux-i686-icc-glibc23.tar.gz
 
mytget –n 10  \
 
tar zxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz -C /usr/local/
ln –s  /usr/local/mysql-5.0.45-linux-i686-icc-glibc23  /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
 
vi /usr/local/mysql/support-files/my-medium.cnf
在后面加上
max_connections = 1500
log-slow-queries
long_query_time = 5

注意:
(1)、max_connections 为允许的最大连接数,log-slow-queries 打开低速查询日志,long_query_time 低速查询的秒数(运行一句sql达到此时间记录在日志里)
(2)、然后COPY 它为 缺省的/usr/local/mysql/data目录中

cp /usr/local/mysql/support-files/my-medium.cnf  /usr/local/mysql/data/my.cnf
 
启动mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql &
注意:必须带--basedir=/usr/local/mysql 路径,不然在执行后,mysqld_safe找不到my.cnf正确的目录路径
 
测试mysql的参数设置
/usr/local/mysql/bin/mysqladmin -u root password 'password'
/usr/local/mysql/bin/mysql  -u root -ppassword
mysql>SHOW VARIABLES;
 
显示max_connections为 1500,这里我的计算机设置是1500大家可以根据自己的机器性能进行调整
 
添加到启动文件中
echo '/usr/local/mysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql &' >> /etc/rc.local
 
三、编译安装apache
 
cd /usr/local/src
wget
tar zxvf httpd-2.2.6.tar.gz
cd httpd-2.2.6
CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse \
-march=pentium4 -pipe -fomit-frame-pointer" \
CXXFLAGS="-O3 -msse2 –mmmx -mfpmath=sse -funroll-loops -march=pentium4 \
-pipe -fomit-frame-pointer" \
./configure --prefix=/usr/local/apache2 --enable-MODULE=shared --enable-mods-shared=most \
--enable-so  --enable-rewrite --enable-vhost-alias  --enable-ssl --enable-authn-dbm \
--enable-static-support --enable-static-htpasswd --enable-static-logresolve \
--enable-static-rotatelogs --enable-static-htdbm \
--with-ssl=/usr/include/openssl  --with-mysql=/usr/local/mysql
 
make
make install
 
注意:
(1)、这里的configure后面跟的目录参数,最后不要跟/,否则有的地方目录会出现//的子目录问题
(2)、具体的配置参数和编译参数请参照以下网站
 
 
vi /usr/local/apache2/conf/httpd.conf

在配置文件前面添加
ServerLimit 2000
MaxClients 1000
注意:如果把ServerLimit 2000屏蔽掉,运行/usr/local/apache2/bin/apachectl –t 会有警告
WARNING: MaxClients of 1000 exceeds ServerLimit value of 256 servers, lowering MaxClients to 256.  To increase, please see the ServerLimit directive.
 
apache默认工作在prefork.c模式下,由于apache默认最大并发进程(ServerLimit)是 256 所以要先设置 ServerLimit 2000 将服务器可设的最大并发数设为2000, 然后再设置最大并发数 MaxClients 1000
3、找到 #ServerName
在其下设置 ServerName 如下
ServerName

基中 为你网站名,也可用IP代替
4、找到 DocumentRoot "/usr/local/apache/htdocs"
设置你的 WEB 服务器的根目录 如
DocumentRoot "/usr/local/apache2/htdocs"
 

 

用下面命令启动WEB服务器,并将程序加入启动程序中  测试  启动
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl start
 
添加到启动文件中
echo '/usr/local/apache2/bin/apachectl start' >> /etc/rc.local

查看自己的站点是否正常 也可用IP
 
测试一下是不是正常!
 

四、安装zlib、libpng、freetype、jpeg、GD库等(让PHP支持GIF,PNG,JPEG)
 
1、安装zlib (安装libpng和gd前需要先安装zlib)
cd /usr/local/src
tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr/local/zlib
make;make install
 

2. 安装libpng
cd /usr/local/src
# tar zxvf libpng-1.2.23.tar.gz
# cd libpng-1.2.23
# cp scripts/makefile.std makefile
# make;make install


3. 安装freetype
cd /usr/local/src
# tar zxvf freetype-2.3.5.tar.gz
# cd freetype-2.3.5
./configure --prefix=/usr/local/freetype
make;make install
 

4. 安装jpeg
cd /usr/local/src
# tar zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man/man1
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make;make install

5. 安装gd
cd /usr/local/src
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6 --with-png \
--with-zlib=/usr/local/zlib --with-freetype=/usr/local/freetype
make; make install
 
 
五、编译安装PHP
 
1、安装最新的Curl库
cd /usr/local/src
tar zxvf curl-7.17.1.tar.gz
cd curl-7.17.1
./configure --prefix=/usr/local/curl
make; make install

curl是一个利用URL语法在命令行方式下工作的文件传输工具。
 
2、由于php5需libxml2的支持, 所以先下载并安装libxml2
cd /usr/local/src
tar zxvf libxml2-2.6.30.tar.gz
cd libxml2-2.6.30
./configure --prefix=/usr/local/libxml2
make; make install

3、安装 libxslt
cd /usr/local/src
tar zxvf libxslt-1.1.22.tar.gz
cd libxslt-1.1.22
./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
make; make install
 
4、php安装
cd /usr/local/src
gunzip suhosin-patch-5.2.5-0.9.6.2.patch.gz
tar zxvf php-5.2.5.tar.gz
cd php-5.2.5

patch -p1 < ../suhosin-patch-5.2.5-0.9.6.2.patch
CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -march=pentium4 \
-pipe -fomit-frame-pointer" \
CXXFLAGS="-O3 -msse2 –mmmx -mfpmath=sse -funroll-loops -march=pentium4 \
-pipe -fomit-frame-pointer" \
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql --with-curl=/usr/local/curl --enable-ftp \
--with-libxml-dir=/usr/local/libxml2 --enable-soap --with-xsl=/usr/local/libxslt \
--with-gd=/usr/local/gd2  --with-jpeg-dir=/usr/local/jpeg6  \
--with-zlib-dir=/usr/local/zlib --with-freetype-dir=/usr/local/freetype \
--enable-mbstring –with-iconv –disable-ipv6

make
make install
 
cp php.ini-dist /usr/local/php/lib/php.ini
 
这里注意:
(1)、这里的configure后面跟的目录参数,最后不要跟/,否则有的地方目录会出现//的子目录问题
(2)、编译安装后会提示以下内容:表明php.ini的路径是/usr/local/php/lib/php,但安装完毕后使用phpinfo()看到的路径是/usr/local/php,根据测试/usr/local/php这个路径是正确的!所以我们要:
cp php.ini-dist /usr/local/php/lib/php.ini
 
下面是在make install后出现的提示内容
PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
Installing PDO headers:          /usr/local/php/include/php/ext/pdo/
 
5、配置httpd.conf使支持 php
1.httpd.conf配置
(1)、以上全都正确后,会自动加入对php模块支持
vi /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so

(2)、添加默认的文件格式
vi /usr/local/apache2/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
(3)、添加默认的首页
DirectoryIndex index.html index.htm index.php
(4),然CPOPY PHP的配置文件

cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini 

修改php.ini文件
register_globals = On
OK,基本的安装已经完成,如果重新起动APACHE出现:/usr/local/apache2/bin/apachectl start Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp4.so into server: /usr/local/apache2/modules/libphp4.so: cannot restore segment prot after reloc: Permission denied
那就要按照下面的方法解决:

编辑/etc/selinux/config,找到这段:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing

把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:
SELINUX=disabled
编写index.php
vi /usr/local/apache2/htdocs/index.php
phpinfo();
?>
rm /usr/local/apache2/htdocs/index.html
同时移除原来的index.html
重启http服务
/usr/local/apache2/bin/apachectl restart
 
测试 
出现php的内容
 
 
六、安装zend  Optimizer 
从ww.w.zend.com下载ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
这里注意我使用的是6550cpu 虽然是64bit的,但是下载64bit的版本却有问题的,只能用32bit的程序。
cd /usr/local/src/
tar zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
cd ZendOptimizer-3.3.0a-linux-glibc21-i386
./install
 
注意:
(1)、回答几个问题:同意条款等等
(2)、还要注意2个路径:一个是php.ini的路径,前面我们做过测试是/usr/local/php/lib
另一个是apache2的apachectl路径:前面我们安装apache的时候定义是/usr/local/apache2/bin/apachectl
(3)、安装程序会自动备份/usr/local/php/lib/php.ini 同时在/usr/local/php/lib目录下建立/usr/local/Zend/etc/php.ini的符号链接
(4)、同时会重启apache服务
 
如果发现with Zend Optimizer v3.3.0, Copyright 
说明zend  Optimizer 安装成功
 

七、phpmyadmin安装
首先下载phpmyadmin
有2个版本一个是phpMyAdmin-2.11.2.2-all-languages-utf-8-only.tar.gz
另一个是phpMyAdmin-2.11.2.2-all-languages.tar.gz,个人倾向于用第一个版本。
我是到这个网站下载phpmyadmin的
 
 
cd /usr/local/src/
tar -zxvf phpMyAdmin-2.11.2.2-all-languages-utf-8-only.tar.gz
cp -rf phpMyAdmin-2.11.2.2-all-languages-utf-8-only /usr/local/apache2/htdocs/MyPhpAduf8
cd /usr/local/apache2/htdocs/MyPhpAdutf8/
cp config.sample.inc.php config.inc.php
vi config.inc.php
修改为:$cfg['Servers'][$i]['auth_type'] = 'http';
 
输入
输入root和前面确定的数据库密码进行验证
注意:这里定义的MyPhpAdutf8各人可以自己发挥,主要是增加安全性。
阅读(598) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~