实战:nginx作为web服务程序提供者条件下安装discuz-阿里云开发者社区

开发者社区> 开发与运维> 正文

实战:nginx作为web服务程序提供者条件下安装discuz

简介:
一、安装nginx
1.下载nginx源代码,网址为:+1.8源码包: http://nginx.org/download/nginx-1.8.0.tar.gz
2.tar -zxvf nginx-1.8.0.tar.gz   # 解压nginx压缩文件
3.cd nginx-1.4.4  #进入nginx文件内
./configure  --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module  --with-pcre#这个是编译安装nginx4.make#在编译的过程中可能出现,各种包的依赖关系从而导致的错误出现,这个时候我们应该通过yum来安装对应,数序为yum list|grep baoming;  yum install -y baoming+dev格式的包,然后继续编译。# echo $? 这个命令是用来验证上面一次命令执行的是否正常,0为正常,1为不正常。
5.make install#make install 过程一般不会出现错误# echo $? 这个命令是用来验证上面一次命令执行的是否正常,0为正常,1为不正常。
6.编写nginx启动脚本,并加入系统服务vim /etc/init.d/nginx写入如下内容:
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings


NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"


start() {
        echo -n $"Starting $prog: "
        mkdir -p /dev/shm/nginx_temp
        daemon $NGINX_SBIN -c $NGINX_CONF
        RETVAL=$?
        echo
        return $RETVAL
}


stop() {
        echo -n $"Stopping $prog: "
        killproc -p $NGINX_PID $NGINX_SBIN -TERM
        rm -rf /dev/shm/nginx_temp
        RETVAL=$?
        echo
        return $RETVAL
}


reload(){
        echo -n $"Reloading $prog: "
        killproc -p $NGINX_PID $NGINX_SBIN -HUP
        RETVAL=$?
        echo
        return $RETVAL
}


restart(){
        stop
        start
}


configtest(){
    $NGINX_SBIN -c $NGINX_CONF -t
    return 0
}


case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  reload)
        reload
        ;;
  restart)
        restart
        ;;
  configtest)
        configtest
        ;;
  *)
        echo $"Usage: $0 {start|stop|reload|restart|configtest}"
        RETVAL=1
esac


exit $RETVAL

保存后,更改权限:chmod 755 /etc/init.d/nginxchkconfig --add nginx
如果想开机启动,请执行:chkconfig nginx on
更改nginx配置首先把原来的配置文件清空:
> /usr/local/nginx/conf/nginx.conf
“>” 这个符号之前阿铭介绍过,为重定向的意思,单独用它,可以把一个文本文档快速清空。
vim /usr/local/nginx/conf/nginx.conf
写入如下内容:
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;


events
{
    use epoll;
    worker_connections 6000;
}


http
{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    '$host "$request_uri" $status'
    '"$http_referer" "$http_user_agent"';
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;
    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm application/xml;


server
{
    listen 80;
    server_name localhost;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;


    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
    }


}


}

保存配置后,先检验一下配置文件是否有错误存在:
/usr/local/nginx/sbin/nginx  -t  
如果显示内容如下,则配置正确,否则需要根据错误提示修改配置文件
:nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动nginx:service nginx start
如果不能启动,请查看 “/usr/local/nginx/logs/error.log” 文件,检查nginx是否启动:ps aux |grep nginx看是否有进程。
测试是否解析php文件
创建测试文件:vim /usr/local/nginx/html/2.php
内容如下:
<?php    
echo "测试php是否解析";
?>
测试: 
curl localhost/2.php
测试php是否解析
二、安装discuz
1.下载discuz源码包。
地址为:http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
2.解压
unzip   Discuz_X3.2_SC_GBK.zip
mv upload/* /data/www
3.初始化论坛系统
修改 /usr/local/nginx/conf/vhost/test.conf 在里面添加如下内容:
server
{
    listen 80;
    server_name 1111.com;
    index index.html index.htm index.php;
    root /data/www;   #这里是discuz论坛文件地址

    location ~ \.php$ {
        include fastcgi_params;
       # fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_pass 127.0.0.1:9000;  #这里的方式应该与php的监听方式一样的,可以通过netstat -lnp 来查看php监听的端口。
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    }

}

3.网页安装,这里通过网站的提示自助的安装,值得注意的是数据库的用户名是root,密码为空。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章