Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产在线观看91精品不卡,奇米影视第4色,国产在线播放不卡

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何在 Web 服務器文檔根目錄上設置只讀文件權限

          如何在 Web 服務器文檔根目錄上設置只讀文件權限

          :如何對我存放在 /var/www/html/ 目錄中的所有文件設置只讀權限?

          你可以使用 chmod 命令對 Linux/Unix/macOS/OS X/*BSD 操作系統上的所有文件來設置只讀權限。這篇文章介紹如何在 Linux/Unix 的 web 服務器(如 Nginx、 Lighttpd、 Apache 等)上來設置只讀文件權限。

          如何設置文件為只讀模式

          語法為:

          1. ### 僅針對文件 ###

          2. chmod 0444 /var/www/html/*

          3. chmod 0444 /var/www/html/*.php

          如何設置目錄為只讀模式

          語法為:

          1. ### 僅針對目錄 ###

          2. chmod 0444 /var/www/html/

          3. chmod 0444 /path/to/your/dir/

          4. # ***************************************************************************

          5. # 假如 web 服務器的用戶/用戶組是 www-data,文件擁有者是 ftp-data 用戶/用戶組

          6. # ***************************************************************************

          7. # 設置目錄所有文件為只讀

          8. chmod -R 0444 /var/www/html/

          9. # 設置文件/目錄擁有者為 ftp-data

          10. chown -R ftp-data:ftp-data /var/www/html/

          11. # 所有目錄和子目錄的權限為 0445 (這樣 web 服務器的用戶或用戶組就可以讀取我們的文件)

          12. find /var/www/html/ -type d -print0 | xargs -0 -I {} chmod 0445 "{}"

          找到所有 /var/www/html 下的所有文件(包括子目錄),鍵入:

          1. ### 僅對文件有效 ###

          2. find /var/www/html -type f -iname "*" -print0 | xargs -I {} -0 chmod 0444 {}

          然而,你需要在 /var/www/html 目錄及其子目錄上設置只讀和執行權限,如此才能讓 web 服務器能夠訪問根目錄,鍵入:

          1. ### 僅對目錄有效 ###

          2. find /var/www/html -type d -iname "*" -print0 | xargs -I {} -0 chmod 0544 {}

          警惕寫權限

          請注意在 /var/www/html/ 目錄上的寫權限會允許任何人刪除文件或添加新文件。也就是說,你可能需要設置一個只讀權限給 /var/www/html/ 目錄本身。

          1. ### web根目錄只讀 ###

          2. chmod 0555 /var/www/html

          在某些情況下,根據你的設置要求,你可以改變文件的屬主和屬組來設置嚴格的權限。

          1. ### 如果 /var/www/html 目錄的擁有人是普通用戶,你可以設置擁有人為:root:root 或 httpd:httpd (推薦) ###

          2. chown -R root:root /var/www/html/

          3. ### 確保 apache 擁有 /var/www/html/ ###

          4. chown -R apache:apache /var/www/html/

          關于 NFS 導出目錄

          你可以在 /etc/exports 文件中指定哪個目錄應該擁有只讀或者讀寫權限 [1]。這個文件定義各種各樣的共享在 NFS 服務器和他們的權限。如:

          1. # 對任何人只讀權限

          2. /var/www/html *(ro,sync)

          3. # 192.168.1.10(upload.example.com)客戶端讀寫權限訪問

          4. /var/www/html 192.168.1.10(rw,sync)

          關于用于 MS-Windows客戶端的 Samba(CIFS)只讀共享

          要以只讀共享 sales,更新 smb.conf,如下:

          1. [sales]

          2. comment = Sales Data

          3. path = /export/cifs/sales

          4. read only = Yes

          5. guest ok = Yes

          關于文件系統表(fstab)

          你可以在 Unix/Linux 上的 /etc/fstab 文件中配置掛載某些文件為只讀模式。

          你需要有專用分區,不要設置其他系統分區為只讀模式。

          如下在 /etc/fstab 文件中設置 /srv/html 為只讀模式。

          1. /dev/sda6 /srv/html ext4 ro 1 1

          你可以使用 mount 命令重新掛載分區為只讀模式[2](使用 root 用戶)

          1. # mount -o remount,ro /dev/sda6 /srv/html

          或者

          1. # mount -o remount,ro /srv/html

          上面的命令會嘗試重新掛載已掛載的文件系統到 /srv/html上。這是改變文件系統掛載標志的常用方法,特別是讓只讀文件改為可寫的。這種方式不會改變設備或者掛載點。讓文件變得再次可寫,鍵入:

          1. # mount -o remount,rw /dev/sda6 /srv/html

          1. # mount -o remount,rw /srv/html

          Linux:chattr 命令

          你可以在 Linux 文件系統上使用 chattr 命令改變文件屬性為只讀[3],如:

          1. chattr +i /path/to/file.php

          .editorconfig

          1.EditorConfig和Prettier一樣,都是用來配置格式化你的代碼的,這個格式化代碼,要和你lint配置相符!否則會出現你格式化代碼以后,卻不能通過你的代碼校驗工具的檢驗。

          2.讓使用不同編輯器的開發者在共同開發一個項目時“無痛”地遵循編碼規范(編碼風格),就可以使用EditorConfig插件,會在項目根目錄尋找.editorconfig文件并使用其中定義的編碼風格。 默認配置

          [*]
          charset=utf-8
          indent_style=space
          indent_size=2
          end_of_line=lf
          insert_final_newline=true
          trim_trailing_whitespace=true
          

          語法

          1. editorConfig配置文件需要是UTF-8字符集編碼的, 以回車換行或換行作為一行的分隔符
            斜線(/)被用作為一個路徑分隔符,井號(#)或分號(;)被用作于注釋. 注釋需要與注釋符號寫在同一行

          通配符

          *                匹配除/之外的任意字符串
          **               匹配任意字符串
          ?                匹配任意單個字符
          [name]           匹配name中的任意一個單一字符
          [!name]          匹配不存在name中的任意一個單一字符
          {s1,s2,s3}       匹配給定的字符串中的任意一個(用逗號分隔) 
          {num1..num2}    匹配num1到num2之間的任意一個整數, 這里的num1和num2可以為正整數也可以為負整數

          屬性
          所有的屬性和值都是忽略大小寫的. 解析時它們都是小寫的

          indent_size     用一個整數定義的列數來設置縮進的寬度,如果indent_style為tab,則此屬性默認為tab_width
          tab_width       用一個整數來設置tab縮進的列數。默認是indent_size
          end_of_line     設置換行符,值為lf、cr和crlf
          charset         設置編碼,值為latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建議使用utf-8-bom
          trim_trailing_whitespace  設為true表示會去除換行行首的任意空白字符。
          insert_final_newline      設為true表示使文件以一個空白行結尾
          root           表示是最頂層的配置文件,發現設為true時,才會停止查找.editorconfig文件

          .prettierrc(格式化配置項)

          1.EditorConfig和Prettier一樣,都是用來配置格式化你的代碼的,這個格式化代碼,要和你lint配置相符!否則會出現你格式化代碼以后,卻不能通過你的代碼校驗工具的檢驗。

          2.當我們使用右鍵格式化的時候,就會自動幫我們補全符號,但是,有些符號在eslint中就會報語法錯誤,那我們需要怎么辦呢?可以通過.prettierrc來進行文件配置

          {
              "semi": false,    // 使用分號, 默認true
              "singleQuote": true,   // 使用單引號, 默認false(在jsx中配置無效, 默認都是雙引號)
              "bracketSpacing": true   // 對象中的空格 默認true
          }
          

          .browserslistrc 文件

          在使用腳手架搭建項目時,會自動生成.browserslistrc文件,該文件只要是 配置兼容瀏覽器
          對于部分配置參數做一些解釋:
          " >1%" :代表著全球超過1%人使用的瀏覽器
          “last 2 versions” : 表示所有瀏覽器兼容到最后兩個版本
          “not ie <=8” :表示IE瀏覽器版本大于8(實則用npx browserslist 跑出來不包含IE9 )
          “safari >=7”:表示safari瀏覽器版本大于等于7


          Vue .env .env.development .env.production

          1.項目根目錄下創建.env、.env.development和.env.production三個文件,文件名解釋分別如下:   .env 無論開發環境還是生產環境都會加載的配置文件   .env.development 開發環境加載的配置文件   .env.production 生產環境加載的配置文件

          2.環境變量的簡單使用示例。需要注意,配置文件里的屬性名必須以VUE_APP_開頭,比如在.env文件這樣聲明一個環境變量:

          VUE_APP_QQQ=`QQ`

          然后就可以在代碼里這樣用了:

          console.log(process.env.VUE_APP_QQQ)  // -> `QQ`
          1. 那為什么是三個文件呢?
            比如現在三個文件里內容分別如下:
          // .env
          VUE_APP_QQQ=`QQ`
          
          // .env.development
          VUE_APP_QQQ=`WW`
          
          // .env.production
          VUE_APP_QQQ=`RR`

          那么首先,Vue在啟動時,無論是在開發環境還是在生產環境,它始終都會加載.env文件里的內容,然后(劃重點)=>根據Node環境變量’NODE_ENV’的值來選擇加載’development’還是’production’。

          比如我們平常通過npm run serve啟動時,我們本地系統的環境變量NODE_ENV 值默認是development,這時就會先后加載.env和.env.development這兩個文件。

          而當我們打包到服務器后,服務器的NODE_ENV值一般為production,則此時Vue仍會先加載.env文件,然后加載.env.production文件。

          其次,在按順序加載文件時,Vue會把后一個加載的文件內容和前面加載的文件內容進行比較,如果存在變量名相同,那么它會采用后一個文件里的變量值為變量的最終值。

          拿上面三個文件內容打個比方:我們在日常開發時,NODE_ENV值是development,那么Vue就會首先加載.env文件里的內容,然后繼續加載.env.development文件里的內容。那么我們發現變量名VUE_APP_QQQ存在多個,這時Vue就會采用后一個文件里的變量值為變量的最終值。因此我們通過console輸出看一看。

          console.log(VUE_APP_QQQ)  // -> `WW`

          .eslintrc.js

          module.exports={
            root: true,
            parser: 'babel-eslint',
            parserOptions: {
              //設置"script"(默認)或"module"如果你的代碼是在ECMAScript中的模塊。
              sourceType: 'module'
            },
            env: {
              browser: true,
            },
            // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
            extends: 'standard',
            // required to lint *.vue files
            plugins: [
              'html'
            ],
            // add your custom rules here
            'rules': {
              // allow paren-less arrow functions
              'arrow-parens': 0,
              // allow async-await
              'generator-star-spacing': 0,
              // allow debugger during development
              'no-debugger': process.env.NODE_ENV==='production' ? 2 : 0,
              "no-unused-vars": [2, { 
                // 允許聲明未使用變量
                "vars": "local",
                // 參數不檢查
                "args": "none" 
              }],
              // 關閉語句強制分號結尾
              "semi": [0],
              //key值前面是否要有空格
               "key-spacing": [0, {
                "singleLine": {
                  "beforeColon": false,
                  "afterColon": true
                },
                "multiLine": {
                  "beforeColon": true,
                  "afterColon": true,
                  "align": "colon"
                },
              //空行最多不能超過100行
              "no-multiple-empty-lines": [0, {"max": 100}],
              //關閉禁止混用tab和空格
              "no-mixed-spaces-and-tabs": [0],
              //數組第一個指定是否啟用這個規則,第二個指定幾個空格
              "indent":[1,2],
          }
          

          其中的rules是配置規則的

          配置參數

          rules: {
              "規則名": [規則值, 規則配置]
          }

          規則值

          "off"或者0    //關閉規則關閉
          "warn"或者1    //在打開的規則作為警告(不影響退出代碼)
          "error"或者2    //把規則作為一個錯誤(退出代碼觸發時為1)

          常見規則列表

          Rust 編程語言中,target 目錄是由 Cargo(Rust 的包管理和構建工具)自動生成的。它主要用于存放構建輸出的產物文件相關的編譯期產生的中間文件等。但是 target 目錄往往會非常大,即使一個簡單的 hello world 程序,就已經達到 9 MB 了。

          可能一個比較簡單的項目,會達到 1 GB 多。甚至有些網友調侃——如果電腦硬盤太小,可能學不了 Rust。

          0x01 指定 target 目錄

          另外當電腦中的 Rust 項目太多時,無法管理 target 目錄。其實我們可以指定所有項目統一的 target 目錄。下面將以 Windows 操作系統為例演示。

          首先在 C:\Users\用戶名\.cargo\ 目錄下,找到 config.toml 文件。如果在該目錄下沒有 config.toml 文件,則需要創建該文件。如下圖所示:

          注意:config 文件也有可能沒有擴展名,如 config,又或者是其它擴展名,如 config.txt,配置文件的擴展名不重要,重要的是文件名稱必須是 config

          在文件中添加下面的配置信息:

           [build]
          target-dir="D:/my-target"

          上面的配置是指定所有項目的統一 target 目錄為 D:/my-target。如下圖:

          我們再次編譯項目,查看項目根目錄和 D:/my-target 目錄,如下圖:

          可以看到,在項目的工程目錄已經沒有 target 目錄,真正的 target 目錄已經被我們指定為 D:/my-target 目錄了。

          0x02 target 目錄有什么

          下面是一個簡單項目的 target 目錄,讓我們看下它會包含什么呢?

          target 目錄包含以下幾個子目錄和文件:

          target/debug:

          • 存儲調試模式下構建的可執行文件和庫文件。
          • 包含中間編譯產物,如對象文件(.o 文件)和生成的二進制文件。

          target/release:

          • 存儲發布模式下構建的可執行文件和庫文件。
          • 與調試模式相比,發布模式進行了優化,生成的二進制文件通常更小且運行速度更快。

          target/doc:

          • 存放項目文檔(通常是通過 cargo doc 命令生成的 HTML 文檔)。

          target/.fingerprint:

          • 存儲構建的指紋文件,用于跟蹤哪些文件已經被編譯以及是否需要重新編譯。

          target/package:

          • 存放項目打包后的文件,通常用于 cargo publish 命令發布到 crates.io 倉庫。

          其他臨時文件和目錄:

          • 包括構建緩存、生成的匯編代碼等。

          0x03 指定 target 目錄的優缺點

          統一存放 target 文件既有優點也有缺點:

          優點

          緩存復用

          如果多個項目使用相同的依賴庫,通過指定一個共享的 target 目錄,可以復用編譯緩存,減少重復編譯的時間,大幅提升構建效率。

          管理方便

          通過將編譯輸出集中到一個特定目錄,可以更方便地管理和清理編譯輸出文件。當 Rust 項目過多時,我們可以隨時清理 target 文件。

          缺點

          多個項目共享同一個 target 目錄可能會因為不同的依賴版本而產生沖突,當遇到沖突時需要及時清理 target 目錄。

          0x04 小結

          總體上講,指定 target 目錄可以帶來顯著的構建效率提升,但也需要考慮潛在的版本沖突問題,這個需要根據實際的項目來取舍。


          主站蜘蛛池模板: 精品女同一区二区三区在线 | 中文乱码精品一区二区三区| 亚洲av无码一区二区三区天堂 | 97人妻无码一区二区精品免费| 久久4k岛国高清一区二区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 精品一区二区ww| 精品一区二区三区无码视频| 香蕉在线精品一区二区| 99精品国产高清一区二区麻豆| 亚洲国产专区一区| 一区二区三区精密机械| 久久亚洲一区二区| AV无码精品一区二区三区宅噜噜| 亚洲日韩中文字幕一区| 台湾无码一区二区| 亚洲一区中文字幕久久| 中文字幕一区二区免费| 国产在线精品一区二区高清不卡| 亚洲AV成人一区二区三区观看 | 久久精品免费一区二区三区| 人妻无码一区二区三区四区| 国产无吗一区二区三区在线欢| 少妇精品无码一区二区三区| 无码欧精品亚洲日韩一区| 一区二区三区91| 无码乱人伦一区二区亚洲| 国产无线乱码一区二三区| 久久久精品日本一区二区三区| 亚洲Aⅴ无码一区二区二三区软件| 国产精品乱码一区二区三| 日本无码一区二区三区白峰美| 精品欧洲av无码一区二区 | 一区二区三区四区国产| 精品国产不卡一区二区三区| 国产亚洲一区二区精品| 中文字幕精品一区影音先锋| 无码精品不卡一区二区三区 | 国产伦精品一区二区三区精品| 国产一区二区三区手机在线观看| 国产伦理一区二区三区|