Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2764815
  • 博文数量: 587
  • 博客积分: 6356
  • 博客等级: 准将
  • 技术积分: 6410
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-23 10:54
个人简介

器量大者,福泽必厚

文章分类

全部博文(587)

文章存档

2019年(3)

2018年(1)

2017年(29)

2016年(39)

2015年(66)

2014年(117)

2013年(136)

2012年(58)

2011年(34)

2010年(50)

2009年(38)

2008年(16)

分类: LINUX

2010-04-02 10:32:30

1:安装php时遇到问题:
./configure --with-apxs=/usr/local/apache2.2/bin/apxs --with-mysql=/usr/local/mysql  --prefix=/usr/local/php时出错!
出错信息:如下:Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... configure: error: You have enabled Apache 1.3 support while your server is Apache 2.  Please use the appropiate switch --with-apxs2
解决方法:
[root@localhost php-5.2.13]# ./configure --help | grep apxs
  --with-apxs[=FILE]      Build shared Apache 1.x module. FILE is the optional
                          pathname to the Apache apxs tool [apxs]
 
--with-apxs2[=FILE]     Build shared Apache 2.0 Handler module. FILE is the optional
                          pathname to the Apache apxs tool [apxs]
                          pathname to the Apache apxs tool [apxs]

显然通过上面可以看清楚原因!

2:mysql安装configure时出错:

信息如下:

checking for tgetent in -lcurses... no

checking for tgetent in -ltermcap... no

checking for tgetent in -ltinfo... no

checking for termcap functions library... configure: error: No curses/termcap library found

 

原因:缺少ncurses-devel安装包

3:mysql安装时提示:exec: g++: not found

原因:缺少gcc-c++-*.i386.rpm

解决方法:到光盘中找到相应版本的rpm包安装即可

 

4:httpd安装时configure时出错

checking for zlib location... not found

checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

原因:缺少zlib-devel

解决方法:安装zlib-devel即可

5:[root@*** conf]# /usr/local/apache2/bin/apachectl start
启动失败,出错信息如下:

httpd: Syntax error on line 105 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

原因:开启了selinux

解决方法:禁用selinux(需要重启)或setenforce 0

6:pureftpd安装时出错,configure时出错信息如下:

checking whether mysql clients can run... no

configure: error: Your MySQL client libraries aren't properly installed

 

解决方法:

vi /etc/ld.so.conf在其中加入:

/usr/local/mysql5/lib/mysql

执行ldconfig即可

 

7:can  not find  /usr/local/bin/expect 

决方法:安装expect包

[root@*** liuxiaojie]# rpm -ivh expect-5.43.0-5.1.i386.rpm

[root@*** liuxiaojie]# rpm -ivh expect-devel-5.43.0-5.1.i386.rpm

由于默认在/usr/bin/expect下,只好做个软连接了。

cd /usr/local

ln  -s /usr/bin/expect expect  问题即可解决!

gd-2.0.35]# make
cd . && /bin/sh /home/xliu/151/gd-2.0.35/config/missing --run aclocal-1.9 -I config
aclocal:configure.ac:64: warning: macro `AM_ICONV' not found in library
 cd . && /bin/sh /home/xliu/151/gd-2.0.35/config/missing --run automake-1.9 --foreign
cd . && /bin/sh /home/xliu/151/gd-2.0.35/config/missing --run autoconf
configure.ac:64: error: possibly undefined macro: AM_ICONV
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
make: *** [configure] Error 1
原因:确实gettext-devel软件包!

9:.安装Jpeg

tar zxvf jpegsrc.v6b.tar.gz

cd jpeg-6b/

./configure --enable-shared

make

make test

make install

注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库


10:checking whether to enable JIS-mapped Japanese font support in GD... no
checking for fabsf... yes
checking for floorf... yes
configure: error: libjpeg.(a|so) not found.

解决方法:
[root@qht03 php-5.2.4]# yum -y install  libjpeg-devel

11:configure: error: libpng.(a|so) not found.

[root@qht03 php-5.2.4]# rpm -qa | grep libpng ##发现没有安装devel包
libpng-1.2.10-7.1.el5_0.1

解决方法:
[root@qht03 php-5.2.4]# yum -y install libpng-devel

 


12:configure: error: freetype.h not found.
[root@qht03 php-5.2.4]# rpm -qa   | grep freetype
freetype-2.2.1-20.el5_2  ##尽管已经安装freetype ,但还需要安装freetype-devel包!

解决方法:

[root@qht03 php-5.2.4]#yum -y install freetype-devel

13:configure: error: could not find gperf
checking for gperf... no
configure: error: could not find gperf
[root@localhost gearmand-1.1.8]# yum -y install gperf

14:checking test for a working libevent... no
checking test for a working libevent... no
configure: error: Unable to find libevent
[root@localhost gearmand-1.1.8]#  yum -y install libevent-devel


应用中的问题:

1:   时不显示,但httpd服务在157上已经开启。
 原因:防火墙的缘故
 解决方法:关闭防火墙,service iptables stop 或开发80端口

2已经安装php, 并且在httpd.conf中有php的相关模块,
LoadModule php5_module        modules/libphp5.so
但运行时php程序时不能解析php,
解决方法:
在httpd.conf中的模块中加入:
AddType application/x-httpd-php .php .php3
即可解析

3:在10.4.3.157上(mysql client)访问10.4.3.144(mysql server),长时间的等待,
mysql -h 10.4.3.144 -u liu  -p'liu'
不提示出错,一直在等待状态。同事mysql server上的mysql服务已经开启
原因:开启了防火墙。
解决方法:在mysql服务器上开放对3306端口的权限,iptables -I INPUT -p tcp  --dport 3306 -j ACCEPT

查看lamp编译时的参数:

查看mysql编译参数:
cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE

查看apache编译参数:
cat $apachehome$/build/config.nice

查看php编译参数:
$PHP$/bin/php -i | grep configure

freebsd下lamp简单笔记

4:安装php

  4.1:安装zlib./configure  --prefix=/usr/local/zlib ;make;make install

  4.2:安装jpeg时出问题,提示找不到

install: /usr/local/jpeg/bin/cjpeg: No such file or directory

根据提示创建目录即可(binlibman\man1,include

mke install 即可

  4.3:安装libxml ./configure –prefix=/usr/local/libxml;make;make install即可

  4.5:安装freetype

qht25# ./configure --prefix=/usr/local/freetype

GNU make (>= 3.79.1) or makepp (>= 1.19) is required to build FreeType2.

Please try

  `GNUMAKE= ./configure'.

or >&2

  `GNUMAKE="makepp --norc-substitution" ./configure'.

没有安装gmake,安装即可

显然是make的版本太低!

升级make的版本,我下载的是make-3.81.tar.bz2

tar jxvf make-3.81.tar.bz2

cd make-3.81

./configure

make

make install

默认会按照在/usr/local/bin目录下:

qht25# pwd

/usr/local/bin

qht25# ls make

make

先查看使用的是何种shell

setenv PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin

设置环境变量(这种方式会在机器重启后丢失!)

还有一种永久生效的方式:

vi ~/.cshrc

中默认

set path = ( /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)

应修改为:

set path = (/usr/local/bin /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)

然后重启机器,即可使得设置的环境变量永久生效

 

###修改shell:(先查看echo $SHELL ,chsh -s /bin/csh  )

4.6:安装linpng

cd libpng-1.4.3   

./configure --prefix=/usr/local/libpng

make

make install

4.7:gzip 安装

/usr/bin/install -c gzip /usr/local/gzip/bin/gzip

install: /usr/local/gzip/bin/gzip: No such file or directory

make: *** [installbin] Error 71

安装时出错!

解决方法:

mkdir -p /usr/local/gzip/bin

 cd gzip-1.2.4

./configure --prefix=/usr/local/gzip

make

make install时出错

执行以下命令后:mkdir -p /usr/local/gzip/bin即可

4.8:安装curl

tar zxvf curl-7.17.0.tar.gz  ##这个版本太低,在编译php时会出错(但configure可以过去),需要curl-7.17.1的版本

  cd curl-7.17.0

  ./configure --prefix=/usr/local/curl

  make

  make install

4.9

 tar jxvf gd-2.0.35.tar.bz2

  cd gd-2.0.35

  ./configure --prefix=/usr/local/gd2/ --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/jpeg --without-xpm

make

make install

4.10:mysql安装

tar -zxf mysql-5.0.45.tar.gz && cd mysql-5.0.45

./configure --prefix=/usr/local/mysql5 \

--enable-assembler \

--with-mysqld-ldflags=-all-static \

--with-client-ldflags=-all-static \

--enable-thread-safe-client \

--with-charset=gbk

make && make install && cd ..

 

 

 

安装php时失败,如下:

 

解决方法:安装perl

方法:

cd perl-5.12.1

 

./configure.gnu

make

make test

make install

默认会安装在/usr/local/bin目录下(因为我已经将/usr/local/bin放到$PATH中)

但编译php时,问题还是出现,

 

解决方法:删除原来的httpd2.2(开始我先安装了httpd2.2,尽管后来已经安装了perl,但还是会出现上面的附件出现的问题),然后重新编译一遍即可!

在编译php时出错如下:

checking for xml2-config path... /usr/local/libxml/bin/xml2-config

configure: error: libxml2 version 2.6.11 or greater required.

原因:libxml版本太低。

我装的是 libxml2-2.6.3,删除,重新安装即可

还有开始我使用的是curl-7.17.0,结果在编译php时出错(configure可以过去),换成curl-7.17.1.tar.gz安装即可解决此问题
 

LAMP加固:
php方面:
  1:打开安全模式,php的安全模式是个非常重要的内嵌的安全机制,当启用安全模式时,一些限制将生效,一些函数将不能使用,由于启用了安全模式后,由于会对比文件的拥有者和文件的执行者是否是一个人,所以会减慢执行效率,默认的php.ini是没有打开安全模式的,我们把它打开:safe_mode = on
当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同组的用户也能够对文件进行访问。建议设置为:safe_mode_gid = off #如果打开安全模式会对用户的使用有影响!
 2:控制php脚本能访问的目录
使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问不应该访问的文件,一定程度上限制了phpshell的危害,我们一般可以设置为只能访问网站目录:
 例如:我的设置为php_admin_value open_basedir /usr/vhome/d/l/a/dl**b.com/:/usr/vhome/tmp
这样,如果脚本要读取/usr/vhome/d/l/a/dl**b.com/:/usr/vhome/tmp以外的文件将不会被允许!

3:关闭危险函数:我的配置文件中的禁止的危险函数为:
  1. disable_functions = dl,exec,passthru,shell_exec,system,proc_open,popen,parse_ni_file,show_source ##尽管fsockopen函数危险,但很多的开源项目必须用到它,所以也没有关闭它
4:关闭PHP版本信息在http头中的泄漏
我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息斜路在http头中:
expose_php = Off
比如黑客在 telnet
80 的时候,那么将无法看到PHP的信息。
配置文件中设置:
  1. [root@IDC-D-***** confcenter]# cat php.ini | grep expose_php
  2. expose_php = Off
5:关闭注册全局变量
在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
register_globals = Off
#我的配置文件中的设置如下:
  1. [root@IDC-D-***** confcenter]# cat php.ini | grep ^register_globals
  2. register_globals = On ##最后设置为Off, 但设置为Off又会给一部分开源项目带来麻烦!
6:打开magic_quotes_gpc来防止SQL注入
SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,所以一定要小心。php.ini中有一个设置:
magic_quotes_gpc = Off
这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ‘ 转为 \’等,这对防止sql注射有重大作用。所以我们推荐设置为:
magic_quotes_gpc = On
#我服务器的设置如下:
  1. [root@IDC-D-**** confcenter]# cat php.ini | grep magic_quotes_gpc
  2. magic_quotes_gpc = On

7:错误信息控制
一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示:
display_errors = Off
如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:
error_reporting = E_WARNING & E_ERROR
当然,我还是建议关闭错误提示。
#我的配置文件如下:
  1. [root@IDC-D-5603 confcenter]# cat php.ini | grep ^display_errors
  2. display_errors = Off
8:错误日志
建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:
log_errors = On
同时也要设置错误日志存放的目录,建议根apache的日志存在一起:
error_log = D:/usr/local/apache2/logs/php_error.log
注意:给文件必须允许apache用户的和组具有写的权限。
#我配置文件中的相关设置:
  1. [root@IDC-D-5603 confcenter]# cat php.ini | grep ^log_errors
  2. log_errors = On
  3. log_errors_max_len = 1024
  4. [root@IDC-D-5603 confcenter]# cat php.ini | grep ^error_log
  5. error_log = /usr/local/logcenter/phperror.log

9.关闭远程文件打开
allow_url_fopen = off 防止黑客远程远程利用漏洞,这个函数的作用就是:采集。相信很多朋友都会使用到他吧,但是建议还是别在国外空间上使用大量采集!

#我的配置文件如下:
  1. [root@IDC-D-***** confcenter]# cat php.ini | grep ^allow_url_fopen
  2. allow_url_fopen = On  #不打开这个,很有可能用户在使用时会找你的麻烦


二:mysql部分:
1.禁止远程连接数据库
在命令行netstat -ant下看到,默认的3306端口是打开的,此时打开了mysqld的网络监听,允许用户远程通过帐号密码连接数本地据库,默认情况是允许远程连接数据的。为了禁止该功能,启动skip-networking,不监听sql的任何TCP/IP的连接,切断远程访问的权利,保证安全性。假如需要远程管理数据库,可通过安装PhpMyadmin来实现。



三:在使用fastcgi方式编译php时,有报错:
/root/codes/php-5.2.10/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] 错误? 1
解决方法:编辑Makefile 大约**** 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv

例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。


10:在编译php过程中遇到错误:
configure: error: libpng.(a|so) not found.
解决方法:yum -y install libpng-devel或编译安装libpng-1.2.**.tar.bz2  问题即可解决!
11:原来系统都是32位的,突然idc的同事安装系统时换成了64的系统,我在配置lamp时,一切都正常(我是用源码安装的) ,然后到安装ZendOptimizer,却出现问题,ZendOptimizer倒是可以正常安装,但安装完后,ZendOptimizer不能正常使用,日志文件里的出错如下:
Failed loading /usr/local/Zend/lib/ZendExtensionManager.so:  /usr/local/Zend/lib/ZendExtensionManager.so: cannot open shared object file: No such file or directory
Failed loading /usr/local/Zend/lib/ZendExtensionManager.so:  /usr/local/Zend/lib/ZendExtensionManager.so: cannot open shared object file: No such file or directory
Failed loading /usr/local/Zend/lib/ZendExtensionManager.so:  /usr/local/Zend/lib/ZendExtensionManager.so: cannot open shared object file: No such file or directory
Failed loading /usr/local/Zend/lib/ZendExtensionManager.so:  /usr/local/Zend/lib/ZendExtensionManager.so: cannot open shared object file: No such file or directory
Failed loading /usr/local/Zend/lib/ZendExtensionManager.so:  /usr/local/Zend/lib/ZendExtensionManager.so: cannot open shared object file: No such file or directory  怎么会提示这种错误,看php.ini中的相关配置和ZendOptimizer的安装目录都是一致的!
原因:我下载的是32位的ZendOptimizer(ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz),只需要下载该版本的针对64的安装就可以了!


11:configure: error: libjpeg.(a|so) not found.     ##编译时提示出错
[root@ungeoftp php-5.2.4]# rpm -qa | grep  libjpeg  ##查看已经安装libjpeg和libjpeg-devel
libjpeg-6b-37
libjpeg-devel-6b-37
libjpeg-6b-37
[root@ungeoftp php-5.2.4]# cd  /usr/lib64
[root@ungeoftp lib64]# ls  | grep libjpeg
libjpeg.so
libjpeg.so.62
libjpeg.so.62.0.0
[root@ungeoftp lib64]# ls  | grep libpng   ##libpng也已经安装!
libpng12.a
libpng12.so
libpng12.so.0
libpng12.so.0.10.0
libpng.a
libpng.so
libpng.so.3
libpng.so.3.10.0
[root@ungeoftp lib64]# ln -s /usr/lib64/libjpeg.so /usr/lib/
[root@ungeoftp lib64]#  ln -s /usr/lib64/libpng.so /usr/lib/
然后问题即可解决

12:Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration
原因:httpd.conf配置文件里面没有LoadModule php5_module     modules/libphp5.so,而vhost.conf中加载php_admin_value open_basedir /usr/vhome/x/y/z/xyz.com/:/usr/vhome/tmp
故会报错!

13:gd_png.c:16:53: error: png.h: No such file or directory
解决方法:
修改gd_png.c文件将
#include ""png.h" --> #include "/usr/local/libpng/include/png.h"

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