fastcgi php 进程用户 lighttpd,安装配置Linux+lighttpd+mysql+PHP(FastCGI)

周通
2023-12-01

安装配置Linux+lighttpd+mysql+PHP(FastCGI) .

分类: Linux-web服务器搭建 2009-08-28 17:38 3758人阅读 评论(0) 收藏 举报

安装配置Linux+lighttpd+mysql+PHP(FastCGI)

作者:zccst

Linux系统:CentOS 5.3

前面的话

本文详细介绍了Linux+lighttpd+mysql+PHP(FastCGI)方式的安装配置过程。全文按三大块内容详细阐述,分别是1,lighttpd,mysql,PHP安装过程。2,三者之间的关联配置。3,简单测试。以下是详细内容。

注1:由于技术日新月异,不同软件间难免会出现异步,即便同步,不同时期发行的版本之间也会存在不兼容。比如,PHP从5.3.0开始,支持fastcgi的方式,已经发生改变。对于lighttpd,从1.4.23开始,也调整了布局,根本没有/bin目录,更谈不上/bin/spawn-cgi。如果你使用最新版本软件,却按照以前的方法进行安装配置,肯定会出错。

本文使用版本:

lighttpd  1.4.18

mysql    5.1.30

php       5.2.10

注2:所有用到源码安装的软件,都没有给出下载过程,而是直接使用。原因自明。

Lighttpd,mysql,PHP安装过程

安装lighttpd-1.4.18

一、安装

1, Pcre

(1) 下载。

(2) 安装。rpm -ivh pcre-devel-4.5-3.2.SEL4.i386.rpm --nodeps(强制安装)

(3) 输入rpm -qa |grep pcre

返回结果:pcre-4.5-3 或 pcre-devel-4.5-3.2.SEL4 表示已经成功安装

2, lighttpd

tar

cd

./configure --prefix=/opt/lighttpd

make

make install

二、配置

mkdir /etc/lighttpd/         #用来存放主配置文件

mkdir -p /var/www/htdocs  #用来存放网站

mkdir /opt/lighttpd/log      #用来存放日志

cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd

vi lihttpd  修改所在路径为 lighttpd="/opt/lighttpd/sbin/lighttpd"

cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf

vi  lighttpd.conf(修改主配置文件)

(1)修改默认目录路径

设置错误日志文件路径

server.errorlog = "/opt/lighttpd/logs/lighttpd.error.log" (43行)

设置访问日志文件路径

accesslog.filename = "/opt/lighttpd/logs/access.log" (116行)

(2)把#server.port                = 81 前的#去掉

(3)用什么权限来运行lighttpd

server.username = "lighttpd"

server.groupname = "lighttpd"

从安全角度来说,不建议用root权限运行web server,可以指定普通用户权限。

(4)#$HTTP["url"] =~ "/.pdf$" {

# server.range-requests = "disable"

#}

创建lighttpd用户

useradd lighttpd

chown –R lighttpd:lighttpd /opt/lighttpd/

chown –R lighttpd:lighttpd /var/www/htdocs/

三、启动并测试。由于下面还要安装其它软件,可暂不测试。

启动命令:

/opt/lighttpd/sbin/lighttpd –f /etc/lighttpd/lighttpd.conf

查看端口(81)

netstat –ln|more

安装mysql-5.1.30

一、安装

tar

cd

./configure –prefix=/opt/mysql

make

make install

二、配置

1, 修改主配置文件

cp support-files/my-medium.cnf /etc/my.cnf

将/etc/my.cnf文件中的skip-federated注释掉

2,添加mysql用户

useradd mysql

chown –R mysql:mysql /opt/mysql          (主文件夹)

chown –R mysql:mysql /etc/my.cnf          (主配置文件)

注:权限问题非常重要,稍不注意就会出错。

三、启动

1, 生成mysql用户数据库和表文件

./mysql_install_db --user=mysql

运行之后在/opt/mysql/下会生成var/文件夹,现更改其属主。

chown –R mysql:mysql /opt/mysql/var

2, 启动服务器端。

./mysqld_safe --defaults-file=/etc/my.cnf &

3, 用客户端登录访问数据库

./mysql –u root –p

四、使用

第一次登陆密码为空,直接按回车就可以使用数据库了。

安装php-5.2.10

一、安装

1,GD库(共6 + 1 = 7个),为了减少篇幅,具体执行略去,需要注意的地方已标出。

