此处将为大家介绍关于PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法的详细内容,并且为您解答有关phpapachenginx的相关问题,此外,我们还将为您介绍关于404错误的原
此处将为大家介绍关于PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法的详细内容,并且为您解答有关php apache nginx的相关问题,此外,我们还将为您介绍关于404错误的原因和解决方法的深入研究、detached entity passed to persist 错误的引起的原因和解决办法、Django的Nginx和Apache的:在哪里处理404错误和500错误?、error while loading shared libraries: xxx.so.x" 错误的原因和解决办法的有用信息。
本文目录一览:- PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法(php apache nginx)
- 404错误的原因和解决方法的深入研究
- detached entity passed to persist 错误的引起的原因和解决办法
- Django的Nginx和Apache的:在哪里处理404错误和500错误?
- error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法(php apache nginx)
PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法
原案例分析:
1、原来的网站在wamp环境下搭建完成,一切正常,上传到虚拟主机环境为lnmp,结果访问时可以打开主页,然后点其他页面全部报404错误;
2、经分析得出原因:原网站环境为wamp使用了伪静态,伪静态规则写在网站根目录的.htaccess文件中,Apache下默认识别此文件内容,而Nginx服务器不识别.htaccess文件,导致伪静态规则无效,自然无法解析URL地址,导致404错误(文件不存在)
3、解决办法:因为Nginx服务器不识别.htaccess文件的,所以原来写在此文件中的伪静态规则需要转移出来,转移方式有两种:
方法一、如果想保留.htaccess文件,则打开linux服务器此目录 /usr/local/Nginx/conf/vhost/xxx.conf网站配置文件,查看是否已有路由规则文件并打开该文件;若没有,则在linux服务器此目录 /usr/local/Nginx/conf/rewrite/ 下建立一个伪静态规则配置文件名字任取,例如:/usr/local/Nginx/conf/rewrite/my.conf,将原来在.htaccess文件中的rewrite规则转换成Nginx下的rewrite规则,提供一个自动转换网址。
方法二、如果不想保留.htaccess文件,则前面的步骤照常,最后一步替换的时候直接将转换好的内容放入other.conf文件中,如下:
location / {
if (!-d $request_filename){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/(.*)$ /index.PHP?s=/$1 last;
}
}
404错误的原因和解决方法的深入研究
探究HTTP状态码404的原因和解决途径
引言:
在浏览网页的过程中,我们经常会遇到HTTP状态码404。这个状态码表示服务器未能找到请求的资源。在本文中,我们将探究HTTP状态码404的原因,并分享一些解决途径。
一、HTTP状态码404的原因:
1.1 资源不存在:
最常见的原因就是请求的资源在服务器上不存在。这可能是由于文件被误删、命名错误、路径错误等原因导致。
1.2 URL错误:
如果URL地址拼写错误或格式不正确,服务器将无法正确解析请求,返回404错误码。
1.3 服务器配置问题:
服务器可能没有正确配置,导致无法找到请求资源。这可能是由于服务器软件配置错误、权限设置不当、路径配置错误等原因引起的。
1.4 路由器问题:
在请求到达服务器之前,经过许多网络中继设备,包括路由器。如果路由器配置错误或故障,可能会导致请求无法正确转发到目标服务器,最终返回404状态码。
1.5 网页被移动或重命名:
有时网站管理员会对网站进行重构,可能会改变页面的URL或目录结构。如果用户访问的页面已经被移动或重命名,服务器将无法找到对应资源,返回404错误。
二、解决途径:
2.1 检查URL地址:
首先,我们应该仔细检查URL地址是否拼写正确。注意大小写、斜杠、特殊字符等。
2.2 清除浏览器缓存:
浏览器可能会缓存已访问页面的副本。当再次访问该页面时,浏览器可能会使用缓存的错误页面,而不是从服务器重新获取正确的页面。清除浏览器缓存,然后再次尝试访问页面。
2.3 重试刷新页面:
有时服务器可能只是暂时性无法找到请求资源,稍后就能找到。我们可以通过刷新页面或者重新访问该页面来尝试解决404错误。
2.4 检查服务器配置:
如果我们是网站管理员,我们需要检查服务器软件的配置是否正确。确认文件路径和权限设置无误。
2.5 查找替代资源:
如果请求的资源确实不存在,我们可以尝试查找替代资源。有时,资源只是由于被移动或重命名而导致错误。通过搜索引擎或网站地图,我们可以尝试找到正确的资源。
2.6 联系网站管理员:
如果以上解决途径都无效,我们可以尝试联系网站管理员,反馈问题并寻求帮助。他们可能会提供更准确的解决方法。
结论:
HTTP状态码404表示请求的资源未能找到。这可能是由于资源不存在、URL错误、服务器配置问题、路由器问题或网页被移动或重命名等原因引起的。为了解决404错误,我们可以检查URL地址、清除浏览器缓存、重试刷新页面、检查服务器配置、查找替代资源或联系网站管理员寻求帮助。通过以上途径,我们可以更好地理解404错误并解决它。
以上就是404错误的原因和解决方法的深入研究的详细内容,更多请关注php中文网其它相关文章!
detached entity passed to persist 错误的引起的原因和解决办法
detached entity passed to persist 错误的引起的原因和解决办法
报错的原因有如下的情形:
比如:在实体类中定义的变量如下:
@Id
@GeneratedValue(strategy=GenerationType.)
@Column(name="role_id")
private String roleId;
系统默认这个值是由数据库自动生成的,可是你的数据库并没设置其为identity属性.
这样就会报错.
解决办法1.在存储数据的时候,要记得把hi这一项设置为空.否则,是不可以存储的,因为已经identity了.
解决办法2.去掉 @GeneratedValue(strategy=GenerationType.)
Django的Nginx和Apache的:在哪里处理404错误和500错误?
我知道在django中有404error handling。 但是把这个configuration放在Nginx中是否更好?
这ST线程有把它的解决scheme。 – http://stackoverflow.com/questions/1024199/Nginx-customizing-404-page
每个人在使用Nginx的时候是如何处理的?
我在网站主题中创build了自己的404.html&500.html,希望显示它们。
无法打开服务“Tomcat7”
如何检查mod_deflate是在Apache中启用?
范围:字节0- Apache 2.2.23中的FAILS
403禁止在web根目录下的符号链接
使用GET参数时,Apache Redirect 301失败,例如?blah =
如何使用.htaccess RewriteRule将下划线改为破折号
对.htaccess的请求应该返回404而不是403
阿帕奇networking驱动器别名
如何使用CGI Perl脚本上传和打开xampp apache服务器中的文件?
如何获得在PHP内免费的Apache儿童的数量
你还没有提到你想把这些页面放在Nginx服务器上的原因。 我建议保持它与您的网站,即在Django服务器上的其余部分。 将网站的一部分移至Nginx服务器是解决可伸缩性问题的一个好主意,但会使您的部署复杂化。 我当然希望你没有看到你的网站流量很大一部分进入你的错误页面!
我不知道如何在django中配置404和500错误。 感谢帮助我的“namnatulco”。
这里是步骤:
创建2页404.html & 500.html
将它们放在您的模块模板文件夹中
在您的模块urls.conf ,输入以下两行:
handler404 =“myproject.mymodule.views.redirect_page_not_found”
handler500 =“myproject.mymodule.views.redirect_500_error”
在你看来,定义这些功能
def redirect_page_not_found(request):
返回render_to_response('logreg / 404.html',{},context_instance = RequestContext(request));
def redirect_500_error(请求):
返回render_to_response('logreg / 500.html',{},context_instance = RequestContext(request));
通过给出一些不正确的URL来测试它,例如 – www.mydomain.com/aaaaaaaaaaaaaaaa
要在您的视图中测试500错误,请在render_to_response中给出错误的URL。
而已。 你应该设置。
我建议使用in-Django 404/500处理程序。 您可以使用与网站其他部分保持一致的页面样式来提供有意义的备用导航建议。
确保你不会返回一个讨论错误的页面,但是运行200返回状态 – 人类会明白这是一个错误,但是程序访问不会。 我在这里避免说“搜索引擎”,但事实是,他们可能会代表你的非人类访问者的98%。 有关详细信息,请参阅HttpResponse子类 。
error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
一般我们在 Linux 下执行某些外部程序的时候可能会提示找不到共享库的错误,比如:
tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
原因一般有两个,一个是操作系统里确实没有包含该共享库 (lib*.so.* 文件) 或者共享库版本不对,遇到这种情况那就去网上下载并安装上即可.另外一个原因就是已经安装了该共享库,但 执行需要调用该共享库的程序 的时候,程序按照默认共享库路径找不到该共享库文件.
所以安装共享库后要注意共享库路径设置问题,如下:
1) 如果共享库文件安装到了 /lib 或 /usr/lib 目录下,那么需执行一下 ldconfig 命令
ldconfig 命令的用途,主要是在默认搜寻目录 (/lib 和 /usr/lib) 以及动态库配置文件 /etc/ld.so.conf 内所列的目录下,搜索出可共享的动态链接库 (格式如 lib*.so*), 进而创建出动态装入程序 (ld.so) 所需的连接和缓存文件。缓存文件默认为 /etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
2) 如果共享库文件安装到了 /usr/local/lib (很多开源的共享库都会安装到该目录下) 或其它 "非 /lib 或 /usr/lib" 目录下,那么在执行 ldconfig 命令前,还要把新共享库目录加入到共享库配置文件 /etc/ld.so.conf 中,如下:
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
3) 如果共享库文件安装到了其它 "非 /lib 或 /usr/lib" 目录下, 但是又不想在 /etc/ld.so.conf 中加路径 (或者是没有权限加路径). 那可以 export 一个全局变量 LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.
LD_LIBRARY_PATH 的意思是告诉 loader 在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。比如安装了一个 mysql 到 /usr/local/mysql 目录下,其中有一大堆库文件在 /usr/local/mysql/lib 下面,则可以在.bashrc 或.bash_profile 或 shell 里加入以下语句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用.
4)如果程序需要的库文件比系统目前存在的村文件版本低,可以做一个链接
比如:
error while loading shared libraries: libncurses.so.4: cannot open shared
object file: No such file or directory
ls /usr/lib/libncu*
/usr/lib/libncurses.a /usr/lib/libncurses.so.5
/usr/lib/libncurses.so /usr/lib/libncurses.so.5.3
可见虽然没有 libncurses.so.4,但有 libncurses.so.5,是可以向下兼容的
建一个链接就好了
ln -s /usr/lib/libncurses.so.5.3 /usr/lib/libncurses.so.4
今天关于PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法和php apache nginx的分享就到这里,希望大家有所收获,若想了解更多关于404错误的原因和解决方法的深入研究、detached entity passed to persist 错误的引起的原因和解决办法、Django的Nginx和Apache的:在哪里处理404错误和500错误?、error while loading shared libraries: xxx.so.x" 错误的原因和解决办法等相关知识,可以在本站进行查询。
本文标签: