laravel更改public目录名(去掉地址里的public)

话说今天有一个前同事问我初接触laravel框架,发现地址栏里有public名,怎么去除。

其实度娘或者谷歌一下就可以得到一个简单的解决办法(修改server.php文件),但实际上laravel(我的前同事就经常给打成lavarel)的结构是尽量避免其他系统文件可以被直接使用URL访问,那么正确的放置方式是,除了PUBLIC目录内的文件上传至环境主机WEB目录之外,其他都放置在与WEB根目录同级的位置。

我的这位前同事使用的是AMH框架,只需要将内容使用SSH上传或者给WEB之前的主标志域名一级目录给一个775甚至777权限,上传完毕再改回来即可

/home/wwwroot/环境名/domain/主标志域名/

具体LINUX目录权限操作命令可自行搜索。

至于有人问我没有VPS只有一个虚拟主机,个人建议还是放弃折腾框架吧,用个现成的CMS或者BLOG不好么?

 

一个PHP裁切字符的function

主要应用在THINKPHP的模板上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function msubpost($str, $start=0, $length=18, $charset="utf-8", $suffix=false) {
  if(strlen($str) > ($length*2)){
    $suffix = true;
  }else{
    $suffix = false;
  }
  if(function_exists('iconv_substr') || $charset=="utf-8") {
    $slice = iconv_substr($str,$start,$length,$charset);
    if(false === $slice) {
        $slice = '';
    }
  }elseif(function_exists("mb_substr")){
    $slice = mb_substr($str, $start, $length, $charset);
  }else{
    $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
    $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
    $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
    $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
    preg_match_all($re[$charset], $str, $match);
    $slice = join("",array_slice($match[0], $start, $length));
  }
  return $suffix ? $slice.'...' : $slice;
}

THINKPHP的HTTP_USER_AGENT模版判定

众所周知THINKPHP的模板里面不建议使用原生PHP代码,所以,判断用户USER AGENT怎么办?

其实很简单,直接套用……这样就实现了动态加载,而并非HTML或者JS来判断user agent

1
<if condition="strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 9.0')">判断之后的内容</if>

WordPress伪静态链接也许你不知道的参数

WordPress的伪静态(固定连接)看上去是固定的样子,但实际上是有很多自定义参数的。下面就为大家揭秘这些参数,具体的使用方法,和%post_id%一样,在自定义里面写入即可。

为了让大家看着方便,为大家提供多种语言的版本~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%year%
The year of the post, four digits, for example 2004
 %monthnum%
Month of the year, for example 05
 %day%
Day of the month, for example 28
 %hour%
Hour of the day, for example 15
 %minute%
Minute of the hour, for example 43
 %second%
Second of the minute, for example 33
 %post_id%
The unique ID # of the post, for example 423
 %postname%
A sanitized version of the title of the post (post slug field on Edit Post/Page panel). So “This Is A Great Post!” becomes this-is-a-great-post in the URI.
 %category%
A sanitized version of the category name (category slug field on New/Edit Category panel). Nested sub-categories appear as nested directories in the URI.
 %author%
A sanitized version of the author name.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 %year% 
投稿された年を4桁で取得します。例えば、2004です。
 %monthnum% 
投稿された月を取得します。例えば、05です。
 %day% 
投稿された日を取得します。例えば、28です。
 %hour% 
投稿された時(時間)を取得します。例えば、15です。
 %minute% 
投稿された分を取得します。例えば、<tt>43です。
 %second% 
投稿された秒を取得します。例えば、33です。
 %post_id% 
投稿の固有IDを取得します。例えば、423です。
 %postname% 
投稿の投稿名を取得します。
 %category% 
投稿のカテゴリーを取得します。サブカテゴリーは入れ子にされたディレクトリとして取得されます。
 %author% 
投稿の作成者を取得します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%year% 
文章发表的年份,四位数,如 2004
%monthnum% 
月份,如 05
%day% 
天,如 28
%hour% 
小时,如 15
%minute% 
分钟,如 43
%second% 
秒,如 33
%postname% 
文章标题的别名 (编辑文章/页面时的别名栏)。对于文章标题为 “This Is A Great Post!” 的%postname%是this-is-a-great-post(查看 仅仅使用 %postname%)。 出于性能原因,强烈不建议使用%postname%作为链接地址的开头。 ***-<a href="https://www.uazoh.com/Tag/wordpress-2" title="WordPress" class="cont_tags">WordPress</a> 2.0开始这条建议可以无视了。
%post_id% 
文章的唯一ID,如 423
%category% 
分类的别名 (新建/编辑分类时的别名栏)。 有层级关系的类型在链接地址里就像有层级的目录。 出于性能原因,强烈不建议使用%category%作为链接地址的开头。
%tag% 
标签的别名(新建/编辑标签时的别名栏)。 出于性能原因,强烈不建议使用%tag%作为链接地址的开头。
%author% 
作者的别名。

WDCP安装memcached出现No such file or directory错误解决

查看具体的流程就会发现,SH脚本中会通过cloud.github.com和memcached.googlecode.com下载压缩包,但这2个地址在咱们国内因为被墙所以下载不到,方法也很简单,手动下载这2个文件用FTP工具上传到服务器,再重新安装即可
本站提供下载,点击下面链接进入下载
http://pan.baidu.com/s/1lk8xC

然后手动上传到/TMP文件夹内,重新执行

1
sh memcached_ins.sh

WDCP升级PHP和MYSQL

WDCP作为中国人自己的VPS控制面板,整体上来说非常不错,但默认的PHP版本是5.2.17,MySQL是5.1.63,实在有点低,甚至低到了部分PHP框架和程序都无法运行(例如本站使用的wordpress),所以必须要升级才行。下面就分步骤简述升级流程

升级php 5.3

登录SSH,按顺序执行下面的命令

1
wget http://down.wdlinux.cn/in/php_up53.sh
1
sh php_up53.sh

等待屏幕上停止代码滚动,并提示php update is OK就表示升级成功了,可以使用PHP INFO看一下版本。
WDCP升级PHP和MYSQL