(1)zlib

(2)jpeg6      mkdir /opt/jpeg6/

mkdir /opt/jpeg6/bin/

mkdir /opt/jpeg6/lib/

mkdir /opt/jpeg6/include/

mkdir /opt/jpeg6/man/

mkdir /opt/jpeg6/man1/

mkdir /opt/jpeg6/man/man1/

--prefix=/opt/jpeg6/ --enable-shared --enable-static(注:添加参数)

make install-lib

(3)libpng

(4)freetype   --prefix=/opt/freetype/

(5)libxml2   cp xml2-config /usr/bin

(6)fontconfig  --prefix=/opt/fontconfig  --with-freetype-config=/opt/freetype/bin/freetype-config

注:如果在安装fontconfig时, ./configure  出现以下错误

checking for LIBXML2... configure: error: Package requirements (libxml-2.0 >= 2.6) were not met:

No package 'libxml-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBXML2_CFLAGS

and LIBXML2_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

解决办法:

yum install libxml2-devel

最后按照GD,把上面6个关联起来,顺序与上面对应:

(7)gd         --prefix=/opt/gd --with-zlib-dir --with-jpeg=/opt/jpeg6/ --with-png-dir --with-freetype=/opt/freetype/ --with-libxml2-dir --with-fontconfig=/opt/fontconfig/

可选安装:curl  libxslt

2,php

tar

cd

./configure  --prefix=/opt/php    --enable-fastcgi  --enable-force-cgi-redirect  --with-mysql=/opt/mysql/  --with-gd=/opt/gd/    --with-libxml-dir

make

make test

注:如果在make test时出现以下错误

cannot restore segment prot after reloc permission denied

问题原因:权限问题。

解决办法:

1,编辑/etc/sysconfig/selinux,找到:

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=enforcing

如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:

SELINUX=disabled

保存,退出。

2,在你保证SElinux 被disabled后.还执行下chcon -t texrel_shlib_t

如: chcon -t texrel_shlib_t /路径/路径/名字.so   (这个文件视具体执行文件.)

两步后,应该就ok了。

再次make test ,顺利完成!~~~

make  install

二、配置

cp php.ini-dist /opt/php/lib/php.ini

三者之间的关联配置

一、在php的主配置文件里,修改与lighttpd相关联的内容

cgi.fix_pathinfo=1 ,把前面的注释 ; 去掉,再把后面的值改为1。保存退出。

二、在lighttpd的主配置文件里,修改与php相关联的内容

1,server.modules(在24行)

取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,

mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。

2, 设置网站根目录路径

server.document-root    = "/var/www/htdocs/"

3,找到fastcgi的定义

#### fastcgi module

## read fastcgi.txt for more info

## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini

fastcgi.server = ( ".php" =>

( "localhost" =>

(

"socket" => "/var/run/lighttpd/php-fastcgi.socket",

"bin-path" => "/opt/php/bin/php-cgi"

)

)

)

三、       mysql与lighttpd、php相关联.(此处不需任何修改)

仅仅在安装php时 ./configure 加上 --with-mysql=/opt/mysql/ 就可以了。

vi /opt/lib/php.ini

查找register_globals = Off,把off改成On

再查找short_open_tag = Off,把off改成On

在查找extension=php_mbstring.dll把前面"#"号都去了,这样才能启动这条参数的功能。

比如要使PHP支持mysql,那么就要吧extension=php_mysql.dll前面的"#"去掉。

简单测试

首先关闭安装lighttpd时,启动的进程,然后重新启动lighttpd

/opt/lighttpd/sbin/lighttpd –f /etc/lighttpd/lighttpd.conf

注:如果重启出现以下错误

2009-08-28 16:59:07: (mod_fastcgi.c.900) bind failed for: unix:/var/run/lighttpd/php-fastcgi.socket-0 No such file or directory

2009-08-28 16:59:07: (mod_fastcgi.c.1336) [ERROR]: spawning fcgi failed.

2009-08-28 16:59:07: (server.c.895) Configuration of plugins failed. Going down.

问题原因:版本不兼容问题。

解决办法:

cd /var/run

mkdir lighttpd

重启lighttpd,成功启动!~~~

cd  /var/www/htdocs

vi  test.php

phpinfo();

?>

保存退出后。

在浏览器里输入:http://本机ip/test.php

如果显示PHP页面表示已经安装成功!~~~

 类似资料: