Linux 上完全手动编译安装 Lighttpd + PHP4(FastCGI) + eAccelerator


需要软件
Lighttpd http://www.lighttpd.net/download/
PHP4 http://www.php.net/downloads.php
EAccelerator http://sourceforge.net/project/showfiles.php?group_id=122249

我目前的安装测试环境如下
Fedora core 3
MySQL 4.0.15a
CPU 赛阳 1.2G , RAM 384MB

由于是手动编译安装
因此请下载 tar.gz 格式的 source package
下载完之后 请放到 /usr/local/src

=================================================================================
第一步 : 先安装 Lighttpd
安装前的准备动作
首先要建立一个使用者来执行 lighttpd
可以下指令 useradd lighttpd
记得要把 /etc/passwd 的 lighttpd 这个 user 的shell从 /bin/bash 改成 /bin/nologin

开始安装 lighttpd
首先下指令 tar -xzf lighttpd-1.3.12.tar.gz , 把档案解开之后
下指令 cd lighttpd-1.3.12
然后要决定好 lighttpd 的安装位置
./configure --prefix=/usr/local/lighttpd
接着下 make , 如果 make 没问题 , 那就下达 make install 开始安装
安装成功之后 , 会发现LightHttpd 已经安装在 /usr/local/lighttpd

接着编写设定档 , 由于 lighttpd 不会帮你自动设定设定档 , 所以要自己写
或者把 /usr/local/src/lighttpd-1.3.12/doc 内的 lighttpd.conf 看看自己修改
这里提供一个设定范例 , 请各位下载本页的附件 , 有些许我加上的中文(big5)说明
然后请看每个批注 , 改成您需要的
PS : 附件中的设定文件范例有 Virtual Hosts , PHP , 网页压缩与 user_dir 的设定,对一般人来说应该足够

若要使用我提供的设定档
请在 /usr/local/lighttpd 下建立 conf 活页夹与 logs 活页夹
然后把 lighttpd.conf 放到 conf 活页夹下
接着再把附件中的 spawn-php.sh 放到 /usr/local/lighttpd/bin 活页夹下
接着请下指令 chown lighttpd.lighttpd /usr/local/lighttpd -Rf
PS: 附件中的 spawn-php.sh 是把 PHP with FastCGI 的环境变量初始化 , 内容各位也可以改

到这步骤应该是都可以了 , 但是请先别急
由于 PHP 还没安装 , 因此现在若启动 lighttpd 要测试会发生错误
所以接下来要安装 PHP with FastCGI

=================================================================================
第二步 : 安装 PHP with FAST CGI
把工作目录切换到 /usr/local/src
然后下指令解开 PHP
tar -xzf php-4.3.10.tar.gz
接着进入 php-4.3.10 (cd php-4.3.10)
开始下指令
./configure --prefix=/usr/local/php-fcgi --enable-fastcgi --with- mysql=/usr/local/ mysql --enable-zend-multibyte --with-config-file-path=/usr/local/php-fcgi/conf --enable-discard-path --enable-force-cgi-redirect

这部分若要加上其它 PHP 功能请自行加上参数
唯一与以前不同点是 , 编译成 fastcgi 模块 , 比需使用 --enable-fastcgi
以前与 apache2 一起编译是使用 --with-apxs2 , 此时不能再下这道指令

若没有问题 , 就执行 make 与 make install
这时候 PHP 会安装在 /usr/local/php-fcgi 这个活页夹了
然后在 /usr/local/php-fcgi 建立一个 conf 的活页夹
把 /usr/local/src/php-4.3.10 下的 php.ini-dist 复制到 /usr/local/php-fcgi/conf/php.ini
指令是 cp /usr/local/src/php-4.3.10/php.ini-dist /usr/local/php-fcgi/conf/php.ini

=================================================================================
第三步 : 安装 EAccelerator
把工作目录切换到 /usr/local/src
然后下指令解开 EAccelerator
tar -xzf eaccelerator-0.9.2a.tar.gz
接着进入 eaccelerator-0.9.2a 这个活页夹(cd eaccelerator-0.9.2a)
开始下指令
export PHP_PREFIX="/usr/local/php-fcgi"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
EAccelerator 会安装在 /usr/local/php-fcgi/lib/php/extensions/no-debug-non-zts-XXXXXX 这个目录
上面目录后面的XXXXXX 要自己看喔(非常重要)

接着要编辑 /usr/local/php-fcgi/conf/php.ini
找到一行 cgi.fix_pathinfo
要写成 cgi.fix_pathinfo = 1
若没有这行 , 请自行加入就可

然后加入
extension="eaccelerator.so"
eaccelerator.shm_size="8"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
检查一下 extension_dir 这个设定是否如下
extension_dir = "/usr/local/php-fcgi/lib/php/extensions/no-debug-non-zts-XXXXXX/"
最后存档

=================================================================================
最后步骤 : 测试 lighttpd
lighttpd 我们是安装在 /usr/local/lighttpd
因此执行 /usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/conf/lighttpd.conf
可以下 ps -aux 看看有没有许多 php 的行程
若有,那代表你成功了
你一定会烦..怎么那么多 php 程序啊 ?? 其实不要紧张
那些都是多执行绪 , 占用内存很小

