本空间内容都是自己的随记,转载请注明出处!

centos下apache,php环境搭建

上一篇 / 下一篇  2013-05-28 08:11:33 / 个人分类:测试环境

注:安装过程:tar zxvf *****.tar.gz make  make install。以下省略了make的过程,
1、安装apache
httpd-2.0.63.tar.gz
./configure --prefix=/usr/local/apache2 --enable-module=alias  --enable-module=most --enable-module=vhost_alias --enable-shared=vhost_alias --enable-module=so --enable-shared=max --with-included-apr
2、安装ncurses-5.6.tar.gz
./configure --prefix=/usr --with-share --without-debug
 
3、安装zlib-1.2.3.tar.gz
安装64bit的时候会报如下错误
/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local symbol' 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
make: *** [libphp5.la] 错误 1
解决方法
第一步:安装zlib基本库:yum install zlib*
第二部:更新zlib库:yum update zlib*
第三步:#cd zlib-xxx/ #./configure
第四步:config后修改Makefile文件
找到
CFLAGS= -DUSE_MMAP
修改为 CFLAGS=-O3 -DUSE_MMAP -fPIC
第五步:make && make install
其中第三步和第四步也可以由下面一步代替
或者使用以下选项进行编译
CFLAGS="-O3 -DUSE_MMAP -fPIC" ./configure
 
4、安装libpng-1.2.41.tar.gz 
 ./configure --prefix=/usr/local/libpng
vi Makefile
找到CFLAGS= -g –O2后面加上 -fPIC (这里是关键)有时不需要
 make
 make install
如果报如下错误
configure: error: zlib not installed
解决方法
export LDFLAGS="-L/usr/local/zlib/lib"
export CPPFLAGS="-I/usr/local/zlib/include"
 
5、安装ttf ( ttf 是字体的支持 )
 tar zxvf freetype-2.3.5.tar.gz
 cd freetype-2.3.5
 ./configure --prefix=/usr/local/freetype
 
6、安装JPEG6
 tar zxvf jpegsrc.v6b.tar.gz
 cd jpeg-6b/
 mkdir -pv /usr/local/libjpeg/{,bin,lib,include,man/man1,man1}
 ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
 make
 make install
64bit 安装时会报如下错,
./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c
make: ./libtool: Command not found
make: *** [jcapimin.lo] Error 127
解决方法如下
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
./configure --enable-shared --enable-static
make
mkdir -p /usr/local/man/man1
make install
 
7、安装 libxml2
 tar zxvf libxml2-2.6.31.tar.gz
 cd libxml2-2.6.31
 ./configure --prefix=/usr/local/libxml2
 make
 make install
 cp xml2-config /usr/bin/
 
8、安装 libmcrypt-2.5.7.tar.gz
 tar zxvf libmcrypt-2.5.7.tar.gz
 cd libmcrypt-2.5.7
 ./configure
 
9、安装Fontconfig
 tar zxvf fontconfig-2.4.2.tar.gz
 cd fontconfig-2.4.2
 ./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config  --with-expat-lib=/usr/lib64   
 make
 make install
 ( find / -type f -name 'pkg-config'
/usr/bin/pkg-config
 export PKG_CONFIG=/usr/bin/pkg-config) (设置环境变量,路径为find的路径)
如果是64bit的话,需要加上--with-expat-lib=/usr/lib64
 
10、安装gettext
 tar zxvf gettext-1.05.tar.gz
 cd gettext-1.05
 perl Makefile.PL
 make
 make test
 make install
 
11、安装GD库
yum install -y libtool-ltdl*
 tar zxvf gd-2.0.35.tar.gz
 cd gd-2.0.35
 ./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng --with-fr --enable-m4_pattern_allow
12、安装freetds
 tar zxvf freetds-0.82.tar.gz
 cd freetds-0.82
 ./configure --prefix=/usr/local/freetds --with-tdsver=7.2 --enable-msdblib
 make
 make install
 touch /usr/local/freetds/include/tds.h
 touch /usr/local/freetds/lib/libtds.a
 
13、安装mhash
 tar zxvf mhash-0.9.9.tar.gz
 cd mhash-0.9.9
 ./configure
 
14、安装libmcrypt
 wgethttp://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz?use_mirror=nchc
 tar zxvf libmcrypt-2.5.8.tar.gz
 cd libmcrypt-2.5.8
 ./configure --prefix=/usr/local/libmcrypt
 make
 make install
 ln -s /usr/local/libmcrypt/bin/libmcrypt-config /usr/local/bin/
 
15、安装mcrypt
 wgethttp://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz?use_mirror=nchc
 tar zxvf mcrypt-2.6.8.tar.gz
 cd mcrypt-2.6.8
 LD_LIBRARY_PATH=/usr/local/lib ./configure --prefix=/usr/local/mcrypt
 
16、检测openssl ,这个安装需要慎重,否则会运行不了
 openssl version
OpenSSL 0.9.8e 23 Feb 2007(已经有,不用安装)
 
17、编译安装MySQL 5.0.45
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.0.45.tar.gz
cd mysql-5.0.45
./configure --prefix=/usr/local/mysql/ --without-debug --with-unix-socket-path=/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=gbk,gb2312,utf8 --with-pthread --enable-thread-safe-client
make && make install
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf

  附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。
  ①、以mysql用户帐号的身份建立数据表:
/usr/local/mysql/bin/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/mysql.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock

  ②、启动MySQL(最后的&表示在后台运行)
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
 
18、安装PHP
 tar zxvf php-5.2.8.tar.gz
 cd php-5.2.8
 ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets --with-mssql=/usr/local/freetds/ --with-curl=/usr/local/curl --with-mcrypt=/usr/local/mcrypt/  --with-openssl
 make
 make install

 vi ~/.bashrc
