fedora linux平台下搭建lighttpd+php+sqlite

时间:2021-06-05 18:16:26

(一)lighttpd

1. 安装

yum install lighttpd

安装完毕后,系统中应该多了一个用户lighttpd和组lighttpd。这个用户,默认是不同意登陆的。

我们改动/etc/passwd,将lighttpd改动为例如以下形式。

lighttpd:x:489:470:lighttpd web server:/home/lighttpd/:/bin/bash

注意,你所示数字可能不是489,470,这个没关系,也不用改,保持原来的值就可以。

2. 为lighttpd用户创建一个文件夹,将站点的内容放进去

mkdir   /home/lighttpd

chown lighttpd:lighttpd   /home/lighttpd

创建相关子文件夹,并放入站点的内容。

注意,/home/lighttpd以lighttpd文件夹中的各种操作,都以lighttpd用户的身份来完毕。否则,lighttpd执行时可能会出现权限问题。

su lighttpd

cd /home/lighttpd

mkdir www

mkdir www/cgi-bin

mkdir www/databases

mkdir www/images

mkdir www/log

好了,如今能够往各个文件夹里放内容了,网页,图片,php脚本,sqlite数据库文件等。

index.html就放到www文件夹下。

3. 配置

改动lighttpd的配置文件  /etc/lighttpd/lighttpd.conf

a)打开cgi功能

当然,你也能够依据须要,打开其它的功能。我改动后的server.modules例如以下。

server.modules              = (

                                "mod_rewrite",

                                "mod_redirect",

#                               "mod_alias",

                                "mod_access",

#                               "mod_trigger_b4_dl",

#                               "mod_auth",

#                               "mod_status",

#                               "mod_setenv",

#                               "mod_fastcgi",

#                               "mod_proxy",

#                               "mod_simple_vhost",

#                               "mod_evhost",

#                               "mod_userdir",

                                "mod_cgi",

                                "mod_compress",

#                               "mod_ssi",

                                "mod_usertrack",

#                               "mod_expire",

#                               "mod_secdownload",

#                               "mod_rrdtool",

                                "mod_accesslog" )

b) 默认的文件名称

这里把default.xxx也给加上。

index-file.names            = ( "index.php", "index.html",

                                "index.htm", "default.htm", "default.php" )

c) 设置一些路径

server.document-root        = "/home/lighttpd/www/"



## where to send error-messages to

server.errorlog             = "/home/lighttpd/www/log/error.log"

accesslog.filename          = "/home/lighttpd/www/log/access.log"

#### php解析器的路径加上

cgi.assign                 = ( ".pl"  => "/usr/bin/perl",

                               ".php" => "/usr/bin/php-cgi" )

4. 启动lighttpd

service lighttpd start

5. 设置lighttpd开机自己主动启动

chkconfig --add lighttpd

(二)sqlite

这个简单,直接安装一下即可了。

yum install  sqlite

(三)php

1. 编译及安装

下载php源代码包

http://ar2.php.net/distributions/php-5.6.3.tar.bz2

将源代码包复制到 /root文件夹下

然后进入/root文件夹,运行例如以下命令序列

tar -xjf php-5.6.3.tar.bz2

cd php-5.6.3

./configure  --prefix=/usr --with-config-file-path=/etc --enable-libxml --with-libxml-dir=/usr/lib --with-sqlite3 --enable-pdo --with-pdo-sqlite CLAGS=-O2

make; make install

须要注意的是,这样的编译方式,支持訪问sqlite3的方式为pdo方式。这样的方式,不须要依赖不论什么extension

(四)測试

a)

用lighttpd用户,进入/home/lighttpd/www/databases文件夹,创建一个数据库

[lighttpd@localhost databases]$ sqlite3 test.db

SQLite version 3.6.22

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> create table my_friends(name varchar(10), age smallint);

sqlite> insert into my_friends values('tom',22);

sqlite> insert into my_friends values('liyan',21);

输入ctrl+d退出sqlite shell

b) 用lighttpd用户,进入cig-bin文件夹,创建一个php脚本haha.php,内容例如以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>



<body>



<?php

    //phpinfo();

    echo "hello  我的第一个php脚本<br>";

    echo getcwd();

        

    $file_db = new PDO('sqlite:../databases/test.db');

    $result = $file_db->query('SELECT * FROM my_friends');

        

    foreach($result as $row) 

    {

        echo " name: ".$row['name']."<br>";

    }

?>



</body>

</html>

c) 用浏览器訪问haha.php看看效果吧 :)

http://ip_of_lighttpd/cgi-bin/haha.php

假设在调试php程序时,遇到问题,能够打开/etc/php.ini,设置例如以下内容,以打开php的报错功能:

error_reporting = E_ALL & ~E_NOTICE

display_errors = On