本地PHP环境规划

很久没更新了,今天顺手改了些配置,贴上来以便以后查看。

首先是CodeIgniter,前段时间滚着滚着就把PHP升级到了5.6,然后今天无意中查看用CI写的程序出现Only variable references should be returned by reference,顺带解决了下:

文件名: core/Common.php,行号大约在257,修改前:

return $_config[0] =& $config; 

修改后:

$_config[0] =& $config;
return $_config[0]; 

后来想起来我的程序用到CI框架貌似是老版本,就顺手把新版的system目录覆盖过去结果报错Unable to load the requested file,之后才想起我改过views目录,修改文件:core/Loader.php,行号约130,修改前:

$this->_ci_view_paths = array(APPPATH.'views/'    => TRUE);

修改后:

$this->_ci_view_paths = array(FCPATH.'themes/'    => TRUE);

再后来,我用CI和其他框架写过几个程序,由于通用一个框架文件,为了方便,我把另外几个程序的框架目录做了软连接,这样便于升级管理,简单的示意图如下:

/srv/http/
|-projects
|—php
|-----lime
|-------app
|---------core
|-----limewiki
|-------app
|---------core -> /srv/http/projects/php/lime/app/core/
|-----ssc
|-------app
|---------core -> /srv/http/projects/php/lime/app/core/

最后是一个比较麻烦的问题了,简单介绍下先,以前为了快速配置nginx,所以写的程序都放在web子目录下,这样nginx配置起来非常方便,参考:https://www.bstaint.net/2013/04/codeigniternginx.html

但是如果程序渐渐多起来之后,发现web子目录就比较乱了,所以我准备规划下目录,也就是如上面的结构那样,虽然项目程序都不在子目录但是通过类似虚拟目录直接访问http://localhost/lime/即可访问该目录下的程序,经过尝试成功搞定:

    location /lime { 
        root /srv/http/projects/php/; 
        try_files $uri $uri/ /lime/index.php?$query_string; 
        
        location ~ \.php$ { 
            if ($fastcgi_script_name ~ /lime/(.+\.php.*)$) { 
                set $valid_fastcgi_script_name $1; 
            }   
            fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock; 
            fastcgi_index  index.php; 
            fastcgi_param SCRIPT_FILENAME $document_root/lime/$valid_fastcgi_script_name;
            include fastcgi_params; 
        }
    }

如果使用请把代码中的lime替换成自己的目录名,其中由于框架的路由问题,所以不能使用alias。

参考资料:
http://blog.sina.com.cn/s/blog_570d9344010160f3.html
https://ellislab.com/forums/viewthread/244510
http://hi.baidu.com/sn2007/item/9993d2515e72913595eb05f0

转载请注明: 本文《本地PHP环境规划》来源于bstaint的博客

没有评论: