wnmp不同路径部署多个php博客 - SunSeekerX

/ 0评 / 2
内容纲要

wnmp不同路径部署多个php博客

首先,我不会php,只摸过php,对于nginx了解仅限于百度所得知识,以及自己猜的。

1️⃣问题

我需要在nginx项目目录里面放多个博客,比如我的nginx根目录为C:\wnmp\www,我要在这个目录下部署wordpress,在C:\wnmp\www\app\blog下部署typecho,后期我可能部署其他的PHP博客,需要新建很多个目录。

2️⃣为啥有问题

好了,问题结束,这个问题解决真的搞死人,按照网上比较新的教程搭建了wnmp,部署了wordpress,没啥解决不了的问题:happy:。

我不会配置nginx,怎么办,谷歌wnmp,发现有人集成了这个包,不过我不要其他的,只解压了nginx,拿了他的nginx.conf配置文件。看起来写的挺好的做了一些优化,具体是啥也不太懂,就感觉有用。

地址:https://phpcj.org/wnmp/

然后当我部署第二个博客的时候,问题来了😫,因为不知道nginx是怎么解析PHP的,然后各种百度各种谷歌,

然后总是出现同一个问题,第二个不在根目录下的只能访问首页,然后其他页面页面或者文章内容页面都是404,曾经搞到半夜大概一两点钟,这个问题也没有解决。☹️

之前搭建博客一直用的是xampp,这个是开发环境下用的,并不适合线上环境使用,但是里面的apache配置好了,直接创建目录,然后访问文件,就可以实现我之前说的效果,

但是本着折腾为原则的程序员,是不可能屈服在PHP的淫威之下的, 我发现他们的解决方法都有一个共同点,就是要根据访问的路径去判断,将路径重写到本地的PHP,

nice,这简单,

然后,然后就掉进了死胡同😐。在尝试了几周没有解决问题之后,我放弃了。

3️⃣又见问题

今天域名刚好下来,原来的腾讯云服务器不想续费了,因为学生优惠到期了,之前的博客用的是typecho,现在新服务器用的是wordpress。需要将原来的服务器上面的博客一同搬过来。那么问题又来了。这个问题不解决,我是没有办法搬过来的。

4️⃣解决

在分析了很多解决方法之后,我开窍了,我盯着配置文件看了很久。发现nginx路径重写就是将访问的那个路径代理到本地的PHP进行处理,然后返回结果再给前台,我复制了一份配置,加了一个同样的代理,然后把路径改成/app/blog,stop,restart,问题解决了,what?解决了??????难受,这么简单。

附上配置文件nginx.conf

worker_processes  1;

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"';

    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 100m;

    gzip  on;

    server {
        listen       80;
        server_name  localhost;
        rewrite ^(.*)$  https://$host$1 permanent;  
    }

    server {
        server_name  localhost;

        access_log  logs/www.access.log  main;

        root   C:\wnmp\www;
        index  index.html index.htm index.php;

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location /app/blog {
            try_files $uri $uri/ /app/blog/index.php$is_args$args;
        }

        error_page  404              /404.html;

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

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass   127.0.0.1:9000;
            include        fastcgi.conf;
        }

        listen       443 ssl;

        ssl_certificate      cert/2535490_www.yoouu.cn.pem;
        ssl_certificate_key  cert/2535490_www.yoouu.cn.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
    }
}

重点就是这段,代理不同的路径到不同文件路径下的index.php去处理

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

location /app/blog {
    try_files $uri $uri/ /app/blog/index.php$is_args$args;
}

5️⃣感想

有时间还是要学习下nginx。

6️⃣补充

其实遇到的问题不只是这些。比如之前我博客访问一段时间就不能访问了。发现是PHP的进程结束了。猜测可能是博客访问遇到了什么问题,然后进程结束。用到了xxfpm。去守护进程。现在PHP有五个进程。稳定运行了十多天,没有什么问题。然后是wnmp。环境搭建的教程,在另一个博客文档里面。

地址:http://xiaoxia.org/2011/02/01/xxfpm-wrote-a-fastcgi-process-manager/

发表评论

您的电子邮箱地址不会被公开。