如何关闭 lighttpd , 可以下指令 killall lighttpd , 这样就可以关闭
如何一开机启动 lighttpd ?
在 /etc/rc.d/rc.local 新增一行
/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/conf/lighttpd.conf
这样每次开机就会去启动了

如何测试效能 ???
若您之前有安装 apache with php
请先把 apache 用别的 port 来跑 , 例如 81
然后可以利用 apache 提供的 ab 来测试
例如 ab -c 10 -n 100 http://localhost/test.php 来测试 port 80
然后可以下 ab -c 10 -n 100 http://localhost:81/test.php 来测试 port 81
你会发现 lighttpd 跑的速度比 apache 快 50%~200% 以上喔 !!!!

==========================================================

讲解一下 , 为何用 lighttpd
1. 省内存 , 速度快
2. 使用 FastCGI 来与 PHP 做沟通 , 可以达到 chroot 的功能 , 不过范例中我没写上去 , 意思是每个用户有独立的读写权限 , 无法侵犯他人
3. lighttpd 的设定档虽然"目前"要自己写 , 可是其语法很容易理解

以下是我的测试效能
Lighttpd 的部分测试 phpMyAdmin
./ab -c 10 -n 100 http://192.168.0.254/~pigo/phpMyAdmin/index.php
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.254 (be patient).....done

Server Software: lighttpd/1.3.12
Server Hostname: 192.168.0.254
Server Port: 80

Document Path: /~pigo/phpMyAdmin/index.php
Document Length: 2463 bytes

Concurrency Level: 10
Time taken for tests: 2.250865 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 267100 bytes
HTML transferred: 246300 bytes
Requests per second: 44.43 [#/sec] (mean)
Time per request: 225.086 [ms] (mean)
Time per request: 22.509 [ms] (mean, across all concurrent requests)
Transfer rate: 115.51 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 10.6 0 55
Processing: 19 86 106.9 21 706
Waiting: 19 85 106.5 20 704
Total: 19 89 112.5 21 751

Apache 2 的部分测试 phpMyAdmin
./ab -c 10 -n 100 http://192.168.0.254:81/~pigo/phpMyAdmin/index.php
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.254 (be patient).....done

Server Software: Apache/2.0.52
Server Hostname: 192.168.0.254
Server Port: 81

Document Path: /~pigo/phpMyAdmin/index.php
Document Length: 2463 bytes

Concurrency Level: 10
Time taken for tests: 13.81193 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 278100 bytes
HTML transferred: 246300 bytes
Requests per second: 7.64 [#/sec] (mean)
Time per request: 1308.119 [ms] (mean)
Time per request: 130.812 [ms] (mean, across all concurrent requests)
Transfer rate: 20.72 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 39 155.1 0 918
Processing: 111 1141 1005.0 912 5239
Waiting: 10 1124 1008.6 911 5238
Total: 111 1181 1001.7 932 5239

原文地址: http://blog.sina.com.tw/archive.php?blog_id=3759&md=entry&id=9778
简体了一下,大陆人看着方便些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
交叉编译 lighttpdphp_fpm 需要进行以下步骤: 1. 安装交叉编译工具链:根据目标平台选择合适的交叉编译工具链,例如 arm-linux-gnueabi-gcc 或者 aarch64-linux-gnu-gcc 等,并将其添加到 PATH 环境变量中。 2. 下载 lighttpdphp 源码:从官网下载 lighttpdphp 的源码包,例如 lighttpd-1.4.54.tar.gz 和 php-7.4.16.tar.gz。 3. 解压源码包:使用 tar 命令解压源码包,例如: ``` tar zxvf lighttpd-1.4.54.tar.gz tar zxvf php-7.4.16.tar.gz ``` 4. 进入 lighttpd 源码目录:进入解压后的 lighttpd 源码目录,例如: ``` cd lighttpd-1.4.54 ``` 5. 配置编译选项:使用交叉编译工具链配置编译选项,例如: ``` ./configure --host=arm-linux-gnueabi ``` 6. 编译 lighttpd:使用 make 命令编译 lighttpd,例如: ``` make ``` 7. 进入 php 源码目录:返回上级目录,进入解压后的 php 源码目录,例如: ``` cd ../php-7.4.16 ``` 8. 配置编译选项:使用交叉编译工具链配置编译选项,例如: ``` ./configure --host=arm-linux-gnueabi --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-short-tags --disable-phpdbg ``` 其中,--with-pdo-mysql 和 --with-mysqli 用于支持 MySQL 数据库,--with-openssl 用于支持 SSL/TLS 加密,--enable-fpm 和 --with-fpm-user、--with-fpm-group 用于编译 php_fpm。 9. 编译 php_fpm:使用 make 命令编译 php_fpm,例如: ``` make ``` 10. 将编译完成的 lighttpdphp_fpm 拷贝到目标平台上。 以上就是交叉编译 lighttpdphp_fpm 的步骤,需要注意的是,编译选项需要根据实际情况进行调整,例如根据目标平台选择合适的交叉编译工具链、选择需要支持的模块等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值