CentOS下Nginx+fastcgi+python3搭建web.py服务环境

5 篇文章 0 订阅
5 篇文章 0 订阅

我的系统环境是CentOS release 6.6(Final)

环境依赖软件包

1、python3
2、Nginx1.4(需要包含fastcgi和rewrite模块)
3、web.py-python3(https://github.com/webpy/webpy/tree/python3)
4、Spawn-fcgi 1.6.3
5、Flup6


软件包安装

python3.6安装

[root@localhost home]# wget   https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
[root@localhost home]# tar  xJf  Python-3.6.1.tar.xz
[root@localhost Python-3.6.1]# cd  Python-3.6.1.tar.xz
[root@localhost Python-3.6.1]# ./configure  --prefix=/usr/local/python3 && make && make install
#创建软连接
[root@localhost Python-3.6.1]#  ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost Python-3.6.1]#  ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

nginx安装
可以参考CentOS6.6环境中安装Nginx详细过程笔记博客文章
安装spawn-fcgi
[root@localhost home]# wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
[root@localhost home]# tar zxvf spawn-fcgi-1.6.3.tar.gz
[root@localhost spawn-fcgi-1.6.3]# ./configure && make && make install                              
安装flup6
[root@localhost ~]# pip3 install flup6                              
安装web.py
[root@localhost home]# wget https://github.com/webpy/webpy/archive/python3.zip
[root@localhost home]# unzip   webpy-python3.zip
[root@localhost home]# cd  webpy-python3

[root@localhost webpy-python3]# python3  setup.py  install


配置

Nginx配置文件如下:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen      80;
        server_name  pw.com;
        root /home/www/test;

        location / {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;   
            fastcgi_pass 127.0.0.1:9002;
        }

        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root  html;
        }

        location /static/ {
            if (-f $request_filename) {
                rewrite ^/static/(.*)$  /static/$1 break;
            }
        }
    }

}

在/home/www/demo目录下创建index.py
注意: 需要给代码设置执行权限,chmod +x index.py。
#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import web

urls = ("/.*", "hello")

app = web.application(urls, globals())

class hello:

    def GET(self):
        return 'Hello, world!'

if __name__ == "__main__":
    web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
    app.run()

软件启动
Nginx启动
[root@localhost ~]# /usr/local/nginx/nginx
[root@localhost ~]# /usr/local/nginx/nginx  -s reload    #重启nginx配置
[root@localhost ~]# /usr/local/nginx/nginx  -s stop       #停止nginx
Spawn-fcgi启动
注意:你可以随意填写地址和端口信息,但是一定需要和Nginx配置文件相匹配
[root@localhost ~]# spawn-fcgi  -d  /home/www/demo  -f  /home/www/demo/index.py  -a  127.0.0.1 -p 9002
[root@localhost ~]# kill  `pgrep -f "python3 /home/www/demo/index.py"`     #关闭进程


测试
[root@localhost ~]#  curl  localhost
如果打印“hello world!”则表示环境搭建成功




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我知道你的问题了。针对你的问题,我可以给你一些简单的部署步骤: 1.安装nginx和PHP 在CentOS 6.8中安装nginx和PHP的方式如下: ``` sudo yum install nginx sudo yum install php-fpm ``` 2.配置nginx 在配置nginx之前,你需要备份一下默认的nginx配置文件。备份命令如下: ``` sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak ``` 然后,你可以通过编辑/etc/nginx/nginx.conf文件来配置nginx。 下面是一个简单的nginx配置示例,可以将它添加到/etc/nginx/nginx.conf文件中: ``` user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } ``` 在这个示例配置中,我们将nginx的根目录设置为/usr/share/nginx/html,并且将index.php添加到默认文档列表中。同时,我们还配置了一个location块,用于处理PHP文件。 3.配置PHP 在配置PHP之前,你需要备份一下默认的php-fpm配置文件。备份命令如下: ``` sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.bak ``` 然后,你可以通过编辑/etc/php-fpm.d/www.conf文件来配置PHP。 下面是一个简单的PHP配置示例,可以将它添加到/etc/php-fpm.d/www.conf文件中: ``` [www] user = nginx group = nginx listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 ``` 在这个示例配置中,我们将PHP-FPM的用户和组设置为nginx,并将PHP-FPM的监听套接字设置为/var/run/php-fpm/php-fpm.sock。 4.重启服务 完成配置后,你需要重启nginx和php-fpm服务,以使配置生效。重启命令如下: ``` sudo systemctl restart nginx sudo systemctl restart php-fpm ``` 到这里,就完成了nginx+PHP的简单部署。同时,为了进一步提升性能,你可以使用Nginx+PHP+FastCGI加速模式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值