念念不忘,必有回响
August 10, 2018

MacOS 删除 .DS_Store 并不再产生

DS_Store 是给 Finder 用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。删除以后的副作用就是这些信息的失去。

这个文件特别烦,尤其是靠文件给 Windows 的时候,别人总说你的文件夹里怎么总是多一些乱七八糟的东西。每次单独删又很麻烦,下面介绍使 .DS_Store 不再产生的办法。

删除文件夹内所有隐藏 .DS_store 文件

sudo find 文件夹目录 -name ".DS_Store" -depth -exec rm {} \; 

设置不再产生 .DS_store 文件

defaults write com.apple.desktopservices DSDontWriteNetworkStores true 
August 8, 2018

解决 Discuz 门户页面游客不显示关键字和描述信息

解决 Discuz 门户页面游客不显示关键字和描述信息的问题,此方法适合 Discuz X2.5 的程序,不过也同样适合 X3.0和 X3.1,代码稍微不同。

解决办法如下:

找到文件 source/class/helper/helper_seo.php 这个文件

以下 2.5 代码

if($descriptiontext && (CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
$seodescription = helper_seo::strreplace_strip_split($searchs, $replaces, $descriptiontext);
}
if($keywordstext && (CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
$seokeywords = helper_seo::strreplace_strip_split($searchs, $replaces, $keywordstext);
}

以下 3.1 代码

if($descriptiontext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
$seodescription = helper_seo::strreplace_strip_split($searchs, $replaces, $descriptiontext);
}
if($keywordstext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
$seokeywords = helper_seo::strreplace_strip_split($searchs, $replaces, $keywordstext);
}

修改为:

if($descriptiontext) {
$seodescription = helper_seo::strreplace_strip_split($searchs, $replaces, $descriptiontext);
}
if($keywordstext) {
$seokeywords = helper_seo::strreplace_strip_split($searchs, $replaces, $keywordstext);
}
June 22, 2018

dedecms [field:fulltitle/]标签详解

我们在制作模版过程中为了美观通常会限制文章标题的长度,比如:

{dede:arclist titlelen='30' row='10' }  
<li><a href="[field:arcurl/]">[field:title/]</a></li>  
{/dede:arclist} 

这个标签段里的 titlelen='30' 就是限制文章标题 [field:title/] 标签的长度不超过30字节。

如果我们的文章标题超过30字节,那么读者第一眼看上去会发现是很不完整的文章标题。

对此织梦体统提供了一个专用标签 [field:fulltitle/] 它在使用时不受 titlelen='30' 限制,可以调用完整标题。

那么上面的标签我们可以这样写:

{dede:arclist titlelen='30' row='10' }  
<li ><a href="[field:arcurl/]" title="[field:fulltitle/]">[field:title/]</a></li>  
{/dede:arclist}  

这样调用后,读者把鼠标放到标题上就可以看到完整标题了。

October 30, 2017

修改Nginx与Apache上传文件大小限制

修改 Nginx 上传文件最大值限制

我们使用 ngnix 做 web server 的时候,nginx 对上传文件的大小有限制。

这个时候我们要修改 nginx 参数。

sudo vim /etc/nginx/nginx.conf 
在http段里面添加:
client_max_body_size 100m;   //举例设置上传最大值为100m

然后重启nginx

systemctl restart nginx

修改 Apache 上传文件最大值限制

打开 php.ini, 找到下面的项并修改之。下面以上传100M为例。 

sudo vim /etc/php.ini
file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开 
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 
upload_max_filesize = 100m ;望文生意,即允许上传文件大小的最大值。默认为2M 
post_max_size = 100M ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M 

一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。 
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数: 

max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒 
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒 
memory_limit = 128M ;每个PHP页面所吃掉的最大内存,默认8M 

 全部设置好之后,重启

systemctl restart httpd
February 9, 2017

nginx禁止访问隐藏文件

使用 SSL FOR FREE 快速申请 Let's Encrypt SSL 的证书, 我们需要在网站根目录下创建一个".well-known"文件夹,在其文件夹里再创建一个"acme-challenge"文件夹,然后将验证文件上传到目录下面,完成验证才可以签发证书。

将文件上传到目录之后,点击链接返回 nginx 403 报错,开始以为权限问题,设置了相应的权限之后,依旧 nginx 403 。最后发现是 nginx.conf 禁止访问隐藏文件,注释掉果然就能够完全验证了。

默认配置文件中禁止访问 .htaccess 文件语法如下: 

location ~ /\.htaccess {
    deny  all;
}

禁止访问所有目录(包括子目录)下的隐藏文件 

location ~ /\. {
    deny  all;
}