lnmp1.4配置nextcloud13完整教程 技术文章
首先下载nextcloud得最新压缩包,然后解压。
在nextcloud官网得页面下载最新的服务端安装包,我这里目前是13.0的,然后解压:
wget -c https://download.nextcloud.com/server/releases/nextcloud-13.0.0.zip
unzip -q nextcloud-13.0.0.zip
然后使用lnmp vhost add 添加网站,此处省略,请自行去lnmp.org查看教程。
网站添加完成后,我们需要修改你网站的nginx配置文件,使其适应nextcloud的url重写规则:
vi /usr/local/nginx/conf/vhost/demo.mrxn.net.conf
注意:红色的部分是你自己的域名。
将其中的
include enable-php.conf; 修改成 include enable-php-pathinfo.conf; 然后重启nginx,lnmp nginx restart .
这时访问你的域名,即可开始配置nextcloud,设置登录账号,密码,数据库 用户名,数据库名,密码,数据库地址(端口),即可完成。(因为这些网上都有很详细的教程,此处省略)。
配置完后出现的一些问题的解决:
添加 fileinfo 扩展:
1、安装前建议先执行 /usr/local/php/bin/php -m (此命令显示目前已经安装好的PHP模块)看一下,要安装的模块是否已安装。
2、首先进入php安装目录的ext目录,找到并进入要安装扩展的文件夹,我们要安装fileinfo扩展,找到并进入fileinfo文件夹。
例如:/root/lnmp1.4/src/php-7.1.7/ext/fileinfo
3、再执行 /usr/local/php/bin/phpize 会返回如下类似信息:
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
然后再执行以下命令来配置,编译安装fileinfo扩展:
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
执行完后返回如下信息:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
表示编译安装成功,我们只需要修改 /usr/local/php/etc/php.ini 配置文件加入: extension=fileinfo.so ,然后执行 lnmp php-fpm restart 重启 php-fpm服务就完成了fileinfo扩展的安装。
关于php /dev/urandom :
/dev/urandom is not readable by PHP which is highly discouraged for security reasons.
那是因为lnmp默认在每个网站目录加了一个.user.ini文件,防止跨目录,且为只读文件,里面就是写得open_basedir,根据nextcloud官方文档,只要我们添加了/dev/urandom到open_basedir就可以了。
我们首先使用一下命令解锁文件权限,在写入进去就行:
chattr -i /path/to/yoursite/.user.ini #解锁文件
open_basedir=/path/to/yoursite:/tmp/:/proc/:/dev/urandom
其中红色得部分就是我们添加得内容。
修改完后记得改回去,加上锁:
chattr +i /path/to/yoursite/.user.ini
PS:简单说一下这个命令,就当做笔记了
chattr命令:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。
其中添加那个参考了这个链接:
Background jobs 推荐使用系统的crontab 来增加一个:
crontab -u www -e 进行编辑增加
*/15 * * * * php -f /path/to/yoursite/cron.php 即可
其他:
如果你查看左边的日志发现了很多的 类似 scandir() has been disabled for security reasons at ...... 的提示,那么,你需要修改你的php.ini配置文件。
vi /usr/local/php/etc/php.ini
将disable_functions后面的scandir去掉,保存后,重新启动php-fpm,lnmp php-fpm restart
。
如果开启了zend的Opcache插件,那么需要修改一下其相关配置,使其性能最优(官方说的)。最好是使用phpinfo来查看的Opcache配置文件位置,lnmp的扩展配置文件一般是在 /usr/local/php/conf.d/
目录。
以下是我的Opcache配置,供参考:
[Zend Opcache]
zend_extension="opcache.so"
opcache.enable=1
opcache.save_comments=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.fast_shutdown=1
opcache.enable_cli=1
下面是nginx的主要配置,仅供参考!切忌无脑照抄!:
ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
include none.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php-pathinfo.conf;
#这儿是为了支持日历和联系人,建议加上
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
#设置上传文件的最大大小(还和php里的那个设置有关)
client_max_body_size 512M;
fastcgi_buffers 64 4K;
#最主要的,将所有请求转发到index.php上
location / {
rewrite ^ /index.php$uri;
}
#安全设置,禁止访问部分敏感内容
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
include fastcgi.conf;
}
#安全设置,禁止访问部分敏感内容
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
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;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
location ~ /\.ht {
deny all;
}
access_log off;
就到这里了,有啥问题,评论,以后有时间再更新(先挖个坑)。
lnmp配置nginx扩展PageSpeed,Brotli等优化总结(仅供参考) 技术文章
[i]注:本文只适合有一定Linux基础知识的人阅读,如果没有请慎阅,以免带来不适。
Lnmp1.4配置nginx(Nginx已经安装好了)扩展ngx_PageSpeed, Brotli , ngx_http_google_filter_module ,ngx_http_google_filter_module
环境:lnmp1.4 + vultr-JP
OS:#lsb_release -a
Debian GNU/Linux 8.10 (jessie) , PHP-7.1.7 ,MySql-5.5.56 , Nginx-1.12.2
先看一下我的优化后使用Google的PageSpeed Insights PC检测有99分,打开速度是挺快的!
然后查看nginx配置:nginx –V (注意是大写的),结果类似如下:
我们要做的就是再此基础上增加模块,Nginx增加模块比Apache麻烦点,Apache直接配置文件引用.so模块文件即可,Nginx需要编译。不多累述,想了解的自己Google。
首先我们在home目录下新建一个extends文件夹(mkdir /home/extends)用来装我们的扩展源码,接下来就是下载这些源码:
但是,在下载源码之前,我们需要更新一下系统和安装一些依赖:
apt-get update && apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev git gcc g++ make -y
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.tar.gz
tar xzvf v1.13.35.2-stable.tar.gz
cd incubator-pagespeed-ngx-1.13.35.2-stable
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar xzvf 1.12.34.2-x64.tar.gz
git clone https://github.com/cuber/ngx_http_google_filter_module
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
备注:因为是lnmp1.4x + php7.1因此最后两个扩展所需要的这些模块已经自带了:pcre, openssl ,zlib以及nginx源码,如果你不是php7,请自行下载相关依赖并解压到扩展文件夹extends里面方便后面的使用。
接下来就是配置编译前的nginx了(在nginx源码所在的目录,里面包含configure的这个文件夹路径下):
可以创建预编译的目录或者是就在解压缩后的nginx源码目录也行。
./configure --user=www --group=www --prefix=/usr/local/nginx --with-cc-opt=-Wno-deprecated-declarations --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-openssl=/root/lnmp1.4/src/openssl-1.0.2l --add-module=/home/extends/ngx_http_google_filter_module --add-module=/home/extends/ngx_http_substitutions_filter_module --add-module=/home/extends/ngx_brotli --add-module=/home/extends/incubator-pagespeed-ngx-1.13.35.2-stable
需要注意的是:上面的命令你可以根据你自己的路径来修改,注意拼写,推荐使用Tab键补全获得准确的pwd,最重要的就是你需要会看系统的提示,我觉得Linux的系统提示是非常完善的,你根据提示去搜索基本上都是可以找到答案的,特别是像这些流行的应用出现的问题。如果有搞不定的,可以联系我(YWRtaW5AbXJ4bi5uZXQ=)有空会给你解答,当然也可以付费帮你配置这些,毕竟时间就是金钱,而且一个人的精力有限。
如果提示:make[1]: Leaving directory '/root/nginx-1.12.2'这类的,你可能是配置好后编译失败了,需要清除,重新配置。在nginx源码目录执行,make clean ,然后再重新./configure就行。如果还是不行,就自行去预编译的目录下查看是否有nginx二进制文件,如果没有,肯定失败了,否则,停止Nginx,备份已安装的nginx,再将这个预编译好的复制到旧Nginx所在目录,然后启动Nginx,执行nginx –t ,检查看是否出错,如果不出错就打开网页看看是否正常,正常就OK了。不正常的话就慢慢排查吧。
下面贴一下nginx 的主要配置代码:
nginx.conf :
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
brotli on;
brotli_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript
brotli_static off;
brotli_comp_level 11;
brotli_buffers 16 8k;
brotli_window 512k;
brotli_min_length 20;
vhost/mrxn.net.conf:
# 启用ngx_pagespeed
pagespeed on;
pagespeed FileCachePath /tmp/cache/ngx_pagespeed_cache;
# 禁用CoreFilters
pagespeed RewriteLevel PassThrough;
# 启用压缩空白过滤器
pagespeed EnableFilters collapse_whitespace;
# 启用JavaScript库卸载
pagespeed EnableFilters canonicalize_javascript_libraries; #谷歌被墙,国内服务器用不了,国外的不存在
# 把多个CSS文件合并成一个CSS文件
pagespeed EnableFilters combine_css;
# 把多个JavaScript文件合并成一个JavaScript文件
pagespeed EnableFilters combine_javascript;
# 删除带默认属性的标签
pagespeed EnableFilters elide_attributes;
# 改善资源的可缓存性
pagespeed EnableFilters extend_cache;
# 更换被导入文件的@import,精简CSS文件
pagespeed EnableFilters flatten_css_imports;
pagespeed CssFlattenMaxBytes 5120;
# 延时加载客户端看不见的图片
pagespeed EnableFilters lazyload_images;
# 启用JavaScript缩小机制
pagespeed EnableFilters rewrite_javascript;
# 启用图片优化机制
pagespeed EnableFilters rewrite_images;
# 预解析DNS查询
pagespeed EnableFilters insert_dns_prefetch;
# 重写CSS,首先加载渲染页面的CSS规则
pagespeed EnableFilters prioritize_critical_css;
# Example 禁止pagespeed 处理/admin/目录(可选配置,可参考使用)
pagespeed Disallow "*/admin/*";
配置后测试没有问题的话基本是这个样子的:
如果配置过程中有其他的错误,请根据错误提示Google或自查。实在不行就找人吧。
上面的步骤都顺利通过了之后就可以去配置nginx了,主要是配置Google的反代。可以参考我之前写的文章,下面简单记录一下:
备份原有已安装好的nginx:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
service nginx stop
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态,通过上面的命令,已经停止了):
cp ./objs/nginx /usr/local/nginx/sbin/
然后启动nginx (service nginx start),就可以通过命令nginx -V 查看第三方扩展是否已经加入成功.
下面说下在PHP7下如何使emlog支持,其实就是修改几个变量:
1.首先在/include/lib/option.php
大约11行位置
//默认MySQL链接方,mysql或mysqli
把const DEFAULT_MYSQLCONN = 'mysql';
改为 const DEFAULT_MYSQLCONN = 'mysqli';
2.在/include/lib/cache.php
大约195行
把$$row['option_name'] = $row['option_value'];
改为 ${$row['option_name']} = $row['option_value'];
3.在admim/seo.php
大约在15行、19行共两上
把 $$t改为
${$t}
4.在admim/views/admin_log.php
大约在86行、88行、90行共三个
把$$a $$b $$a
改为 ${$a} ${$b} ${$a}
5.在admim/views/comment.php
大约在18行
把 $$a = "class=\"filter\"";
改为 ${$a} = "class=\"filter\"";
另外有些插件和主题是固定了使用mysql连接类,这样还需要修改插件和主题中的数据库连接方式,不然直接报数据库错误。
比如:
$DB = MySql::getInstance();
都要改为$DB = Database::getInstance();
小提示:我是使用的sublime text 使用正则匹配搜索—正则如下:^(\$)(\$)a,不然你会搜不到$$a的,可以使用sublime的指定文件夹搜索,在你的整个网站目录所有文件里搜索相关变量,进行批量替换。
我之前发的相关文章(仅供参考):
两种方式反代Google(镜像)--nginx反代和nginx扩展
https://mrxn.net/Linux/nginx_http_google_filter.html
为nginx添加这些额外的第三方扩展加速你的web吧
https://mrxn.net/Linux/nginx_add_module.html
参考文章—感谢他们的分享:
https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source
BurpSuite 1.7.32 Cracked 破解版[注册机]下载【无后门版】 安全工具
update:如果你是Linux系统比如,Kali,自带的jdk版本过高,激活失败,请参照这个教程配置适合的jdk版本。最新版 burpsuite_pro_v1.7.37汉化破解版
之前也在博客分享了多个版本的BurpSuite:知名渗透测试套件BurpSuite Pro v1.7.12破解版
最近网上出了新版本的得BurpSuite ,搜了一下很多地方可以下载,但是其中有不少包含后门,因此呢,Google搜索找了一会儿,找到了原版出处,在此分享给大家,同时呢,也作为存档存在博客。使用很简单:
首先看一下我的注册后的:
注册机的使用也很简单,首先打开burp-loader-keygen.jar文件,然后随便填写license text,比如我填写的是:mrxn.net效果如下图:
然后点击manual activation(手动激活):
接下来将request 粘贴到activation request ,将自动生成response,再粘贴到burp里最下面的response中,点击next下一步即可:
激活成功:
下载后请注意验证hash值:
Burp_Suite_Pro_v1.7.32_Loader_Keygen\Burp_Suite_Pro_v1.7.32_Loader_Keygen\burp-loader-keygen.jar
Size: 65220 bytes
Modified: 2018年1月25日, 17:01:33
MD5: A4A02E374695234412E2C66B0649B757
SHA1: 63EF57AA0FD7FDB6F6D2171CF946177C9C23B195
CRC32: 4F363E7BBurp_Suite_Pro_v1.7.32_Loader_Keygen\Burp_Suite_Pro_v1.7.32_Loader_Keygen\burpsuite_pro_v1.7.32.jar
Size: 27955758 bytes
Modified: 2018年2月3日, 10:02:08
MD5: D4D43E44769B121CFD930A13A2B06B4C
SHA1: C6CD0BBE402B75F4806D76A04D251474308415B8
CRC32: 0FD2072A
两个下载地址,一个是rar(方便win平台用户)一个是7Z(Linux平台)
RAR下载: https://pan.lanzou.com/i0hpf0h 密码:mrxn
ZIP下载: https://pan.lanzou.com/i0hph1a 密码:mrxn
需要注意得地方:
今后用burpsuite 只需要先打开burp-loader-keygen.jar ,再点击一下run即可,无需重新激活 如果出现闪退,打不开等等兼容性问题,请下载更新最新版jdk,地址: https://www.java.com/zh_CN/download/