利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ

2024-09-03 20:18

本文主要是介绍利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

这是一个汇总文,用来总结我在整个配置过程中遇到的各种问题.因为我在解决这些问题的过程中发现,typecho被部署在这种需要完全自己配置的平台上的情况是比较少的,相关的资料也比较少,所以我的解决过程比较困难,因此在此之后,想把这些问题和解决方案都整理出来,如果有同样需要的人,可以直接参考,少走弯路.

 

1.typecho安装过程中提示"对不起,无法连接数据库,请先检查数据库配置再继续进行安装"

这里使用的sqlite数据库.

我当时的解决方案是手动新建了一个数据库文件.利用

1 sqlite3 blog.db
2 create table test(test text);

新建数据库与表,并将数据库所在目录指向这个文件来解决的,不过这个问题的本质并不是数据库文件不存在,事实上typecho是可以自己新建数据库文件的,这个问题之所以出现是因为typecho没有对该目录的写权限而导致的问题.

可以通过

1 sudo chmod -R 777 /var/www

来解决.不过这里的777过于极端,单纯是是为了确认typecho可以正常工作才设定的,这里的777意味着给予所有人(包括others)R W E的全部权限,这实际上是不合理的,按照官方文档,755就够用了.

 

2.typecho提示"无法自动新建配置文件"需要手动新建配置文件,并且复制配置代码.

依旧是权限问题,typecho没有写入权限,解决方案同上.

 

3.typecho配置完成之后提示 ERROR 500

这可能是因为你通过新建数据库和自己新建配置文件的方法强制完成了整个配置流程而导致的,而typecho因为没有写入权限,没有能够完成对于数据库的初始化,需要通过更改权限解决.

 

4.typecho配置完成之后无法打开控制面板,除了主页以外全部404.

这是因为PHP的路径转发有问题导致的,因为很多nginx的默认PHP配置文件的写法为

复制代码
server {listen 80;root /var/www;index index.php index.html index.htm;location ~ \.php$ {fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;include fastcgi_params;}
}
复制代码

其中路径location的写法是的path_info的转发出现了问题,将location更改为

location ~ .*\.php(\/.*)*$

就可以解决了.

 

5.内网访问正常,通过花生壳动态域名访问typecho主页全为白色,无法加载CSS文件,无法打开二级网页.

在WordPress当中,有一个博客地址的设置,可以用来规范二级域名的指向和转发,而在typecho中,也有类似的设置,只不过它并不在设置里面,而是在执行install.php也就是一开始的安装程序的时候自动执行,将第一次访问主页的地址作为本站的地址.因为在内网进行测试和调整的时候,我们会使用内网IP访问树莓派,而非通过花生壳等得动态域名.这就使得typecho的本站地址设置出现错误.

在通过域名访问typecho时,如果我们查看浏览器的HTTP请求的话,我们会发现请求的CSS地址是192.168.1.100(树莓派内网地址)/var/www/css 显然这个内网地址是没有任何意义的.因此我们需要重新配置这个参数.

使用域名重新访问树莓派 比如test.ecip.net/install.php 重新运行一次配置程序,即可解决.

 

6.内网访问正常,外网无法通过动态域名或者IP访问.

这是因为电信屏蔽了默认的HTTP端口(80)导致的.

需要更改nginx配置文件

sudo vim /etc/nginx/sites-available/mysite

 

将他的端口更改为81或者其他

复制代码
server {listen 81;root /var/www;index index.php index.html index.htm;location ~ .*\.php(\/.*)*$ {fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;include fastcgi_params;}}
复制代码

然后通过test.ecip.net:81访问即可.


这篇关于利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133935

相关文章

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1