用ubuntu+owncloud+nginx+php-fpm+mysql+aria2打造私有云+遠(yuǎn)程下載器


起由

  • 由于最近的“凈網(wǎng)”行動,很多網(wǎng)盤包括我一直在使用的快盤關(guān)停,仍然存活的百度云、360云等又沒有l(wèi)inux客戶端掉冶,用Dropbox等國外網(wǎng)盤受空間和墻的限制比較大。
  • 同時又有一定的收集高清電影在局域網(wǎng)里共享播放的需要脐雪。家里是百兆電信寬帶郭蕉,平時空時可以用來下載,所以有了自建以私有云為基礎(chǔ)的服務(wù)器的想法喂江。
  • 私有云方案有多種方案召锈,出于可擴(kuò)展功能的需要,選擇了Ubuntu14.04+Owncloud的方案获询,使用者要有一點(diǎn)的linux操作和vi編輯經(jīng)驗涨岁。
  • 順帶要把mysql和phpmyadmin也配置好

主機(jī)配置

  • 主機(jī)放于家庭電視機(jī)柜中,24小時開機(jī)吉嚣,喬思伯V3 ITX HTPC機(jī)箱


    喬思伯V3機(jī)箱
  • 放了3塊以前留下的2.5寸硬盤梢薪,一共2.5T,其中兩塊是裝在PCIE硬盤掛架上尝哆。
  • 內(nèi)存2G(以前淘汰下來的秉撇,基本夠用),系統(tǒng)裝在一塊64Gssd上
  • 主板集成J1800 CPU,無風(fēng)扇琐馆,TDP 15w规阀,足夠放1080p X264編碼的高清電影,不過現(xiàn)在建議用更高級的N3455主板瘦麸,能放4k的高清谁撼。


    J1800主板
  • 不算硬盤,HTPC的資金投入是 主板250+內(nèi)存100+機(jī)箱200+電源150=700

帶端口映射的智能路由器

  • 一般情況下滋饲,家庭局域網(wǎng)出口在公網(wǎng)環(huán)境下是沒有固定ip厉碟,所以路由要有動態(tài)域名解析功能,能從公網(wǎng)環(huán)境中反向通過家庭路由訪問到局域網(wǎng)
  • 由于電信封了80和8080端口屠缭,同時又要把對路由公網(wǎng)ip的訪問轉(zhuǎn)到HTPC上箍鼓,所以要有端口映射功能
  • 又有其他翻墻、路由分離功能
  • openwrt是一個比較好的方案呵曹,我的方案是淘寶上這一款 841N 五口 OpenWrt 無線路由器 16M 64M 雙天線袄秩,體積小,拆掉天線后放入弱電箱逢并,無線功能靠二級路由實現(xiàn),要注意要把二級跟帖的ip段設(shè)置的和主路由一樣郭卫。
  • 以下我都把我用的這個路由器稱作為openwrt
    841N 五口 OpenWrt 無線路由器

修改openwrt路由器root密碼和端口

  • 上述路由器的默認(rèn)帳戶和密碼是root砍聊,出于安全的需要,請把密碼改了


    改root密碼
  • 電信封了家庭用戶的80和8080端口贰军,如果你想在辦公室里修改家里路由器的設(shè)置玻蝌,請修改。
  • 方法:在局域網(wǎng)環(huán)境下词疼, ssh root@192.168.10.1
  • 進(jìn)入 /etc/config后編輯 uhttp,vi uhttp贰盗,把兩個listen_http后面的端口改成800许饿。
config uhttpd 'main'
        list listen_http '0.0.0.0:800'
        list listen_http '[::]:800'
        list listen_https '0.0.0.0:443'
        list listen_https '[::]:443'
  • 重啟路由

開啟openwrt的端口映射

  • 首先要確定你的機(jī)器(下面統(tǒng)稱HTPC)的靜態(tài)IP
  • 在web界面,網(wǎng)絡(luò)-防火墻-端口轉(zhuǎn)發(fā)里舵盈,增加以下幾條轉(zhuǎn)發(fā)到此靜態(tài)IP的規(guī)則