加入export PATH="$PATH:/usr/local/php5/bin"
 
 cp php.ini-dist  /usr/local/php5/lib/php.ini
  优化设置
# vi /usr/local/php5/lib/php.ini
;default_charset = "iso-8859-1"
在这行下面加一行
default_charset = "gbk"
max_execution_time = 30 ; // 改为600 (增加处理脚本的时间限制)
max_input_time = 600 ; //最大输出时间600秒
memory_limit = 8M ; //改为40M (这样才能发10M的附件)
register_global =On
post_max_size = 2M ; //php可接受的 post 方法大小 2M
file_uploads = On ; //允许上载文件
upload_max_filesize = 2M ; //最大上载文件2M
session.auto_start = 1 ; //session自动启动

编辑apache配置文件
修改如下
1、添加如下二行
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps
2、定位至DirectoryIndex index.html
  修改为:
   DirectoryIndex  index.php  index.html
19、安装php-soap
   cd php-5.2.17/ext/soap/
   /usr/local/php5/bin/phpize
   ./configure --with-php-config=/usr/local/php5/bin/php-config --enable-soap
   make
   make install
   vim /usr/local/php5/lib/php.ini
   查找extension_dir = "./"
   修改为
   extension_dir = "/usr/local/php5/lib/php/extensions/"
   并添加一行
   extension="no-debug-zts-20060613/soap.so"  (注意此处的路径,安装成功后会有提示)
   重启apache
 
20、安装 memcache
  tar zxf memcache-2.2.5.tgz
  cd memcache-2.2.5
  /usr/local/php5/bin/phpize
   ./configure --enable-memcache=/usr/local/memcached --with-php-config=/usr/local/php5/bin/php-config --with-apxs2=/usr/local/apache2/bin/apxs
  make && make install
 
vim /usr/local/php5/lib/php.ini
extension_dir = "./"
修改为
extension_dir = "/usr/local/php5/lib/php/extensions/"
/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
并添加一行
extension="no-debug-zts-20060613/memcache.so"(注意此处的路径,安装成功后会有提示)
 
21、安装APC
tar zxvf APC-3.1.6.tgz
cd APC-3.1.6
/usr/local/php5/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-apxs=/usr/local/apache2/bin/apxs --with-php-config=/usr/local/php5/bin/php-config
make
make install
安装完后会有类似这样的提示:
Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
把这个记住,然后修改php.ini
vim /usr/local/php5/lib/php.ini
在末尾添加
extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 128
apc.ttl = 36000
apc.user_ttl = 36000
apc.num_files_hint = 0
apc.write_lock = On
然后重启apache
 
apc.cache_by_default = On
是否默认对所有文件启用缓冲。 若设为Off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存
apc.enabled = On
是否启用APC,如果APC被静态编译进PHP又想禁用它,这是唯一的办法。
pc.filters =
一个以逗号分隔的POSIX扩展正则表达式列表。
如果源文件名与任意一个模式匹配,则该文件不被缓存。
注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。
如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。
apc.ttl = 0
缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。
apc.user_ttl = 0
类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。
apc.gc_ttl = 3600
缓存条目在垃圾回收表中能够存在的秒数
此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, 中.国.站长站
而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此TTL值为止。设为零将禁用此特性。
pc.max_file_size = 1M
禁止大于此尺寸的文件被缓存。
apc.num_files_hint = 1000
Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。
如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。
apc.shm_segments = 1
为编译器缓冲区分配的共享内存块数量(建议值为1)。
如果APC耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值,你可以尝试增大此值。
apc.shm_size = 30
每个共享内存块的大小(以MB为单位,建议值为128~256)。
有些系统(包括大多数BSD变种)默认的共享内存块大小非常少。
apc.write_lock = On
是否启用写入锁。
在非常繁忙的服务器上,无论是启动服务还是修改文件,都可能由于多个进程企图同时缓存一个文件而导致竞争条件
启用该指令可以避免竞争条件的出现。
测试
vi test.php    放到apache的目录下
<?
phpinfo();
?>
22、/usr/local/php5/bin/phpize
如果执行这个没有生成configure文件,则需要安装m4和autoconf。直接yum install即可
安装过程中可能还需要的一些必要支持:gcc curl等,编译时会有提示的。
 
23、apache module的单独安装(apache的配置文件里需要加载单独安装的module)
cd /opt/apache/modules/mappers  (apache解压后的路径)
/usr/local/apache2/bin/apxs -i -a -c mod_rewrite.c  (rewrite支持)
/usr/local/apache2/bin/apxs -i -a -c mod_proxy.c proxy_util.c
/usr/local/apache2/bin/apxs -i -a -c proxy_http.c proxy_util.c  (代理)
 
24、安装svn客户端
cd subversion-1.6.1
./configure --prefix=/usr/local/subversion
svn1.6.1与apache2不兼容。
解决办法是先停止apache,mv /usr/local/apache2 /usr/local/a ,然后再安装svn,svn安装成功后 mv /usr/local/a /usr/local/apache2 即可。

TAG: Apache apache CentOS centos PHP php

ceshizhe的空间 引用 删除 guo_lilei   /   2013-05-28 09:19:45
老丁 我来看过了 不过 收藏 准备分享给别人
 

评分:0

我来说两句

日历

« 2024-05-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 14653
  • 日志数: 15
  • 图片数: 1
  • 文件数: 1
  • 建立时间: 2007-04-24
  • 更新时间: 2014-02-13

RSS订阅

Open Toolbar