Ross Wan's World!

Python, Ajax, PHP and Linux.

Posts Tagged ‘PHP’

Windows 下 Apache + PHP + MySQL 配置笔记

Posted by Ross Wan 于 2008/11/20

众所周知,LAMP 是最佳组合(貌似近年来 Apache 有被轻量级的 Web 服务器取代之势,如 Lighttpd 等),今天因需要,在 Windows 下配置,结果遇到不少困难。虽然网上有众多的配置,但很多雷同。下面对自己的配置作笔记。

Apache

假设安装目录为 D:\apache

成功安装后,执行以下代码添加 Apache 服务:

cd d:\apache\bin
httpd.exe -k install -n apache

修改文档根目录,默认是在 D:\apache\htdocs,现修改为 E:\www。编辑 D:\apache\conf\httpd.conf文件,查找下面的内容:

DocumentRoot "D:\apache\htdocs"

<Directory "D:\apache\htdocs">

修改为:

DocumentRoot "E:\www"

<Directory "E:\www">

启动 Apache

net start apache

PHP

解压安装到 D:\php

将 D:\php;D:\php\ext 加到系统的环境变量。

进入 php 安装目录,将 php.ini-dist 或 php.ini-recommended 复制一份,命名为 php.ini。

对 D:\apache\conf\httpd.conf 文件作以下增改:

PHPINIDir D:\php

LoadModule php5_module D:\php\php5apache2_2.dll

<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
</IfModule>

AddType application/x-httpd-php .html
AddType application/x-httpd-php .php

测试:

在 E:\www 目录下新建一个 index.php 文件,内容为:

<?php
    phpinfo();
?>

重启 Apache 服务器,在浏览器打开 http://127.0.0.1:8080

MySQL

解压安装到 D:\mysql

进入 mysql 安装目录,复制其中一份 my-*.ini 文件,命名为 my.ini。对 my.ini 文件作以下的增改:

[WinMySQLAdmin]
Server=D:\mysql\bin\mysqld-nt.exe

[mysqld]
basedir=D:\mysql
datadir=E:\mysqldata

上面的 datadir=E:\mysqldata 是设置数据库的保存目录,默认是在 D:\mysql\data。之后,务必复制 D:\mysql\data\mysql 目录到 E:\mysqldata。

执行下面代码添加一个 mysql 服务:

cd d:\mysql\bin

mysqld-nt.exe -install mysql

修改 D:\php\php.ini 文件,将 “;extension=php_mysql.dll” 一行前面的”;”去掉,以启用 mysql 扩展:

extension=php_mysql.dll

同时修改 php.ini 里面的 extension_dir:

extension_dir = "D:\php\ext"

接着需要修改 D:\apache\conf\httpd.conf,让 Apache 可以正确加载 Mysql 模块:

LoadFile D:\php\php5ts.dll
LoadFile D:\php\libmysql.dll

测试:

解压 phpMyAdmin 到 E:\www\phpmyadmin

里面的 config.sample.inc.php 文件复制一份,命名为 config.inc.php。修改 config.inc.php 文件,设置 $cfg[‘blowfish_secret’],可以设为任意值:

$cfg['blowfish_secret'] = 'phpmyadmin';

修改 D:\php\php.ini 文件,去掉下面几行前面的”;”,因为 phpmyadmin 需要用到这些模块:

extension=php_mbstring.dll
extension=php_mcrypt.dll

修改 D:\apache\conf\httpd.conf 文件,以正确加载上面的模块:

LoadFile D:\php\libmcrypt.dll

启动 MySQL 服务:

net start mysql

重启 Apache 服务器,在浏览器里打开 http://127.0.0.1:8080/phpmyadmin

Posted in PHP | Tagged: , , , , , | Leave a Comment »

Drupal:关于数据库设置问题

Posted by Ross Wan 于 2008/11/08

在网上经常有看到,在配置 Drupal 时无法通过数据库这个步骤,而且 Drupal 没有显示出错,但一直在循环要求用户配置数据库。

之所以出现这个问题,很可能是因为丢失 default.settings.php 文件。很多用户在根据 Drupal 安装教程进行配置,但没有执行教程里面所说的:

cp sites/default/default.settings.php sites/default/settings.php

而是简单的作重命名就算:

mv sites/default/default.settings.php sites/default/settings.php

解决方法就是复制回一份 default.settings.php 文件就行。如:

cp sites/default/settings.php sites/default/default.settings.php

又或者直接编辑 settings.php 文件,手动加入数据库的配置:

$db_url = 'mysql://username:password@localhost/databasename';

Posted in Drupal, PHP | Tagged: , , , , , , | Leave a Comment »

Archlinux: 以 non-root 运行 Lighttpd

Posted by Ross Wan 于 2008/11/07

假设 arch 为系统已经存在的非管理员账户(non-root)和组。

$ groups

可以查看用户 arch 是否已经加入 arch 组。

所用软件版本: PHP 5.2.6,Lighttpd 1.4.20。

安装 Lighttpd、PHP、Fastcgi

# pacman -S lighttpd php fcgi

配置 PHP

修改 /etc/php/php.ini,去掉以下行前面的注释:

cgi.fix_pathinfo=1
open_basedir = /home/:/tmp/:/usr/share/pear/

配置 Lighttpd

修改 /etc/lighttpd/lighttpd.conf 文件,注释或者添加以下行:

server.document-root    = "/home/arch/http/www/"

server.modules    = (
                    "mod_access",
                    "mod_fastcgi",
                    "mod_accesslog"
                    )

fastcgi.server    = ( ".php" =>
                           ( "localhost" =>
                             (
                               "socket" => "/tmp/php-fastcgi.socket",
                               "bin-path" => "/usr/bin/php-cgi"
                             )
                           )
                    )

server.username   = "arch"
server.groupname    = "arch"

注: server.document-root 是设置文档根目录,方便 arch 用户来管理。

更改相关日志的权限

# chown arch arch /var/log/lighttpd/*.log

修改 /etc/logrotate.d/lighttpd,在第二行添加 create 644 arch arch,示例:

/var/log/lighttpd/*log {
     create 644 arch arch
    postrotate
       /bin/kill -HUP `cat /var/run/lighttpd/lighttpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
 }

运行 Lighttpd

在 /home/arch/http/www/ 下创建 index.php 文件:

<?php
phpinfo();
?>

启动 Lighttpd daemon:

# /etc/rc.d/lighttpd start

在浏览器里打开 http://localhost/。如果配置成功的话,会显示正确的 PHP 信息。

Posted in Archlinux, lighttpd, PHP | Tagged: , , , | Leave a Comment »