21->21:#For FTP
20->20:#For FTP
22->22:#For SSH remote login 
443->443:#For Https
6800->6800:#For Aria2
6801->6801:#For Aria2
  • 你們可以注意到?jīng)]有規(guī)則對80轉(zhuǎn)發(fā)或者轉(zhuǎn)發(fā)到80端口

開啟動態(tài)域名

  • openwrt內(nèi)置動態(tài)域名解析功能陋率,可以在 changeip.com去申請,比如我申請了一個 testdomain.changeip.com秽晚,這樣在外網(wǎng)環(huán)境中結(jié)合上述端口映射瓦糟,可以直接對內(nèi)網(wǎng)中的HTPC進(jìn)行操作,安裝軟件赴蝇、修改服務(wù)菩浙、。

安裝samba和vsftp

  • ssh到HTPC后自行安裝,并設(shè)置好目錄劲蜻,我 木木是把 三塊 HDD mount 到 /mnt目錄下陆淀,開啟對samba用戶和ftp用戶的訪問權(quán)。
  • 我的samba的配置要用到圖形界面軟件system-config-samba斋竞,最好在htpc上直接用鍵盤操作倔约。

安裝mysql

sudo apt-get install mysql-server mysql-client

出人意料的NTFS權(quán)限問題

  • 這個是歷史遺留問題:
    我的三塊硬盤在放到htpc里時全是ntfs格式,上面都有數(shù)據(jù)坝初,不能無損轉(zhuǎn)成EXT4
  • owncloud的存貯路徑是在其中一塊硬盤上浸剩,原來是直接mount到/mnt目錄下,在后面配置owncloud時指定存貯目錄時鳄袍,出現(xiàn)權(quán)限770問題
  • 數(shù)據(jù)太多绢要,不能格盤,在owncloud的官方網(wǎng)站上找了好久拗小,找出是mount時出的 用戶權(quán)限分配問題时迫,后來通過修改 /etc/fstab 指定 mount時的uid等來解決
    /dev/sdb5 /mnt/disk1 ntfs locale=zh_CN.UTF-8,uid=33,gid=33,dmask=007,windows_names 0 0
  • 上面的uid=33,gid=33分別對應(yīng)遠(yuǎn)行nginx的用戶 www-data和用戶組www-data

安裝nginx和php-fpm和mysql

  • 請給你的mysql設(shè)置一個比較強(qiáng)的root密碼,并且為owncloud創(chuàng)建專有用戶

sudo apt-get install nginx
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php-fpm php-mysql php-mbstring

安裝phpmyadmin和owncloud

  • 直接從網(wǎng)上下載誊垢,解壓到web服務(wù)目錄
  • 我的web服務(wù)根目錄是 /home/test/www
  • 改變目錄擁有者 sudo chown www-data -R /home/test/www
  • 改變權(quán)限 sudo chmod 755 -R /home/test/www
  • 配置phpmyadmin
  • 拷貝原始配置文件
cd /home/test/www/phpmyadmin
cp config.sample.inc.php config.inc.php
  • vi /home/test/www/phpmyadmin/config.inc.php
  • 配置 $cfg['blowfish_secret'] = '$#%#$%#$%#$^#^ETETR';就是一個加密信息荸镊,越亂越好
  • 配置另一個config文件
cd /home/test/www/phpmyadmin/libraries
vi config.default.php
  • 同樣配置$cfg['blowfish_secret']
  • 其他用默認(rèn)

分別配置php7-fpm和php5-fpm

  • 先裝的是php7-fpm,和新版phpmyadmin 配合的比較好阅束,但是和owncloud9.0不兼容
  • 幸好php7-fpm里也有php5-fpm呼胚,經(jīng)過一番試驗后,可以分別配置兩個php的后臺運(yùn)行
  • php7.0的 配置環(huán)境在 /etc/php/7.0/fpm里息裸,有php-fpm.confphp.ini兩個重要的配置文件
  • php.ini:
  1. 設(shè)置 short_open_tag = On
  2. extension_dir = "/usr/lib/php/20151012"蝇更,目錄通過catfish搜索mysql.so找到,用于安裝各種擴(kuò)展呼盆,應(yīng)該是apt-get install時自動放入年扩。
  3. 開啟對mysql的支持:extension=mysqli.soextension=pdo_mysql.so
  4. 設(shè)置''cgi.fix_pathinfo=0''
  • php-fpm.conf:
    可以看到 include=/etc/php/7.0/fpm/pool.d/*.conf访圃,里面有www.conf文件
    1. 配置listen: listen = /run/php/php7.0-fpm.sock厨幻,配置nginx時會用到
    2. 重啟php-fpm:sudo service php7-fpm restart
  • php5的配置文件夾為/etc/php5/fpm,也是這兩個文件* php-fmp.confphp.ini*兩個重要的文件
  • php.ini
1. 設(shè)置 ```short_open_tag = On```
2. ``extension_dir="/usr/lib/php5/20121212"``腿时,注意和php7的不同克胳,估計也是編譯時生成
3. ``cgi.fix_pathinfo=1``,應(yīng)該是和owncloud有關(guān)的一個設(shè)置圈匆,否則會報錯漠另。
4. 各種extensions,有部分是和owncloud相關(guān)
  ```
  extension=mysql.so
  extension=mysqli.so
  extension=pdo_mysql.so
  extension=pdo.so
  extension=json.so
  extension=gd.so
  extension=opcache.so
  ```
  • php-fpm.conf
    可以看到 include=/etc/php5/fpm/pool.d/*.conf跃赚,里面有www.conf文件笆搓,找listen參數(shù):listen = /var/run/php5-fpm.sock

nginx開啟https性湿,兩種方案

owncloud9.0強(qiáng)制要求https服務(wù),需要對自己web站進(jìn)行認(rèn)證满败,實際中我試過兩種方案肤频,最后用的是第一種方案

  1. 用自簽名的SSL證書
  • 采用自驗證方案,借用廖雪峰大神的腳本給Nginx配置一個自簽名的SSL證書
  • 運(yùn)行這個腳本后算墨,把生成的key文件和crt文件復(fù)制到/etc/nginx/ssl/目錄宵荒,
    /etc/nginx/ssl/testdomain.changeip.com.crt
    /etc/nginx/ssl/testdomain.changeip.com.key
    配置nginx時要用到
    或者你直接在后面寫nginx文件時指向這兩個文件
  1. 用letsencypt加密自己的服務(wù)器
  • 下載安裝
git clone https://github.com/certbot/certbot.git
cd certbot
./letsencrypt-auto --help 
  • 生成密鑰暑刃,在這之前要停止nginx
./letsencrypt-auto certonly -d testdomain.changip.com -m testdomain@gmail.com
  • 這樣,會生成
    /etc/letsencrypt/live/testdomain.changeip.com/fullchain.pem
    /etc/letsencrypt/live/testdomain.changeip.com/privkey.pem
    兩個文件膜眠,不用移動位置
  • 生成2048位 DH parameters:
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams.pem 2048
  • 美中不足的是岩臣,這種方案只有90天的有效期,要到時候運(yùn)行腳本renew

owncloud

  • 前面已經(jīng)提到了很多owncloud的配置宵膨,都為實踐中一一摸索得來架谎,主要有
    1. 專用mysql用戶
    • https證書
    • php.ini配置
    • 文件夾權(quán)限
    • 端口映射
    • 特別要強(qiáng)調(diào),要把owncloud的數(shù)據(jù)文件目錄的用戶改成 www-data辟躏,權(quán)限也要改770

aria2和yaaw

  • aria2可以apt-get安裝或者編譯安裝谷扣,參考網(wǎng)上教程,至少能安裝到1.19版本
  • yaaw下載后直接解壓縮到/home/kodi/yaaw下
  • aria2的教程網(wǎng)上很多鸿脓,我這里貼出我的配置,放在~/.aria2/aria2.conf里
    rpc-secret=secret #token加密方式
    enable-rpc=true
    rpc-allow-origin-all=true
    rpc-listen-all=true
    rpc-listen-port=6800#nginx里有個轉(zhuǎn)發(fā)到這個端口的設(shè)置
    rpc-secure=true
    rpc-certificate=/etc/letsencrypt/live/testdomain.changeip.com/fullchain.pem
    rpc-private-key=/etc/letsencrypt/live/testdomain.changeip.com/privkey.pem
    max-concurrent-downloads=5
    continue=true
    max-connection-per-server=5
    min-split-size=10M
    split=10
    max-overall-download-limit=3M
    max-download-limit=0
    max-overall-upload-limit=256K
    max-upload-limit=0
    dir=/mnt/disk2/Downloads
    disk-cache=32M
    file-allocation=prealloc
    input-file=/home/kodi/.aria2/aria2.session
    save-session=/home/kodi/.aria2/aria2.session
  • 在配置yaaw是關(guān)鍵一步涯曲,在setting后野哭,要把JSON-RPC Path設(shè)置成
https://token:secret@testdomain.changeip.com:6801/jsonrpc #請注意https和6801

nginx配置

  • 這一步配的頭大,后來參考了owncloud官方配置文件才寫出來
  • 實際使用過程中又進(jìn)行了不斷的調(diào)整
  • 你們可以注意到有個對 6801進(jìn)行ssl加密又轉(zhuǎn)發(fā)到6800端口的配置 幻件,這是為了讓yaaw在全站加密的情況下拨黔,突破aria2c的server對https的兼容性問題
  • 要解釋的東西太多了,有些我還看不懂绰沥,以后一一寫來
upstream php5-handler {
    server unix:/var/run/php5-fpm.sock;
}
upstream php7-handler {
    server unix:/run/php/php7.0-fpm.sock;
}
server{
    listen 6801 ssl;
    server_name testdomain.changeip.com;
    ssl_certificate /etc/letsencrypt/live/testdomain.changeip.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/testdomain.changeip.com/privkey.pem;
    ssl_dhparam /etc/nginx/ssl/dhparams.pem;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers  on;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:6800;
    }
}
server {
    listen 443 ssl;
    server_name testdomain.changeip.com 192.168.10.150;
    ssl_certificate /etc/letsencrypt/live/testdomain.changeip.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/testdomain.changeip.com/privkey.pem;
    ssl_dhparam /etc/nginx/ssl/dhparams.pem;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers  on; 
    # Add headers to serve security related headers
    # Before enabling Strict-Transport-Security headers please read into this topic first.
    #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    # Path to the root of your installation
    root /home/kodi/www/;
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
    location /luci{
    proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://192.168.10.1;
    } 
    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /owncloud/public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /owncloud/public.php?service=host-meta-json last;
    location = /.well-known/carddav { return 301 $scheme://$host/owncloud/remote.php/dav; }
    location = /.well-known/caldav { return 301 $scheme://$host/owncloud/remote.php/dav; }
    location /.well-known/acme-challenge { }
    location ^~ /phpmyadmin{
        location /phpmyadmin{
            server_name_in_redirect off;
            index index.php;
        }
        location ~ ^/phpmyadmin/(?:build|tests|config|lib|3rdparty|templates|data)/ {
            deny all;
        }
        location ~ ^/phpmyadmin/(?:\.|autotest|occ|issue|indie|console) {
            deny all;
        }
        location ~ "^\/phpmyadmin\/.*\.php$" {
            include fastcgi_params;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param HTTPS on;
            fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
            fastcgi_param front_controller_active true;
            fastcgi_pass php5-handler;
            fastcgi_intercept_errors on;
           # fastcgi_request_buffering off;
        }
        location ~ "^\/phpmyadmin\/.*\.\(htm|html|gif|jpg|png|js|css\)$" {
            root /home/kodi/www;
        }     
    }
    location ^~ /owncloud {
        # set max upload size
        client_max_body_size 51200M;
        fastcgi_buffers 64 4K;
        # Disable gzip to avoid the removal of the ETag header
        gzip off;
        # Uncomment if your server is build with the ngx_pagespeed module
        # This module is currently not supported.
        #pagespeed off;
        location /owncloud {
            rewrite ^ /owncloud/index.php$uri;
        }
        location ~ ^/owncloud/(?:build|tests|config|lib|3rdparty|templates|data)/ {
            deny all;
        }
        location ~ ^/owncloud/(?:\.|autotest|occ|issue|indie|db_|console) {
            deny all;
        }
        location ~ ^/owncloud/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
            include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param HTTPS on;
            fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
            fastcgi_param front_controller_active true;
            fastcgi_pass php5-handler;
            fastcgi_intercept_errors on;
           # fastcgi_request_buffering off;
        }
        location ~ ^/owncloud/(?:updater|ocs-provider)(?:$|/) {
            try_files $uri/ =404;
            index index.php;
        }
        # Adding the cache control header for js and css files
        # Make sure it is BELOW the PHP block
        location ~* \.(?:css|js)$ {
            try_files $uri /owncloud/index.php$uri$is_args$args;
            add_header Cache-Control "public, max-age=7200";
            # Add headers to serve security related headers  (It is intended to have those duplicated to the ones above)
            # Before enabling Strict-Transport-Security headers please read into this topic first.
            #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
            add_header X-Content-Type-Options nosniff;
            add_header X-Frame-Options "SAMEORIGIN";
            add_header X-XSS-Protection "1; mode=block";
            add_header X-Robots-Tag none;
            add_header X-Download-Options noopen;
            add_header X-Permitted-Cross-Domain-Policies none;
            # Optional: Don't log access to assets
            access_log off;
        }
        location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
            try_files $uri /owncloud/index.php$uri$is_args$args;
            # Optional: Don't log access to other assets
            access_log off;
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篱蝇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子徽曲,更是在濱河造成了極大的恐慌零截,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秃臣,死亡現(xiàn)場離奇詭異涧衙,居然都是意外死亡哪工,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門弧哎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雁比,“玉大人,你說我怎么就攤上這事撤嫩≠松樱” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵序攘,是天一觀的道長茴她。 經(jīng)常有香客問我,道長两踏,這世上最難降的妖魔是什么败京? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮梦染,結(jié)果婚禮上赡麦,老公的妹妹穿的比我還像新娘。我一直安慰自己帕识,他們只是感情好泛粹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肮疗,像睡著了一般晶姊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伪货,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天们衙,我揣著相機(jī)與錄音,去河邊找鬼碱呼。 笑死蒙挑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的愚臀。 我是一名探鬼主播忆蚀,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼姑裂!你這毒婦竟也來了馋袜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤舶斧,失蹤者是張志新(化名)和其女友劉穎欣鳖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茴厉,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡观堂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年让网,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片师痕。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡溃睹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胰坟,到底是詐尸還是另有隱情因篇,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布笔横,位于F島的核電站竞滓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吹缔。R本人自食惡果不足惜商佑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厢塘。 院中可真熱鬧茶没,春花似錦、人聲如沸晚碾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽格嘁。三九已至笛求,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糕簿,已是汗流浹背探入。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留懂诗,地道東北人蜂嗽。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像响禽,于是被迫代替她去往敵國和親徒爹。 傳聞我的和親對象是個殘疾皇子荚醒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • GrayLog2 安裝 (Minimual Setup) 環(huán)境依賴 Graylog 服務(wù)端需要一下環(huán)境依賴: Li...
    Eraz閱讀 3,864評論 0 3
  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成芋类,其中,內(nèi)核的設(shè)計非常微小和簡潔界阁,完成的工作也非常簡單...
    rosekissyou閱讀 10,196評論 5 124
  • # OpenTaxii配置教程 ## 安裝過程中注意點(diǎn) - 官方給出的service.yml配置文件中默認(rèn)使用ht...
    SimonChen閱讀 1,134評論 0 2
  • 自己的騰訊云服務(wù)器上跑了點(diǎn)小應(yīng)用侯繁,本想著沒什么內(nèi)容就沒必要弄 https了,但是同學(xué)還是強(qiáng)烈建議我加上去泡躯。之后用h...
    一名普通用戶閱讀 1,098評論 0 2
  • 不知道從什么時候養(yǎng)成的壞毛病贮竟,在夏天即將過去的時候丽焊,習(xí)慣性拿出小本本寫一些“夏天已過去”的有的沒的感慨,有什么用咕别!...
    知更棉閱讀 238評論 0 0