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

[经验分享] centos环境下nginx+php搭建

[复制链接]

尚未签到

发表于 2016-5-10 10:35:48 | 显示全部楼层 |阅读模式
我是在centos5环境下搭建的nginx服务器,使用php-fpm方式来驱动php,下面描述下使用配置过程.
环境:
操作系统 : centos 5
nginx-1.0.12
php-5.3.10
1. 安装php-5.3.10
注 : php-fpm已经作为一个模块添加到了php代码中,这里只需要在php编译的时候增加
--enable-fpm

wget http://cn.php.net/distributions/php-5.3.10.tar.gz


tar -zxvf php-5.3.10.tar.gz
cd php-5.3.10

./configure --prefix=php-root --enable-fastcgi --with-mysql=/home/programs/mysql --enable-zend-multibyte --enable-zip --enable-discard-path --enable-force-cgi-redirect --with-libxml-dir --with-curl --with-openssl --with-mysqli --with-zlib --enable-mbstring --with-gd --with-mcrypt --enable-exif --enable-fpm --enable-force-cgi-redirect --enable-pdo --with-pdo-mysql=/home/programs/mysql --with-ttf --with-iconv --enable-xml --with-gd --with-jpeg-dir=/usr/local/  --with-png-dir=/usr/local --with-freetype-dir=/usr/include/freetype2/

make
make install


安装完成之后在php-root/lib/中新建php.ini文件,可以修改一些配置项
注:上面的配置需要根据环境的需求自己修改,以上包含了gd库、mysql、php-fpm等配置
2. 安装nginx-1.0.12
可能需要依赖:
模块依赖:
gcc
gzip     -- zlib
rewrite  -- pcre
ssl      -- openssl
yum install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
yum -y install pcre pcre-devel

下载安装nginx
wget http://nginx.org/download/nginx-1.0.12.tar.gz
tar -zxvf nginx-1.0.12.tar.gz
cd nginx-1.0.12
./configure --prefix=nginx-root
make
make install

3. 配置php-fpm
先拷贝配置文件,在进行编辑
cp phproot/etc/php-fpm.conf.default -> phproot/etc/php-fpm.conf
vi phproot/etc/php-fpm.conf


这里只需要修改用户和你想监听的端口即可
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = webadmin
group = webadmin
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000

可根据需求进行优化设置
4. 制作fpm启动服务
复制下面的代码,vi /etc/init.d/php-fpm,保存
修改可执行权限  chmod +x /etc/init.d/php-fpm
启动   /etc/init.d/php-fpm start
停止   /etc/init.d/php-fpm stop
重启   /etc/init.d/php-fpm restart

#!/bin/bash
# php-fpm Startup script for php-fpm, a FastCGI implementation
# this script was created by tony at 2010.07.21, based on jackbillow's nginx script.
# it is v.0.0.1 version.
# if you find any errors on this scripts,please contact tony.
# by sending mail to tonytzhou at gmail dot com.
#
# chkconfig: - 85 15
# description: php-fpm is an alternative FastCGI implementation, with some additional features useful for sites of any size, especially busier sites.
#
# processname: phpfpm
# pidfile: /usr/local/var/run/phpfpm.pid
# config: /usr/local/etc/phpfpm.conf
phpfpm=/home/programs/php/sbin/php-fpm
config=/home/programs/php/lib/php.ini
pid=/home/programs/php/run/php-fpm.pid
RETVAL=0
prog="phpfpm"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $phpfpm ] || exit 0
# Start phpfpm daemons functions.
start() {
if [ -e $pid ];then
echo "phpfpm is already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $phpfpm -c ${config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/phpfpm
return $RETVAL
}
# Stop phpfpm daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $phpfpm
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/phpfpm /var/run/phpfpm.pid
}
# reload phpfpm service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${pid}`
killproc $phpfpm -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL


5. 配置nginx
使用80端口,域名为www.demo.com

#user  nobody;
user webadmin webadmin;
worker_processes  4;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
pid        logs/nginx.pid;
# 指定文件描述符数量
worker_rlimit_nofile 51200;
events {
# 使用网络I/O模型,linux推荐使用epoll, FressBSD推荐私用kqueue
use epoll;
# 允许链接数
worker_connections  51200;
}
http {
include       mime.types;
default_type  application/octet-stream;
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log  logs/access.log  main;
#autoindex off;
# 设置字符集,如果多种字符集,不要设置
#charset utf-8;
sendfile        on;
keepalive_timeout  65;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#开启gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_com_level 2;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
server {
listen 80;
server_name www.demo.com;
index index.html index.htm index.php;
root web-root;
# 图片缓存
location ~* \.(?:ico|gif|jpe?g|png|bmp|swf)$ {
# Some basic cache-control for static files to be sent to the browser
expires max;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# 静态资源缓存
location ~.*\.(js|css)?$
{
expires 1h;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
#
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root web-root;
fastcgi_pass 127.0.0.1:9000; # fpm监听的端口和ip
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  web-root$fastcgi_script_name;
include        fastcgi_params;
}
}
}

配置好后保存nginx.conf,
6. 启动nginx
nginx-root/bin/nginx -c nginx-root/conf/nginx.conf

访问http://www.demo.com就可以了
注: www.demo.com需要绑定到hosts中
后续会增加rewrite的一些自己的理解和总结

运维网声明 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-215082-1-1.html 上篇帖子: 关闭CENTOS不必要的默认服务 下篇帖子: centos 6.2 keepalived/haproxy 安装测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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