欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

LNMP下提示File not found問題的解決方法

 更新時(shí)間:2017年12月11日 11:34:06   作者:冉五五  
這篇文章主要給介紹了關(guān)于在LNMP下提示File not found問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

一般情況下每個(gè)虛擬主機(jī)就是一個(gè)網(wǎng)站,網(wǎng)站一般通過域名進(jìn)行訪問。最近在配置LNMP(Linux Nginx MariaDB Php-fpm)的時(shí)候遇到了1個(gè)問題:

訪問網(wǎng)站首頁始終提升File not found。

最終解決后總結(jié)一條就是: 網(wǎng)站根目錄的權(quán)限問題。

起因

說說事情的起因。本人用的系統(tǒng)是Manjaro Linux系統(tǒng)。所以用一條命令裝好LNMP環(huán)境: sudo pacman -S mariadb nginx php。剛開始,我把symfony項(xiàng)目放在我的家目錄,也就是~/projects。然后我從symfony官方拷貝一份nginx的配置文件symfony.conf,放在了/etc/nginx/sites-available目錄下,然后將root參數(shù)更改為/home/lrcn/projects/symfony/public,并更改了fastcgi_pass參數(shù)為unix:/run/php-fpm/php-fpm.sock。好,運(yùn)行sudo nginx -t測試通過,然后重啟nginx。

但問題來了,我在瀏覽器輸入symfony.dev(添加1條hosts為127.0.0.1 symfony.dev)始終提示File not found。即使我將網(wǎng)站目錄設(shè)置為777也不行!這個(gè)問題把我困擾了一天!真的是心都快爆炸了。最后我深呼吸一口氣,然后思考這個(gè)問題。果然在找遍互聯(lián)網(wǎng)資源后得到答案。

是這樣解釋的。PHP-FPM程序需要有一個(gè)用戶和用戶組來運(yùn)行這個(gè)程序。這個(gè)用戶和用戶組對(duì)我的項(xiàng)目文件必須要有rx權(quán)限。有些目錄還必須具有rwx權(quán)限,比如upload,log目錄等等。Nginx程序同樣需要一個(gè)用戶,這個(gè)用戶同樣對(duì)于這個(gè)項(xiàng)目文件具有rx權(quán)限。

解決方法

由于我的nginx默認(rèn)用戶是http,所以我想把它改為nginx,并且把nginx加入www用戶組。同時(shí),我把php-fpm的用戶改為www,用戶組也改為www。

1)創(chuàng)建用戶

sudo useradd -s /sbin/nologin www # 創(chuàng)建www用戶,同時(shí)會(huì)自動(dòng)創(chuàng)建www用戶組
sudo gpasswd -a nginx www # 把nginx用戶加入到www用戶組

2)修改配置文件

由于我這里只管文件權(quán)限相關(guān)的配置,其余配置自己還需要調(diào)整

# grep "^[^;]" /etc/php/php-fpm.d/www.conf
# 修改的時(shí)候只管修改user, group, listen.owner, listen.group,其余的都是默認(rèn)配置
[www]
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
# 在第一行寫入,其余的不變
user nginx www;

3)修改項(xiàng)目文件權(quán)限

這一步我發(fā)現(xiàn)了一個(gè)很詭異的問題,如果我將網(wǎng)站目錄放到lrcn用戶的家目錄的話,www用戶始終無法訪問這個(gè)項(xiàng)目文件,即使我把~/projects設(shè)置為了chown www:www ~/projects -R,但都不管用,運(yùn)行測試命令sudo -u www stat ~/projects/symfony依舊提示沒有權(quán)限。我想,應(yīng)該是/home/lrcn目錄的擁有者為lrcn,即使我將它子目錄projects改為了www:www, 也是不能訪問的。這合情合理。所以,我又將項(xiàng)目目錄放在了/var/www目錄下,然后運(yùn)行sudo -u www stat /var/www, 得到了正常的結(jié)果:

[lrcn@lrcn-pc nginx]$ sudo -u www stat /var/www
[sudo] lrcn 的密碼:
 文件:/var/www
 大小:4096   塊:8   IO 塊:4096 目錄
設(shè)備:801h/2049d Inode:3671064  硬鏈接:3
權(quán)限:(2775/drwxrwsr-x) Uid:( 1000/ lrcn) Gid:( 1001/ lrcn)
最近訪問:2017-12-10 00:40:04.274947995 +0800
最近更改:2017-12-10 00:41:34.772321160 +0800
最近改動(dòng):2017-12-10 10:51:15.811999323 +0800
創(chuàng)建時(shí)間:-

如果得到以上信息,證明www用戶是可以訪問網(wǎng)站根目錄的,然后將項(xiàng)目symfony移動(dòng)到/var/www目錄下就可以了。

[lrcn@lrcn-pc var]$ tree www -L 2
www
└── symfony
 ├── bin
 ├── composer.json
 ├── composer.lock
 ├── config
 ├── public
 ├── src
 ├── symfony.lock
 ├── var
 └── vendor

好,修改目錄權(quán)限。我將/var/www目錄修改為了lrcn:www,并且在~/projcects目錄下創(chuàng)建了一個(gè)指向/var/www/symfony的軟鏈接,這樣我就可以在家目錄操作項(xiàng)目文件。問題是為什么要把/var/www目錄的擁有者修改為lrcn,因?yàn)檫@樣一來,我可以用lrcn用戶來隨便操作這個(gè)項(xiàng)目文件,lrcn用戶是我登錄linxu系統(tǒng)的用戶,在開發(fā)項(xiàng)目,平時(shí)使用的時(shí)候很方便。

sudo chown lrcn:www /var/www -R # 更改項(xiàng)目的權(quán)限
sudo ln -s /var/www/symfony ~/projects/symfony # 在家目錄訪問項(xiàng)目
sudo chmod 775 /var/www -R # 讓www用戶可以操作文件
sudo chmod g+s /var/www -R # 以后lrcn用戶創(chuàng)建的文件或文件夾都繼承了www用戶組,而不是lrcn用戶組,這個(gè)命令很重要

更改后的效果:

[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

好了,到這一步基本上解決了網(wǎng)站提示File not found 的問題了。

然后訪問網(wǎng)站首頁

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 詳解Linux上svn命令行批量操作

    詳解Linux上svn命令行批量操作

    這篇文章主要介紹了詳解Linux上svn命令行批量操作的相關(guān)資料,linux上的svn命令行批量添加或刪除文件,需要的朋友可以參考下
    2017-07-07
  • Linux遠(yuǎn)程登錄實(shí)現(xiàn)教程解析

    Linux遠(yuǎn)程登錄實(shí)現(xiàn)教程解析

    這篇文章主要介紹了Linux遠(yuǎn)程登錄實(shí)現(xiàn)教程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 2018即將推出的Apache Spark 2.4都有哪些新功能

    2018即將推出的Apache Spark 2.4都有哪些新功能

    即將發(fā)布的 Apache Spark 2.4 版本是 2.x 系列的第五個(gè)版本。 本文對(duì)Apache Spark 2.4 的主要功能和增強(qiáng)功能進(jìn)行了概述,需要的朋友可以參考下
    2018-09-09
  • Linux不丟失數(shù)據(jù)無損擴(kuò)容分區(qū)操作命令實(shí)例

    Linux不丟失數(shù)據(jù)無損擴(kuò)容分區(qū)操作命令實(shí)例

    這篇文章主要介紹了Linux不丟失數(shù)據(jù)無損擴(kuò)容分區(qū)操作命令實(shí)例,在實(shí)際操作前,請(qǐng)確保備份重要數(shù)據(jù),并確認(rèn)分區(qū)和文件系統(tǒng)的類型,因?yàn)椴煌奈募到y(tǒng)擴(kuò)展方法會(huì)不同,如果是在線擴(kuò)容,請(qǐng)確保沒有掛載使用該分區(qū)或者文件系統(tǒng)
    2024-06-06
  • 詳解Linux系統(tǒng)中的tempfs與/dev/shm

    詳解Linux系統(tǒng)中的tempfs與/dev/shm

    /dev/shm是Linux非常有用的一個(gè)目錄,它就是所謂的tmpfs,也可以稱之為臨時(shí)文件系統(tǒng)(不是塊設(shè)備),類似oracle中的臨時(shí)表空間一樣,用于加速和優(yōu)化系統(tǒng)。下面這篇文章主要給大家介紹了Linux系統(tǒng)中tempfs與/dev/shm的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • linux中的軟連接和硬連接詳解

    linux中的軟連接和硬連接詳解

    大家好,本篇文章主要講的是linux中的軟連接和硬連接詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Linux下執(zhí)行java程序的方法

    Linux下執(zhí)行java程序的方法

    本文通過圖文并茂的方式給大家介紹linux下執(zhí)行java程序的方法,想要在Ubuntu上運(yùn)行java程序,可以將java程序編譯成功后打包,然后在Ubuntu上用命令執(zhí)行jar文件,具體詳情請(qǐng)參考本文
    2016-10-10
  • 新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議

    新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議

    這篇文章主要為大家詳細(xì)介紹了新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • linux時(shí)間函數(shù)與時(shí)間格式與字符串之間的轉(zhuǎn)化方法

    linux時(shí)間函數(shù)與時(shí)間格式與字符串之間的轉(zhuǎn)化方法

    下面小編就為大家分享一篇linux時(shí)間函數(shù)與時(shí)間格式與字符串之間的轉(zhuǎn)化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Windows10安裝linux子系統(tǒng)的兩種方式(圖文詳解)

    Windows10安裝linux子系統(tǒng)的兩種方式(圖文詳解)

    這篇文章主要介紹了Windows10安裝linux子系統(tǒng)的兩種方式,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論