您好 wordpress那个问题您解决了吗?我也碰到file not found自动您好,您反应的问题已完结,不知道咋解决

解决LNMP下提示File not found的问题_PHP教程-织梦者
当前位置:&>&&>& > 解决LNMP下提示File not found的问题
解决LNMP下提示File not found的问题
最近在配置LNMP(Linux Nginx MariaDB Php-fpm)的时候遇到了1个问题。
访问网站首页始终提升File not found。
最终解决后总结一条就是: 网站根目录的权限问题。
说说事情的起因。本人用的系统是Manjaro Linux系统。所以用一条命令装好LNMP环境: sudo pacman -S mariadb nginx php。刚开始,我把symfony项目放在我的家目录,也就是~/projects。然后我从symfony官方拷贝一份nginx的配置文件symfony.conf,放在了/etc/nginx/sites-available目录下,然后将root参数更改为/home/lrcn/projects/symfony/public,并更改了fastcgi_pass参数为unix:/run/php-fpm/php-fpm.sock。好,运行sudo nginx -t测试通过,然后重启nginx。
但问题来了,我在输入symfony.dev(添加1条hosts为127.0.0.1 symfony.dev)始终提示File not found。即使我将网站目录设置为777也不行!这个问题把我困扰了一天!真的是心都快爆炸了。最后我深呼吸一口气,然后思考这个问题。果然在找遍互联网资源后得到答案。
是这样解释的。PHP-FPM程序需要有一个用户和用户组来运行这个程序。这个用户和用户组对我的项目文件必须要有rx权限。有些目录还必须具有rwx权限,比如upload,log目录等等。Nginx程序同样需要一个用户,这个用户同样对于这个项目文件具有rx权限。
由于我的nginx默认用户是http,所以我想把它改为nginx,并且把nginx加入www用户组。同时,我把php-fpm的用户改为www,用户组也改为www。
1)创建用户
sudo useradd -s /sbin/nologin www # 创建www用户,同时会自动创建www用户组
sudo gpasswd -a nginx www # 把nginx用户加入到www用户组
2)修改配置文件由于我这里只管文件权限相关的配置,其余配置自己还需要调整
# grep "^[^;]" /etc/php/php-fpm.d/www.conf
# 修改的时候只管修改user, group, listen.owner, listen.group,其余的都是默认配置
user = www
group = www
listen = /run/php-fpm/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
# /etc/nginx/nginx.conf
# 在第一行写入,其余的不变
3)修改项目文件权限这一步我发现了一个很诡异的问题,如果我将网站目录放到lrcn用户的家目录的话,www用户始终无法访问这个项目文件,即使我把~/projects设置为了chown www:www ~/projects -R,但都不管用,运行测试命令sudo -u www stat ~/projects/symfony依旧提示没有权限。我想,应该是/home/lrcn目录的拥有者为lrcn,即使我将它子目录projects改为了www:www, 也是不能访问的。这合情合理。所以,我又将项目目录放在了/var/www目录下,然后运行sudo -u www stat /var/www, 得到了正常的结果:
[lrcn@lrcn-pc nginx]$ sudo -u www stat /var/www
[sudo] lrcn 的密码:
文件:/var/www
大小:4096
IO 块:4096
设备:801h/2049d
Inode:3671064
权限:(2775/drwxrwsr-x)
Uid:( 1000/
Gid:( 1001/
最近访问: 00:40:04. +0800
最近更改: 00:41:34. +0800
最近改动: 10:51:15. +0800
创建时间:-
如果得到以上信息,证明www用户是可以访问网站根目录的,然后将项目symfony移动到/var/www目录下就可以了。
[lrcn@lrcn-pc var]$ tree www -L 2
└── symfony
├── bin
├── composer.json
├── composer.lock
├── config
├── public
├── src
├── symfony.lock
├── var
└── vendor
好,修改目录权限。我将/var/www目录修改为了lrcn:www,并且在~/projcects目录下创建了一个指向/var/www/symfony的软链接,这样我就可以在家目录操作项目文件。问题是为什么要把/var/www目录的拥有者修改为lrcn,因为这样一来,我可以用lrcn用户来随便操作这个项目文件,lrcn用户是我登录linxu系统的用户,在开发项目,平时使用的时候很方便。
sudo chown lrcn:www /var/www -R # 更改项目的权限
sudo ln -s /var/www/symfony ~/projects/symfony # 在家目录访问项目
sudo chmod 775 /var/www -R # 让www用户可以操作文件
sudo chmod g+s /var/www -R # 以后lrcn用户创建的文件或文件夹都继承了www用户组,而不是lrcn用户组,这个命令很重要
更改后的效果:
[lrcn@lrcn-pc symfony]$ ls -al
总用量 108
drwxrwsr-x 10 lrcn www
4096 12月 10 01:14 .
drwxrwsr-x
3 lrcn www
4096 12月 10 00:41 ..
drwxrwsr-x
2 lrcn www
4096 12月 10 00:41 bin
-rwxrwxr-x
1 lrcn www
1146 12月 10 00:41 composer.json
-rwxrwxr-x
1 lrcn www 48074 12月 10 00:41 composer.lock
drwxrwsr-x
3 lrcn www
4096 12月 10 00:41 config
-rwxrwxr-x
1 lrcn www
495 12月 10 00:41 .env
-rwxrwxr-x
1 lrcn www
495 12月 10 00:41 .env.dist
drwxrwsr-x
8 lrcn www
4096 12月 10 00:41 .git
-rwxrwxr-x
1 lrcn www
106 12月 10 00:41 .gitignore
drwxrwsr-x
4 lrcn www
4096 12月 10 00:41 .idea
drwxrwsr-x
2 lrcn www
4096 12月 10 10:42 public
drwxrwsr-x
3 lrcn www
4096 12月 10 00:41 src
-rwxrwxr-x
1 lrcn www
1889 12月 10 00:41 symfony.lock
drwxrwsr-x
4 lrcn www
4096 12月 10 00:41 var
drwxrwsr-x
5 lrcn www
4096 12月 10 00:41 vendor
好了,到这一步基本上解决了网站提示File not found 的问题了。
然后访问网站首页:
有任何问题到评论区留言吧!谢谢!
原文地址:https://segmentfault.com/a/1581,作者:冉五五
以上就是对解决LNMP下提示File not found的问题的相关介绍,希望对您学习php有所帮助,感谢您关注织梦者!
这些内容可能对你也有帮助
更多可查看PHP教程列表页。
猜您也会喜欢这些文章解决在管理wordpress时权限不足的问题
我的wordpress网站的运行环境是自己手动搭建的lamp环境,在管理wordpress时经常遇到因没有足够的权限而无法执行某些操作。在linux上的权限不足的问题无外乎有两个原因,一个是wordpress文件所使用的用户没有对该文件或目录拥有读、写、执行的权限,另一个就是程序运行时所使用的用户对该文件或目录没有足够的权限。而我的wordpress的文件或目录的权限设置是没有问题的,所以,造成这种问题的原因是在Apache对wordpress文件或目录操作时所使用的用户没有对wordpress文件或目录拥有足够的权限。
这个问题很好解决,进入apache的配置文件,找到apache所使用的用户和用户组,然后将wordpress文件的用户和用户组修改成与apache的配置一致就可解决此问题。
详细步骤:
1、vim /etc/httpd/conf/httpd.conf
2、找到User和Group选项(我的User和Group选项都是apache)
3、chown -R apache:apache /var/www/html/*(/var/www/html为wordpress安装目录)
除了以上方法外还有两个方法:
第二个方法:
很简单将apache所使用的用户加入到wordpress文件或目录所属的用户组中,执行的命令为:
usermod -aG 123 apache(123为wordpress文件所属的用户组)
第三种方法当然就是修改apache的配置文件了,将User和Group选项修改为wordpress所使用的用户和用户组。
解决wordpress的访问权限问题
权限后门系列之一:手动打造WordPress权限后门
解决wordpress安装后更新或者上传文件权限不足的问题
WordPress用户权限设置
wordpress中页面的用户权限设置
Linux无法写入权限问题 & 解决Wordpress不能自动安装主题、插件
wordpress配置通过IP直接访问及apache的配置
Wordpress 安装,文件夹权限设置
wordpress上传时出现“/wp-content/uploads/ 有没有上级目录的写权限”的解决办法
Centos安装Wordpress权限问题
没有更多推荐了,(window.slotbydup=window.slotbydup || []).push({
id: '3284507',
container: s,
size: '0,0',
display: 'inlay-fix'
解决nginx环境下的wordpress访问后台选项出现wp-admin丢失现象
如文章标题所言,不管是群里基友,还是我vps本身都出现过此类状况.
比如我访问后台外观选项 正确的链接应该为/wp-admin/themes.php
而在nginx下 经常会是这样的链接 /themes.php 其中就是少了/wp-admin
因此造成File not found. 的错误提示
解决方法还是挺简单的
访问自己的网站配置.conf在其最后&}'前添加
rewrite /wp-admin$ $scheme://$host$uri/
重启下nginx 这样在你访问后台 就再也不会出现File not found.的情况了
------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
猜你感兴趣如何修复 WordPress 中的 HTTP 错误
我们会向你介绍,如何在 Linux VPS 上修复 WordPress 中的 HTTP 错误。 下面列出了 WordPress 用户遇到的最常见的 HTTP 错误,我们的建议侧重于如何发现错误原因以及解决方法。
1、 修复在上传图像时出现的 HTTP 错误
如果你在基于 WordPress 的网页中上传图像时出现错误,这也许是因为服务器上 PHP 的配置,例如存储空间不足或者其他配置问题造成的。
用如下命令查找 php 配置文件:
php -i | grep php.ini
Configuration File (php.ini) Path =& /etc
Loaded Configuration File =& /etc/php.ini
根据输出结果,php 配置文件位于 /etc 文件夹下。编辑 /etc/php.ini 文件,找出下列行,并按照下面的例子修改其中相对应的值:
vi /etc/php.ini
upload_max_filesize = 64M
post_max_size = 32M
max_execution_time = 300
max_input_time 300
memory_limit = 128M
当然,如果你不习惯使用 vi 文本编辑器,你可以选用自己喜欢的。
不要忘记重启你的网页服务器来让改动生效。
如果你安装的网页服务器是 Apache,你也可以使用 .htaccess 文件。首先,找到 .htaccess 文件。它位于 WordPress 安装路径的根文件夹下。如果没有找到 .htaccess 文件,需要自己手动创建一个,然后加入如下内容:
vi /www/html/path_to_wordpress/.htaccess
php_value upload_max_filesize 64M
php_value post_max_size 32M
php_value max_execution_time 180
php_value max_input_time 180
# BEGIN WordPress
&IfModule mod_rewrite.c&
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&/IfModule&
# END WordPress
如果你使用的网页服务器是 nginx,在 nginx 的 server 配置块中配置你的 WordPress 实例。详细配置和下面的例子相似:
listen 80;
client_max_body_size 128m;
client_body_timeout 300;
server_name your-domain.com www.your-domain.
root /var/www/html/
index index.
location = /favicon.ico {
location = /robots.txt {
location / {
try_files $uri $uri/ /index.php?$
location ~ \.php$ {
include fastcgi_
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
根据自己的 PHP 配置,你需要将 fastcgi_pass 127.0.0.1:9000; 用类似于 fastcgi_pass unix:/var/run/php7-fpm. 替换掉(依照实际连接方式)
重启 nginx 服务来使改动生效。
2、 修复因为不恰当的文件权限而产生的 HTTP 错误
如果你在 WordPress 中出现一个意外错误,也许是因为不恰当的文件权限导致的,所以需要给 WordPress 文件和文件夹设置一个正确的权限:
chown www-data:www-data -R /var/www/html/path_to_wordpress/
将 www-data 替换成实际的网页服务器用户,将 /var/www/html/path_to_wordpress 换成 WordPress 的实际安装路径。
3、 修复因为内存不足而产生的 HTTP 错误
你可以通过在 wp-config.php 中添加如下内容来设置 PHP 的最大内存限制:
define('WP_MEMORY_LIMIT', '128MB');
4、 修复因为 php.ini 文件错误配置而产生的 HTTP 错误
编辑 PHP 配置主文件,然后找到 cgi.fix_pathinfo 这一行。 这一行内容默认情况下是被注释掉的,默认值为 1。取消这一行的注释(删掉这一行最前面的分号),然后将 1 改为 0 。同时需要修改 date.timezone 这一 PHP 设置,再次编辑 PHP 配置文件并将这一选项改成 date.timezone = Asia/Shanghai (或者将等号后内容改为你所在的时区)。
vi /etc/php.ini
cgi.fix_pathinfo=0
date.timezone = Asia/Shanghai
5、 修复因为 Apache mod_security 模块而产生的 HTTP 错误
如果你在使用 Apache mod_security 模块,这可能也会引起问题。试着禁用这一模块,确认是否因为在 .htaccess 文件中加入如下内容而引起了问题:
&IfModule mod_security.c&
SecFilterEngine Off
SecFilterScanPOST Off
&/IfModule&
6、 修复因为有问题的插件/主题而产生的 HTTP 错误
一些插件或主题也会导致 HTTP 错误以及其他问题。你可以首先禁用有问题的插件/主题,或暂时禁用所有 WordPress 插件。如果你有 phpMyAdmin,使用它来禁用所有插件:在其中找到 wp_options 数据表,在 option_name 这一列中找到 active_plugins 这一记录,然后将 option_value 改为 :a:0:{}。
或者用以下命令通过SSH重命名插件所在文件夹:
mv /www/html/path_to_wordpress/wp-content/plugins /www/html/path_to_wordpress/wp-content/plugins.old
通常情况下,HTTP 错误会被记录在网页服务器的日志文件中,所以寻找错误时一个很好的切入点就是查看服务器日志。
作者: 译者: 校对:
原创编译, 荣誉推出
共计翻译: 7 篇
| 共计贡献: 222 天
贡献时间: -&
-04%-50%-58%-62%-73%-79%
下面列出了 WordPress 用户遇到的最常见的 HTTP 错误,我们的建议侧重于如何发现错误原因以及解决方法。
上一篇:下一篇:
评论功能关闭
根据国家法律法规要求,本站暂时关闭文章评论功能。开放时间不确定。我们将谋求一种可以让大家更好的发表意见的方式。
根据国家法律法规要求,只有实名认证后才可以发表评论。
分享到微信
打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。
请将我们加入您的广告过滤器的白名单,请支持开源站点。谢谢您。Debian/Ubuntu中,wordpress固定链接解决“Not Found”问题
我的图书馆
Debian/Ubuntu中,wordpress固定链接解决“Not Found”问题
修订历史History:&
& 初稿,仅记录- 系统: Ubuntu 10.04& |& Debian 5/6- 软件: Wordpress 3.11&& |&& Apache2.1如果你在linux下使用的wordpress的使用,通过下图的设置,修改固定链接后出现 "Not Found”的error页面,下面是解决方案。&【原因】1. wordpress的固定链接需要apache的rewrite功能支持。(当然,有其他方法支持,但是这个最好)2. debian下,apache2默认没有打开rewrite功能。3. wordpress的vhost配置没加入完全的rewrite功能。4. apache2没有wordpress目录的写权限,不能写入.htaccess【解决步骤】1. 打开apache的rewrite功能cd /etc/apache2/mods-enabledsudo ln -s ../mods-available/rewrite.load rewrite.load2. 编辑你apache中,wordpress对应的vhost配置段,在WordPress的&directory&home目录中,加上这两条指令Options FollowSymLinksAllowOverride FileInfo例如,我的如下:&&& Alias /testwp/ "/var/www/wptest/"&&& &Directory "/var/www/wptest"&&&&&& Options Indexes FollowSymLinks MultiViews ExecCGI&&&&& AllowOverride FileInfo&&&&& Order allow,deny&&&&& allow from all&&& &/Directory&3. 让apache对wordpress所在的目录有写权限(debian下apache的默认启动user为www-data)sudo -R chown&www-data:www-data&/var/www/wptest或者sudo -R chmod +w&/var/www/wptest4. 重启apache,即可。Reference:
喜欢该文的人也喜欢

我要回帖

更多关于 信访局能解决问题吗 的文章

 

随机推荐