配置文件 httpd.conf
检查方法 执行`apachectl configtest'或者`httpd -t'
详细说明
# 通常Apache安装好之后,'httpd' 和 'apachectl' 这两个程序就在安装目录中的bin目录下,比如我后面运行的程序就是在我的安装目录(/usr/local/httpd)下的bin目录中,你可能需要找到真实的程序位置来执行检查 # 如果是二进制安装,比如rpm或者deb包,大部分情况这两个命令已经被放到了PATH可以引用到的位置,这样你直接执行`apachectl configtest'或者`httpd -t'就可以了 # apachectl configtest 其实就是去调用 httpd -t,所以这两个命令是完全一样的 # 正确范例: root@S71[1]lib# /usr/local/httpd/bin/httpd -t Syntax OK # 错误范例: root@S71[1]lib# /usr/local/httpd/bin/httpd -t httpd: Syntax error on line 20 of /usr/local/httpd/conf/httpd.conf: Cannot load /usr/local/httpd/modules/mod_proxy.so into server: /usr/local/httpd/modules/mod_proxy.so: cannot open shared object file: No such file or directory # 上面的错误表明这个文件找不到了,其实是我临时移走了 ^.^ # 有时候你会看到一些[warn],这些可能会导致你的服务和自己想像的不一样,有助于你诊断错误,但并不一定有问题,也不会导致apache服务挂掉 # 如果你确认没有问题,可以忽略这些警告信息,比如像下面这样的 root@S71[1]lib# /usr/local/httpd/bin/apachectl configtest [Thu Aug 14 17:29:36 2008] [warn] NameVirtualHost *:7777 has no VirtualHosts [Thu Aug 14 17:29:36 2008] [warn] NameVirtualHost *:80 has no VirtualHosts Syntax OK
配置文件 my.cnf (Windows中可能叫做my.ini)
检查方法 执行`mysqld --help'
详细说明
# 通常MySQL安装好之后,'mysqld' 这个程序就在安装目录中的bin目录下,比如我后面运行的mysqld程序就是在我的安装目录(/usr/local/mysql)下的bin目录中,你可能需要找到真实的程序位置来执行检查 # 如果是二进制安装,比如rpm或者deb包,大部分情况mysqld这个命令已经被放到了PATH可以引用到的位置,这样你直接执行`mysqld --version' 就可以了 # mysqld程序会首先检查配置文件是否正常,如果有明显的配置问题,它会报错,否则他将正常输出mysqld的版本信息 # 有时候你启动的服务除了去读配置文件外,还需要在命令行里写大量的配置信息,那么你可以参考下面的写法 /usr/local/mysql/bin/mysqld --defaults-extra-file=/var/mydata/my.cnf --basedir=/usr/local/mysql --datadir=/var/mydata --user=mysql --pid-file=/var/mydata/mysql.pid --skip-locking --open-files-limit=8192 --socket=/var/mydata/mysql.sock --port=3306 --version #这个命令会按照你的配置参数去测试,这样就很方便,即便配置失败了,也只不过报个错而已 # 正确范例: root@S71[1]lib# /usr/local/mysql/bin/mysqld --defaults-extra-file=/var/mydata/my.cnf --basedir=/usr/local/mysql --datadir=/var/mydata --user=mysql --pid-file=/var/mydata/mysql.pid --skip-locking --open-files-limit=8192 --socket=/var/mydata/mysql.sock --port=3306 --version /usr/local/mysql/bin/mysqld Ver 5.1.25-rc-log for redhat-linux-gnu on i686 (MySQL Community Server (GPL)) # 错误范例: # 这里为了制造错误,特别在/var/mydata/my.cnf中写了一句key_buffer_size=yfang root@S71[1]lib# /usr/local/mysql/bin/mysqld --defaults-extra-file=/var/mydata/my.cnf --basedir=/usr/local/mysql --datadir=/var/mydata --user=mysql --pid-file=/var/mydata/mysql.pid --skip-locking --open-files-limit=8192 --socket=/var/mydata/mysql.sock --port=3306 --version Unknown suffix 'y' used for variable 'key_buffer_size' (value 'yfang') 080814 17:18:10 [Warning] option 'key_buffer_size': unsigned value 0 adjusted to 8 080814 17:18:10 [ERROR] /usr/local/mysql/bin/mysqld: Error while setting value 'yfang' to 'key_buffer_size'
配置文件 php.ini
检查方法 执行`php -v'
详细说明
# 通常php安装好之后,'php'这个程序就在安装目录中的bin目录下,比如我后面运行的php程序就是在我的安装目录(/usr/local/php)下的bin目录中,你可能需要找到真实的程序位置来执行检查
# 如果是二进制安装,比如rpm或者deb包,大部分情况php这个命令已经被放到了PATH可以引用到的位置,这样你直接执行`php -v' 就可以了
# 正确范例:
root@Server[1]lib# /usr/local/php/bin/php -v
PHP 5.2.6 (cli) (built: Aug 8 2008 16:08:19)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
# 错误范例:
# 下面是一个典型的错误输出,报告找不到配置文件中设定的so,原因是没有更改extension_dir,找不到指定的so文件
root@Server[1]lib# /usr/local/php/bin/php -v
PHP Warning: PHP Startup: Unable to load dynamic library './curl.so' - ./curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library './tidy.so' - ./tidy.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.2.6 (cli) (built: Aug 8 2008 16:08:19)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies