设为首页 收藏本站
查看: 675|回复: 0

[经验分享] lighttpd 1.4.21 + php 5.2.9 + fcgi + discuz5.5安装设置

[复制链接]

尚未签到

发表于 2017-4-11 06:04:27 | 显示全部楼层 |阅读模式
  一。安装php5.2.9

./configure  --prefix=/opt/app/php-cgi --enable-fastcgi  --enable-discard-path --enable-force-cgi-redirect --enable-sockets --disable-debug --with-gd --enable-gd-native-ttf --with-mysql  --with-config-file-path=/etc/php-cgi
  注意修改/etc/php-cgi/php.ini

cgi.fix_pathinfo = 1

make
sudo make install
  二。安装ZendOptimizer-3.3.3和eaccelerator


  • APC + Apache = Best performance
  • Memcached + Nginx = Best performance
  • Xcache + Lighttpd = Best performance
  1.PHP缓冲(加速)首选xcache,兼容性和性能表现都非常优秀。


2.如果你的PHP环境需要Zend Optimizer,就安装eAccelerator,并把Zend Optimizer的压缩级别调到0。
zend_optimizer.optimization_level=0

  ZendOptimizer安装很容易,不表
  eaccelerator安装:

export PHP_PREFIX="/opt/app/php-cgi"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
sudo make install
  在/etc/php-cgi/php.ini中添加如下

zend_extension="/opt/app/php-cgi/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
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"
eaccelerator.log_file = "/var/log/eaccelerator_log"
[Zend]
zend_extension_manager.optimizer=/opt/app/Zend-3.3/lib/Optimizer-3.3.3
zend_extension_manager.optimizer_ts=/opt/app/Zend-3.3/lib/Optimizer_TS-3.3.3
zend_optimizer.version=3.3.3
zend_extension=/opt/app/Zend-3.3/lib/ZendExtensionManager.so
zend_extension_ts=/opt/app/Zend-3.3/lib/ZendExtensionManager_TS.so
zend_optimizer.optimization_level=0
  三。安装lighttpd1.4.22
  ./configure --with-fam --prefix=/opt/app/lighttpd-bbs --sysconfdir=/etc/lighttpd-bbs
  groupadd www

useradd -g www -s /sbin/nologin -d /dev/null www
  配置:
  /etc/lighttpd-bbs/lighttpd.conf

server.modules              = (
"mod_rewrite",
"mod_redirect",
#                               "mod_alias",
"mod_access",
#                               "mod_cml",
#                               "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" )
server.document-root        = "/opt/webapps/bbs"
server.errorlog             = "/var/log/lighttpd/bbs-error.log"
# files to check for if .../ is requested
index-file.names            = ("index.php", "index.html",
"index.htm", "default.htm" )
## set the event-handler (read the performance section in the manual)
server.event-handler = "linux-sysepoll" # needed on OS X
# mimetype mapping
mimetype.assign             = (
".pdf"          =>      "application/pdf",
".sig"          =>      "application/pgp-signature",
".spl"          =>      "application/futuresplash",
".class"        =>      "application/octet-stream",
".ps"           =>      "application/postscript",
".torrent"      =>      "application/x-bittorrent",
".dvi"          =>      "application/x-dvi",
".gz"           =>      "application/x-gzip",
".pac"          =>      "application/x-ns-proxy-autoconfig",
".swf"          =>      "application/x-shockwave-flash",
".tar.gz"       =>      "application/x-tgz",
".tgz"          =>      "application/x-tgz",
".tar"          =>      "application/x-tar",
".zip"          =>      "application/zip",
".mp3"          =>      "audio/mpeg",
".m3u"          =>      "audio/x-mpegurl",
".wma"          =>      "audio/x-ms-wma",
".wax"          =>      "audio/x-ms-wax",
".ogg"          =>      "application/ogg",
".wav"          =>      "audio/x-wav",
".gif"          =>      "image/gif",
".jar"          =>      "application/x-java-archive",
".jpg"          =>      "image/jpeg",
".jpeg"         =>      "image/jpeg",
".png"          =>      "image/png",
".xbm"          =>      "image/x-xbitmap",
".xpm"          =>      "image/x-xpixmap",
".xwd"          =>      "image/x-xwindowdump",
".css"          =>      "text/css",
".html"         =>      "text/html",
".htm"          =>      "text/html",
".js"           =>      "text/javascript",
".asc"          =>      "text/plain",
".c"            =>      "text/plain",
".cpp"          =>      "text/plain",
".log"          =>      "text/plain",
".conf"         =>      "text/plain",
".text"         =>      "text/plain",
".txt"          =>      "text/plain",
".dtd"          =>      "text/xml",
".xml"          =>      "text/xml",
".mpeg"         =>      "video/mpeg",
".mpg"          =>      "video/mpeg",
".mov"          =>      "video/quicktime",
".qt"           =>      "video/quicktime",
".avi"          =>      "video/x-msvideo",
".asf"          =>      "video/x-ms-asf",
".asx"          =>      "video/x-ms-asf",
".wmv"          =>      "video/x-ms-wmv",
".bz2"          =>      "application/x-bzip",
".tbz"          =>      "application/x-bzip-compressed-tar",
".tar.bz2"      =>      "application/x-bzip-compressed-tar",
# default mime type
""              =>      "application/octet-stream",
)
#### accesslog module
accesslog.filename          = "|/usr/local/sbin/cronolog /var/log/httpd/bbs-access.%Y%m%d.log"
url.access-deny             = ( "~", ".inc" )
$HTTP["url"] =~ "\.pdf$" {
server.range-requests = "disable"
}
#$HTTP["referer"] !~ "^($|http://*\.test\.com)" {
#$HTTP["url"] =~ "\.(js|css|gif|jpg|jpeg)$" {
#               url.access-deny = ( ".js",".css",".gif",".jpg",".jpeg")
#}
#}
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".asp")
server.port                = 80
## bind to localhost (default: all interfaces)
server.bind                = "1.2.3.4"
server.name = "bbs.test.com"
## error-handler for status 404
#server.error-handler-404   = "/error-handler.html"
#server.error-handler-404   = "/error-handler.php"
## to help the rc.scripts
#server.pid-file            = "/var/run/lighttpd.pid"


## change uid to <uid> (default: don't care)
server.username            = "xxx"
## change uid to <uid> (default: don't care)
server.groupname           = "daemon"
#### compress module
compress.cache-dir         = "/tmp/lighttpd-bbs/compress/"
compress.filetype          = ("text/plain", "text/html","text/javascript","text/css")
fastcgi.debug=0
fastcgi.server = ( ".php" => ((
"socket" => "/tmp/php-bbs.socket",
"broken-scriptfilename" => "enable"
)))

#### SSL engine
ssl.engine                 = "disable"
#ssl.pemfile                = "/etc/ssl/private/lighttpd.pem"
#### status module
#status.status-url          = "/server-status"
#status.config-url          = "/server-config"
status.statistics-url = "/server-statistics"
#### url handling modules (rewrite, redirect, access)
#url.rewrite                = ( "^/$"             => "/server-status" )
#url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
#### both rewrite/redirect support back reference to regex conditional using %n
#$HTTP["host"] =~ "^www\.(.*)" {
#  url.redirect            = ( "^/(.*)" => "http://%1/$1" )
#}
url.rewrite                = (
"^/archiver/([a-z0-9\-]+\.html)$" => "archiver/index.php?$1",
"^/forum-([0-9]+)-([0-9]+)\.html$" => "forumdisplay.php?fid=$1&page=$2",
"^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$" => "viewthread.php?tid=$1&extra=page%%53D$3&page=$2",
"^/space-(username|uid)-(.+)\.html$" => "space.php?$1=$2",
"^/tag-(.+)\.html$" => "tag.php?name=$1",
"^/profile-(username|uid)-(.+)\.html$" => "viewpro.php?$1=$2",
"^/upload(.*)$" => "/blog$1"
)
#### expire module
#expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
#### ssi
#ssi.extension              = ( ".shtml" )
#### setenv
#setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
#setenv.add-response-header = ( "X-Secret-Message" => "42" )

server.max-keep-alive-requests = 128
server.max-keep-alive-idle = 1
server.network-backend = "linux-sendfile"
server.max-fds = 8192
server.stat-cache-engine = "fam"
#server.use-noatime = "enable"
#server.max-stat-threads = 1
#server.max-read-threads = 2
#server.force-lowercase-filenames = "enable"
server.max-request-size = 20480
server.max-read-idle = 60
server.max-write-idle = 60

  四,lighttpd启动脚本:
  /etc/init.d/lighttpd-bbs

#!/bin/sh
#
# lighttpd     Startup script for the lighttpd server
#
# chkconfig: - 86 16
# description: Lightning fast webserver with light system requirements
#
# processname: lighttpd
# config: /etc/lighttpd-bbs/lighttpd.conf
# config: /etc/sysconfig/lighttpd
# pidfile: /var/run/lighttpd-bbs.pid
#
# Note: pidfile is assumed to be created
# by lighttpd (config: server.pid-file).
# If not, uncomment 'pidof' line.
# Source function library
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/lighttpd ]; then
. /etc/sysconfig/lighttpd
fi
if [ -z "$LIGHTTPD_CONF_PATH" ]; then
LIGHTTPD_CONF_PATH="/etc/lighttpd-bbs/lighttpd.conf"
fi
prog="lighttpd-bbs"
lighttpd="/opt/app/lighttpd-bbs/sbin/lighttpd"
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $lighttpd -f $LIGHTTPD_CONF_PATH
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
reload() {
echo -n $"Reloading $prog: "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
reload)
reload
;;
status)
status $lighttpd
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
RETVAL=1
esac
exit $RETVAL

  五、安装spawn-fcgi
  下载spawn-fcgi-1.6.0

./configure --prefix=/opt/app/spawn-fcg
make
sudo make install
  六、fastcgi启动脚本
  /etc/init.d/spwan-php-bbs.sh

#!/bin/bash
#
# fcgi     Startup script for fcgi
#
# processname: fcgi
# Source function library
. /etc/rc.d/init.d/functions
## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI="/opt/app/spawn-fcgi/bin/spawn-fcgi"
## ABSOLUTE path to the PHP binary
FCGIPROGRAM="/opt/app/php-cgi/bin/php-cgi"
## TCP port to which to bind on localhost
#FCGIPORT="1026"
FCGI_SOCKET="/tmp/php-bbs.socket"
FCGI_PIDFILE="/var/run/spawn-fcgi-bbs.pid"
## number of PHP children to spawn
PHP_FCGI_CHILDREN=20
## maximum number of requests a single PHP process can serve before it is restarted
PHP_FCGI_MAX_REQUESTS=500
## IP addresses from which PHP should access server connections
FCGI_WEB_SERVER_ADDRS="127.0.0.1"
# allowed environment variables, separated by spaces
ALLOWED_ENV="SHELL PATH USER"
## if this script is run as root, switch to the following user
USERID=rsync
GROUPID=daemon

################## no config below this line
if test x$PHP_FCGI_CHILDREN = x; then
PHP_FCGI_CHILDREN=5
fi
export PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRS

ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"
if test x$UID = x0; then
#EX="$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN"
EX="$SPAWNFCGI -s $FCGI_SOCKET -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN -P $FCGI_PIDFILE"
else
#EX="$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -C $PHP_FCGI_CHILDREN"
EX="$SPAWNFCGI -s $FCGI_SOCKET -f $FCGIPROGRAM -C $PHP_FCGI_CHILDREN -P $FCGI_PIDFILE"
fi
# copy the allowed environment variables
E=
for i in $ALLOWED_ENV; do
E="$E $i=${!i}"
done
# clean the environment and set up a new one
#env - $E $EX


prog="fcgi-bbs"

RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon env - $E $EX
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
rm -f $FCGI_PIDFILE $FCGI_SOCKET
killproc $FCGIPROGRAM
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
status)
status $FCGIPROGRAM
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-363047-1-1.html 上篇帖子: 大型系统上PHP不称职的六个理由(拍砖激辩中) 下篇帖子: PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0 解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表