Apache配置文件学习(一) (Linux/Unix)
发布于 2009-03-11 21:40 阅读:12739 评论:1 标签: apache 配置

    1:<IfDefine [!]parameter-name> ... </IfDefine>
    而parameter-name是在服务启动时,通过httpd命令行的 -Dparameter 这样的形式指定的。

    2:<IfModule [!]module-file|module-identifier> ... </IfModule>
    module可以是模块的标识符或者是编译模块时的文件名。比如,rewrite_module就是一个模块标识符,而mod_rewrite.c则是编译模块时的文件名。如果模块包含多个源代码文件,您应当使用包含 STANDARD20_MODULE_STUFF 字符串的那个。

    而STANDARD20_MODULE_STUFF请参考:《编写第一个Apache模块――mod_helloworld

    3:User/Group指令用于设置实际提供服务的子进程的用户/组。为了使用这个指令,服务器必须以root身份启动和初始化。如果你以非root身份启动服务器,子进程将不能够切换至非特权用户/组,并继续以启动服务器的原始用户身份运行。如果确实以root用户启动了服务器,那么父进程将仍然以root身份运行。

    Unix-userid是下列值之一:

以下是引用片段:

 1:一个用户名/组:通过用户名/组引用用户/组
 2:"#"号后面跟一个用户/组编号 :通过用户/组编号引用用户/组

    用于运行子进程的用户必须是一个没有特权的用户/组,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户/组亦需没有执行那些不应当被外界执行的程序的权限。

    进程的用户及层次关系可见:

以下是引用片段:
[root@login yayu]# pstree -apu | grep http
  |-httpd,10914 -DSSL
  |   |-httpd,8483,web -DSSL
  |   |-httpd,8489,web -DSSL
  |   |-httpd,8551,web -DSSL
  |   |-httpd,8552,web -DSSL
  |   |-httpd,8553,web -DSSL
  |   |-httpd,8554,web -DSSL
  |                       |-grep,8558 http


    4:如果在<VirtualHost>外设置了一个ServerName,而一个请求不能与某个ServerName指令相匹配,它将会由第一个<VirtualHost>段所伺服。

    5:ServerRoot指令设置了服务器所在的目录。一般来说它将包含conf/和logs/子目录。其它配置文件的相对路径即基于此目录 (比如Include或LoadModule)。而指定ServerRoot、DocumentRoot时不应包括最后的"/"。

    6:Order指令控制默认的访问状态与Allow和Deny指令生效的顺序,变态的命令。

    下面例子中,apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝以外,其他都允许访问。而所有不在apache.org域中的主机都不允许访问,因为默认状态是拒绝对服务器的访问。

以下是引用片段:
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

    另一方面,如果上个例子中的Order指令改变为"Deny,Allow",将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何,"Allow from apache.org"指令会最后被评估到并覆盖之前的"Deny from foo.apache.org"。所有不在apache.org域中的主机也允许访问是因为默认状态被改变到了允许。说白了就是控制Allow和Deny两个指定的顺序。

展开全文  
收起全文  
芽雨配置php服务器手记 (PHP心得)
发布于 2006-09-15 12:41 阅读:12970 评论:4 标签: php 服务器 配置

我安装这个服务器,参照了三个人的文章,如下:非常感谢他们

吟清PHP学习之路第二步 - 安装配置PHP运行环境!
http://www.aspid.cn/blog/article.asp?id=305

如何安装配置phpMyAdmin进行数据库的管理http://blog.wenxue.li/archives/?article-46.html

安装php mysql apache
http://nonoroom.spaces.live.com/blog/cns!5AAD7F8C6C6BEF96!110.entry


软件下载地址:

Apache 2.0.58 for Windows:   http://www.onlinedown.net/soft/11528.htm
PHP 4.4.2 :
http://www.onlinedown.net/soft/1774.htm
phpMyAdmin 2.8.2:            http://www.onlinedown.net/soft/2622.htm
Zend Optimizer 2.5.7:        http://www.onlinedown.net/soft/32228.htm
MYSQL For Windows V4.1.20:   http://www2.skycn.com/soft/24418.html

PHP 5.1.4        http://www.onlinedown.net/soft/1772.htm
MYSQL 5.1.11 beta   http://www.onlinedown.net/soft/3575.htm

在芽雨的安装中,目录是这样的,根目录为D:\WebPHP。下面分:PHP,Apache2,MySQL,WWW。他们分别放置PHP系统文件,Apache2系统文件,MySQL系统文件,网站程序。

安装mysql-4.1.20-win32:

    选择Custom安装。目的是安装在自己设置的目录。
    在选择安装目录中,设置为:D:\WebPHP\MySQL
    在“MySQL.com Sign-up”中,我选择的是“Skip Sign-Up”
    在“Please select the default character set”中,偶选择的是第三种,并在“character set”中选择“gb2312”
    在设置密码时,偶还选择了“enable root access from remote machines”。意思大概是允许远程管理数据库吧。
    装好以后,我们来检验一下安装好了没有。
    开始--运行--cmd:我们进入DOS下。进入D:\WebPHP\MySQL\bin目录。
    输入进入数据库的命令:mysql -hlocalhost -uroot -yayu。解释一下:-h后为主机地址,-u后面为管理员帐号,-p后为密码。这个命令很好记的。h是host,u是user,p是password。
    好了,芽雨已经进去了。我们再看看默认的数据库有没有。运行:show databases;。记得命令后有分号!
    好,现在我已经看见系统显示了两个数据库:mysql和test。OK!芽雨成功了

安装apache_2.0.58-win32-x86-no_ssl.msi

    在“server information”中,芽雨不知道那是什么意思。就写上了我的网站和Email。
    选择Custom安装。目的和上面一样,是为了安装在自己设置的目录。
    在选择安装目录中,设置为:D:\WebPHP\。请注意,我在这没有在后面加“Apache\”,因为只有这样,"Apache2"才会成为WebPHP下的第一级子目录。
    安装完了,你会发现右下角多了一个图标,那是Apache的服务标志!
    这时你在IE中输入“http://localhost/”或者“http://127.0.0.1”。如果出现了Apache的提示成功的页面,那你就成功了!

安装php-4.4.2-Win32

    解压php-4.4.2-Win32.zip,把里面的php-4.4.2-Win32文件夹复制到D:\WebPHP\目录里,并改名为:PHP。
  请将“D:\WebPHP\PHP\php4ts.dll”移入D:\WebPHP\PHP\sapi”。最后将“D:\WebPHP\PHP\php.ini-dist”改名为“php.ini”后移到 Apache2 的安装目录“D:\WebPHP\Apache2”下(注意:移到系统目录例如 C:\WINNT亦可,但这样重装系统后你又得重新配置PHP,这种移到Apache2目录的方法可以省去该麻烦)。
  最后,在 D:\WebPHP\php 下新建两个子目录“session”和“includes”(理由?呵呵,别急,下面会说明)

Apache及PHP的配置

  配置PHP的一些属性:打开“D:\WebPHP\Apache2\php.ini”。以下操作在此进行。

     1:配置PHP服务的文件夹(PHP文件放置的根目录),既你以后的程序都放在这里面以让IE能访问它。搜索“doc_root”。另它等于为:“doc_root = D:/WebPHP/WWW”。注意请使用斜杠"/"而非反斜杠"\"。下同!
     2:配置配置动态函数的路径,即PHP的扩展模块。搜索“extension_dir”,把它改为:“extension_dir = "D:/WebPHP/PHP/extensions"”。这时你搜索一下:“;extension=”,你将看见很多的东西,那都是PHP的扩张模块,当你需要的时候只要把前面的“;”去掉就可以了!
     3:配置定义 session 储存资料的文件路径。搜索“session.save_path”,会看见:“;session.save_path = /tmp”。前面有“;”,说明它没有被起用。这个问题在很多教程中都没有提到,而且一般SESSION在身份验证、购物车等时候才需要,所以初学者容易忽视。好,现在我们把它改为:“session.save_path = D:/WebPHP/PHP/session”。注意前面没有“;”了哈!
    4, 这个版本MySQL的加密算法变了,链接数据库明明输入了正确的密码还是出现
MySQL #1251 Error 错误:
Client does not support authentication protocol requested by server. Consider upgrading MySQL client

比如这段程序,可以用来检测数据库是否连接成功,运行会出现错误!

$link=mysql_connect('localhost','root','123');
if(!$link) echo "MySQL 数据库连接失败";
else echo "MySQL 数据库连接成功!";
mysql_close();
?>

吟清在Google找到解决方法:

mysql> SET PASSWORD FOR
-> ' some_user '@' some_host ' = OLD_PASSWORD(' newpwd ');

结合我们的实际情况,在 MySQL Command Line Client 下运行:

set password for root@localhost = old_password('123');

  配置Web服务器Apache

     1:依次展开“开始菜单==>程序==>Apache HTTP Server 2.0.48==>Configure Apache Server==>Edit the Apache httpd.conf Configuration File”,打开Apache的配置文件“httpd.conf”。或者直接在D:\WebPHP\Apache2\conf中打开httpd.conf。
     2:搜索“#Listen”,找到“#Listen 12.34.56.78:80”一行,如果想让Apache2只监听某一该IP段,这里就需要去掉注释,改成你需要的IP地址。例如,你只需要本机调试,不想让外部访问,那就改成 “Listen 127.0.0.1:80”,这样一来,只能从你本机访问(地址栏输入 127.0.0.1 或者 localhost)才能看到Apache2的页面。或者当你网卡绑定了两个以上的IPe而只想用其中某一个时也可以考虑用这个方法。一般而言不必对此做太多修改。
     3:搜索“#LoadModule”,会看见一大串连续的行。这些是Apache2为了解释特定的语言而引入的模块。请在后面加入新的一行:“LoadModule php4_module D:/WebPHP/PHP/sapi/php4apache2.dll”以使Apache2加入对PHP的支持。
    4:然后在这一行的后面再加上(其实加在哪里都一样,这样只是为了便于以后纠错):
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .phtml
    AddType application/x-httpd-php-source .phps

    
  上述几行的用处是添加Apache支持和解释的PHP后缀名。您一定可以想到,如果加入“AddType application/x-httpd-php .html”一行,那么直接把PHP文件存为html格式也不要紧,你的Apache还是会自己解释的。
   (如果使用的是Apache1.x版本,还需做以下操作:搜索“AddModule”,还是找到一大串的连续行。在最后一行的下面加上“AddModule mod_php4.c”一行。本文使用的是2.x系列,所以毋需此步骤。)
    5:修改默认的Apache所服务的文件夹,这里需要修改两个地方。
    搜索:“DocumentRoot”,找到:“DocumentRoot "D:/WebPHP/Apache2/htdocs"”,这里的目录是随你安装的地址不同而不同的。把它改为:“DocumentRoot "D:/WebPHP/WWW"”。然后在往下找找:“”这里也需要需要修改,显然,它应该为:“<Directory "D:/WebPHP/WWW">”。如果你还记得上面修改php.ini的情形,那你现在应该知道:如果要更换根目录,那么你需要修改三个地方!
    6:增加虚拟目录。如果需要增加虚拟目录,请添加类似“ Alias /manual "D:/WebPHP/Apache2/htdocs/manual/" ”的行。其中“Alians”后面的那个斜杠后面对应的是虚拟目录名,后面的是它的物理路径。上面的地址就可以通过“http://127.0.0.1/manual”来访问。
    7:自定义默认首页。查找 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php


   更改环境变量

  由于PHP在windows下运行时需要一些额外的DLL,所以需要用到“D:\WebPHP\PHP\dlls”下的那些文件。常规方法是将这些文件放到“C:\WINDOWS\system32”下,但这样一来每次重新装都要如此,所以我使用环境变量来避免此问题。桌面右击“我的电脑”==>“属性”==>“高级”==>“环境变量”==>“系统变量”==>找到“Path”一行,双击,在后面添加上述目录,注意记得在原先的环境变量后面加上分号以区分(即需要输入“;D:\WebPHP\PHP\dlls”)
   来,我们来看看我们现在的PHP环境变量。在一个php文件中写如下语句:

phpinfo();
?>

   然后打开它,你是不是可以看见了一个页面?这个页面芽雨也不是很懂,汗~~~

 

安装phpMyAdmin-2.8.2.zip 
 
     解压它,把里面的phpMyAdmin-2.8.2文件夹移动到D:\WebPHP\WWW。并改名为:“phpMyAdmin”。
     打开D:\WebPHP\WWW\phpMyAdmin\libraries里面的config.default.php。我们。来修改一下它。 
   
     1。设置站点。搜索“$cfg['PmaAbsoluteUri']”,把它设置为:“$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';”
     2:登陆phpMyAdmin时的设置
        $cfg['Servers'][$i]['auth_type']     = 'cookie';   
        $cfg['Servers'][$i]['user']          = 'root';     
        $cfg['Servers'][$i]['password']      = 'yayu'; 
config: 按照 自身 libraries/config.default.php 文件中的配置提供用户名和密码
cookie:用于输入口令方式登陆,如果选择此项,需要设置$cfg['blowfish_secret'] = 'cookie';(见后面的介绍)    

     3,“$cfg['DefaultLang'] =”一行后面是它默认的语言,这里我们将它改为“$cfg['DefaultLang'] = 'zh';”,顺便把下面10行左右的默认字符集“$cfg['DefaultCharset'] =”改为“$cfg['DefaultCharset'] = 'gb2312';”。

 

现在我们进入http://localhost/phpmyadmin/index.php。发现要登陆两次才进得去,原因未知。进入后,发现全是乱码!没关系,这可以改。把Language选项改为:“中文 - Chinese simplified”,再把“MySQL 连接校对”改为“gb2312_chinese_ci”,好了,中文出来了。以后在进行数据库操作的时候,如果发现有字符集的选项,和上面一样弄就可以了!


 补充:

如果出现“配置文件现在需要绝密的短语密码(blowfish_secret)”
那么请在$cfg['blowfish_secret'] = ' ';的等号里面设置你网站的cookie,例如:$cfg['blowfish_secret'] = 'www.taoliyuan.com.cn';
这是因为你的“$cfg['Servers'][$i]['auth_type'] = 'cookie'的原因。

 补充2:

感谢blacksheep提出了两个笔误,他的个人网站是http://www.phpone.cn,一个很好的域名。

展开全文  
收起全文