在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Linux問答
逗婦乳 回答

建議 確定下小程序的ws服務(wù)器配置。

孤巷 回答

你直接在命令行里面cd到那個文件夾然后用ll或者是ls -al查看全部文件,就能看到被隱藏的.git文件夾

浪婳 回答

個人的一點點理解:
如果你的網(wǎng)站都是自己內(nèi)部的地址,那帶token應(yīng)該是沒什么問題的。但是如果在一些論壇之類的地方,一個網(wǎng)站上可能有各種鏈接,那就有問題了。
一個論壇網(wǎng)站W(wǎng):http://a.com,如果訪問論壇里面某個鏈接的地址是article.html?id=&token=, 這時候有個危險鏈接article.html?id=222&token=111,該頁面是用戶編輯的,里面掛了個誘惑性的地址http://d.com/danger.html, 在danger.html里面有個獲取Referer的方法,得到了一個token,還有一個圖<img src="http://a.com/modifyPwd?token=*">

  1. 用戶U登錄論壇W,授權(quán)成功
  2. 用戶點擊鏈接article.html?id=222&token=111,
  3. 用戶點擊了誘惑性的網(wǎng)址http://d.com/danger.html
  4. danger.html內(nèi)通過img發(fā)出了http://a.com/modifyPwd?token=*
  5. 跨域攻擊成功
撥弦 回答
  1. 你這配置也是挺神奇的,干嘛嵌套著寫啊?
  2. 非正則,且路徑對應(yīng)指令path值的最后一部分,如:

    location /phpmyadmin/ {
      alias /web/phpmyadmin/;
    }

    這個是建議使用root的(官方最佳實踐)

  3. 正則路徑,表達式里需要帶上匹配組,且應(yīng)該被alias引用,如:

    location ~ ^/phpmyadmin/(.+?\.php)(/.*)?$ {
          alias /web/$1;
    }
  4. 其實都是文檔上的東西。抽空好好看看吧。
伐木累 回答

在做你所述以上事情之前需要明確一點,那就是CPU架構(gòu)問題。
PC系統(tǒng)和嵌入式系統(tǒng)的CPU架構(gòu)不同,你可能需要了解:i386、x86_64、arm32、arm64、armv7、armv8(aarch32、aarch64)等cpu架構(gòu)的區(qū)別

很明顯,樹莓派屬于嵌入式系統(tǒng),使用的是arm架構(gòu),樹莓派3以上(包含3b和3b+)可支持64位cpu,也就是采用的是armv8架構(gòu),armv8支持兩種屬性,即:aarch32、aarch64,通俗的說就是最新發(fā)行的樹莓派已經(jīng)可以支持64位,而以往的版本僅支持32位

如果你的Docker是裝在PC上的或者是PC上的虛擬機里的(比如vm虛擬機之類的)那么Docker所使用的硬件是與宿主機共享硬件核心,所以,宿主機的硬件核心決定了docker的核心,換句話說就是docker并非虛擬機,并不能虛擬出一套與宿主機不同cpu架構(gòu)的硬件,即便是vm虛擬機,也是不能運行arm版本的操作系統(tǒng)的

在樹莓派中可以安裝centos系統(tǒng),并且centos官方有img鏡像,但僅是32位的。
在樹莓派中運行的centos系統(tǒng)一樣可以安裝Docker,值得注意的是Docker官方的文檔中指出:不建議嵌套Docker,也就是在Docker中創(chuàng)建一個centos鏡像容器,然后在此容器中又安裝一個Docker,雖然支持但不建議這樣做。

想要實現(xiàn)如你所述的測試環(huán)境,可以參考以下做法:
1、使用和樹莓派同樣cpu架構(gòu)的真機,也就是arm架構(gòu)的真實測試機器
2、使用qemu虛擬機,qemu是一個軟件模擬環(huán)境,可以模擬運行arm架構(gòu)的操作系統(tǒng),不過據(jù)說性能堪憂
3、使用交叉編譯環(huán)境,也就是讓pc上的Linux具有編譯不同cpu架構(gòu)程序的能力,程序經(jīng)過交叉編譯后即可移植到arm架構(gòu)的機器上去

以上所述如有偏頗或不同方案,希望不吝賜教。

過客 回答

偽靜態(tài)設(shè)置了嗎?
Nginx 偽靜態(tài)

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}
神曲 回答

CentOS 7使用systemd管理系統(tǒng)服務(wù),你需要花點時間去看看systemd的官方文檔

帥到炸 回答

已經(jīng)解決了,跟umask有關(guān)。
原因:
linux默認umask為022,對應(yīng)權(quán)限為755,其它用戶可讀可執(zhí)行。可以vim /etc/profile,搜索umusk關(guān)鍵字查看

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

而tomcat8默認umask為027,對應(yīng)權(quán)限為750,也就是說其它用戶連可讀的權(quán)限都沒有
可打開catalina.sh文件,搜索umask查看。

# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
    UMASK="0027"
fi
umask $UMASK

解決方法:
修改catalina.sh中的umask為0022,與操作系統(tǒng)保持一致,然后重啟tomcat即可。

參考博客:
linux umask使用詳解
有關(guān)Tomcat 8.0版本文件上傳后無權(quán)限訪問的問題

厭遇 回答

自己解決了,之前實在anaconda3下新建虛擬環(huán)境python2.7,所以會報錯
下載anconda2在安裝graphlab環(huán)境就好了,希望對需要的人有幫助。

枕邊人 回答

這是 libevent 與 openssl 版本不兼容導(dǎo)致。

一般來說,它們的版本關(guān)系是這樣的

libevent openssl
2.1.x 1.1
2.0.x 1.0

因此你有兩個選擇

  1. 使用 libevent 2.1.x 版本,這與你本機的 openssl 1.1 匹配,無需任何修改直接編譯即可。
  2. 使用 libevent 2.0.x 版本,你需要安裝 openssl 1.0 版本,然后在編譯時指定鏈接版本。

下面針對第二種選擇做詳細說明,這種方法是通用的,適用于編譯其他軟件時出現(xiàn)版本不兼容問題。

  1. 首先安裝 openssl 1.0 版本,注意需要頭文件。你可以選擇從源碼安裝,或使用操作系統(tǒng)的倉庫下載安裝。
    這類安裝包通常帶有 "*-dev" 字樣,比如 centos 發(fā)行版可能是這樣的

    yum install openssl-devel-1.0xxx
  2. openssl 安裝完成后,會有一個 pkgconfig/ 目錄,實際路徑取決于你上一步的操作,一般位于 /usr/lib/usr/local/lib 下。
    這里我們假設(shè)是 /usr/local/lib/openssl-1.0/pkgconfig/, 你需要將它設(shè)置成 PKG_CONFIG_PATH 的環(huán)境變量值,如

    export PKG_CONFIG_PATH=/usr/local/lib/openssl-1.0/pkgconfig/ 
  3. 切換到 libevent 源碼目錄,把 openssl 頭文件路徑,及庫文件路徑加入 configure 配置變量,如

    ./configure   CFLAGS="$(pkg-config --cflags openssl)"   LDFLAGS="$(pkg-config --libs openssl)"
  4. 清除原內(nèi)容,并重新編譯即可

    make clean
    make -j8
鐧簞噯 回答

報錯在最后一行: libgfortran.so.3: cannot open shared object file: No such file or directory

安裝這個lib理論上應(yīng)該就能解決 sudo apt install -y libgfortran3

扯不斷 回答

你說不是就不是嘍

The -e option is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables. After you exit from the editor, the modified crontab will be installed automatically. If neither of the environment variables is defined, then the default editor /usr/bin/editor is used.

在我的機器上的結(jié)果是

$ ls -al /usr/bin/editor

lrwxrwxrwx 1 root root 24 11月 25  2014 /usr/bin/editor -> /etc/alternatives/editor

$ ls -al /etc/alternatives/editor

lrwxrwxrwx 1 root root 16 1月  21  2016 /etc/alternatives/editor -> /usr/bin/emacs24

所以我機器上用的是emacs, 看看你的機器上是什么就知道了.


用`$ sudo update-alternatives --list editor` 查看本機器究竟有哪些editors,
/bin/ed
/bin/nano
/usr/bin/emacs24
/usr/bin/mcedit
/usr/bin/vim.basic
/usr/bin/vim.tiny

然后用sudo update-alternatives --set editor設(shè)置成你喜歡的.

涼薄 回答

內(nèi)存這個應(yīng)該不用觀察吧.
每個進程的內(nèi)存空間都是獨立的, 進程掛了, 操作系統(tǒng)給她分配的內(nèi)存都會回收掉.

至于其他需要釋放的資源怎么處理, 這里要看你說的資源都是啥.
內(nèi)存/文件/鎖/數(shù)據(jù)庫鏈接/共享消息等.
如果是進程內(nèi)資源, 那操作系統(tǒng)負責回收, 如果是跨進程的資源,比如和另外個進程共用一把鎖, 這個時候進程A掛了,進程B就拿不到鎖了, 如果進程B也沒有鎖的超時機制,那就有問題了.

更進一步, 如果你把"資源"限定在為一個一組對稱的操作的話, 也不會釋放. 比如進程啟動初始化了一堆文件, destroy的時候應(yīng)該全部刪除. 這個活兒操作系統(tǒng)不會幫你干,進程掛了的時候也沒有釋放.

入她眼 回答
proxy_intercept_errors on;
error_page 504 = @500;
location @500 {
    default_type application/json;
    return 500 '{"code": -1,"message":"failed to connect remote error"}';
}
孤客 回答

1、利用progress-stream獲取上傳進度

如果只是想在服務(wù)端獲取上傳進度,可以試下如下代碼。注意,這個模塊跟express、multer并不是強綁定關(guān)系,可以獨立使用。

var fs = require('fs');
var express = require('express');
var multer  = require('multer');
var progressStream = require('progress-stream');

var app = express();
var upload = multer({ dest: 'upload/' });

app.post('/upload', function (req, res, next) {
    // 創(chuàng)建progress stream的實例
    var progress = progressStream({length: '0'}); // 注意這里 length 設(shè)置為 '0'
    req.pipe(progress);
    progress.headers = req.headers;
    
    // 獲取上傳文件的真實長度(針對 multipart)
    progress.on('length', function nowIKnowMyLength (actualLength) {
        console.log('actualLength: %s', actualLength);
        progress.setLength(actualLength);
    });

    // 獲取上傳進度
    progress.on('progress', function (obj) {        
        console.log('progress: %s', obj.percentage);
    });

    // 實際上傳文件
    upload.single('logo')(progress, res, next);
});

app.post('/upload', function (req, res, next) {
    res.send({ret_code: '0'});
});

app.get('/form', function(req, res, next){
    var form = fs.readFileSync('./form.html', {encoding: 'utf8'});
    res.send(form);
});

app.listen(3000);

2、獲取上傳文件的真實大小

multipart類型,需要監(jiān)聽length來獲取文件真實大小。(官方文檔里是通過conviction事件,其實是有問題的)

    // 獲取上傳文件的真實長度(針對 multipart)
    progress.on('length', function nowIKnowMyLength (actualLength) {
        console.log('actualLength: %s', actualLength);
        progress.setLength(actualLength);
    });

3、關(guān)于progress-stream獲取真實文件大小的bug?

針對multipart文件上傳,progress-stream 實例子初始化時,參數(shù)length需要傳遞非數(shù)值類型,不然你獲取到的進度要一直是0,最后就直接跳到100。

至于為什么會這樣,應(yīng)該是 progress-steram 模塊的bug,看下模塊的源碼。當length是number類型時,代碼直接跳過,因此你length一直被認為是0。

    tr.on('pipe', function(stream) {
        if (typeof length === 'number') return;
        // Support http module
        if (stream.readable && !stream.writable && stream.headers) {
            return onlength(parseInt(stream.headers['content-length'] || 0));
        }

        // Support streams with a length property
        if (typeof stream.length === 'number') {
            return onlength(stream.length);
        }

        // Support request module
        stream.on('response', function(res) {
            if (!res || !res.headers) return;
            if (res.headers['content-encoding'] === 'gzip') return;
            if (res.headers['content-length']) {
                return onlength(parseInt(res.headers['content-length']));
            }
        });
    });

參考鏈接

https://github.com/expressjs/...
https://github.com/freeall/pr...

入她眼 回答

session_handler相關(guān)函數(shù)貼一下,默認是存文件的,你存數(shù)據(jù)庫證明這里有修改

遲月 回答

Go C++等語言的可執(zhí)行文件執(zhí)行是都是加載到內(nèi)存的

不歸路 回答

docker可以理解為一個簡單的虛擬機。所有在docker容器里的操作都是獨立的。使用python鏡像一定要啟動容器

舊城人 回答

子文件逐個刪除,居然能成功。。微軟傻逼了。。

法克魷 回答

把異步變同步,用async+await