分享、学习、提高
2007/10/16 16:17
Tags: , , ,
一台服务器原来装的Apache2.2.3,由于当初使用了--enable-module=most 的参数,加载了大部分不需要用到的模块。

考虑到服务器负载有些大,不需要的模块还是会有些影响,于是考虑重装Apache。

由于网站正在运行,有点担心重新编译会不会带来问题。问了下,同事说安装在同一目录一般不会有问题,也不会影响网站运行,但最好要把原目录备份一下,万一有问题,也可以恢复回去。
还是原版本2.2.3,这次的配置是,./configure --prefix=/usr/local/apache2 --enable-shared=max --with-mpm=worker --enable-rewrite --enable-expires --enable-deflate
特意查了一下功能,
--enable-module=so,是为了使得模块“so”有效,这样以后你可以运用DSO+APXS机制,通过第三类模块(3rd party module)来扩充你的Apache安装。
–enable-shared=max
max是指所有已配置模块都编译成DSO模块(除了so以外的,so不能被编译成DSO的)
使用动态加载方式会带来5%的性能下降,但和带来的好处相比更本不算什么:比如模块升级方便,系统升级风险降低,安装过程标准化。
但--enable-module=so不是很必要,因为APACHE是配置文件默认是只要你安装了一个动态加载模块。系统会默认将SO放进去。不需要你特意说明的。系统会自动检查的。
--enable-deflate
网站启用了deflate压缩
--with-mpm=worker
worker模式
--enable-rewrite
网站需要用到rewrite(URL重写功能)
--enable-expires
网站需要用到缓存功能

重编译后,重启Apache,网站正常。真不错,直接在上面装不会影响正在跑的apache的运行。

去apache官方看了下,最新版2.2.6,下载下来,编译,顺利完成。

装完后,用httpd -l看了一下有哪些模块,还挺多的。
引用
core.c
  mod_authn_file.c
  mod_authn_default.c
  mod_authz_host.c
  mod_authz_groupfile.c
  mod_authz_user.c
  mod_authz_default.c
  mod_auth_basic.c
  mod_include.c
  mod_filter.c
  mod_deflate.c
  mod_log_config.c
  mod_env.c
  mod_expires.c
  mod_setenvif.c
  worker.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgid.c
  mod_negotiation.c
  mod_dir.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_so.c


不过,由于php5并没有重新编译,phpinfo显示的Apache版本还是2.23。
/usr/local/apache2/bin/httpd -v
Server version: Apache/2.2.6 (Unix)
Server built:   Oct 15 2007 16:20:1

那再重编译一下php5,php.ini备份了下。装完后网站好像停了会儿,再装Zend,装完,网站恢复正常。

这次在不影响网站运行的情况下,直接重装升级还是有些冒险的,毕竟以前没试过,还好顺利的完成了:)
2007/10/16 12:53
Tags:
一台Linux服务器,早在message中就看到许多
引用
CPU2: Temperature above threshold
CPU2: Running in modulated clock mode
问了下网管,网管说是CPU 温度过高的提示,没问题,不用管它。

今天上服务器更改些东西,发现不断弹出这类消息,严重影响我操作:(

搜索了一下,发现屏蔽此类消息的方法。

vi /etc/syslog.conf
注释掉 *.emerg 这一行
/etc/init.d/syslog restart

这样就不会出现 CPU 温度过高的警告了。
2007/09/11 17:38
Tags: ,
在服务器上上传了一个Zend加密过的程序,提示
Zend Optimizer not installed
This file was encoded by the Zend Encoder / Zend SafeGuard Suite

In order to run it, please install the freely available Zend Optimizer, version 2.1.0 or later.

然后下面是Zend Optimizer的一些介绍。。。

明明装了Zend Optimizer v3.3.0呀,在phpinfo中可以看到。

同事提醒我,看看php.ini中Zend的参数。想起来,之前装上后,将其设置为不用解析加密过的程序了。
将php.ini最后几行中的enable_loader = 0 改为 enable_loader = 1,问题解决。

原enable_loader = 0时的phpinfo的显示:
引用
Zend Loader : disabled
Obfuscation level : 0


后enable_loader = 1的显示:
引用
Zend Loader : enabled  
Obfuscation level : 3

2007/09/08 10:37
Tags:
本机Windows2000下装好apache2+php5+mysql,运行程序,提示
引用
Fatal error: Call to undefined function: mysql_connect() 。


php.ini中已经将extension=php_mysql.dll前面的;去掉,但在php.ini里面找不到任何mysql的选项,奇怪!libmysql.dll也以copy到c:\winnt\system32下,extension_dir 也已设置,但就是不行:(

多次测试后才找到原因。
php.ini放在了c:\winnt\下,apache的配置文件里直接Copy了php5的install.txt中说明的内容,如下
# For PHP 5 do something like this:
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"


原来这里PHPIniDir设置了php.ini在C:/php下,而不是winnt下的php.ini。要么将这句设置去掉,就使用winnt下的(如果PHPIniDir指定的目录下不存在php.ini,系统也会使用winnt下的),不然就使用指定目录下的。我这里使用指定目录(即php5解压的目录),将php-dist.ini改名为php.ini,将extension=php_mysql.dll前面的;去掉,默认的extension_dir = "./"也不用更改。重启Apache。
查看phpinfo,已经有了mysql的选项,运行程序,OK。
2007/09/05 16:19
Tags: , ,
新接手一台服务器,修改了下apache的配置,才知道2.2以后的虚拟主机配置在extra目录下httpd-vhost.confshy,开始在conf/httpd.conf看,就没发现任何配置信息,还以为搞错了呢。修改后,重启出错。
[root@hx rc.d]# /usr/local/apache22/bin/apachectl restart    
httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

[root@hx rc.d]# /usr/local/apache22/bin/apachectl stop
httpd (no pid file) not running

[root@hx rc.d]# /usr/local/apache22/bin/apachectl start
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

不知道怎么回事,SE查了一下,也没找到确切的原因。

最后偷懒,不找原因了,直接Kill掉,再启动。
killall -9 httpd
/usr/local/apache22/bin/apachectl start

就OK了,之后再重启也正常了。

感觉有可能是httpd进程太多,所以暂时stop不了。
分页: 9/17 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]