bubifengyun 2015-06-21 22:56:36 10768次浏览 2条评论 6 3 0

引言

Yii1.1的搭建过程见这里。下面做少许改动,加入composer部分,使之用于Yii2

选择Linux桌面环境Deepin2014.3下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的。

一、vim和DBGp插件

Deepin2014.3简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了。可以节省不少步骤。

这里提供一个vim的配置文件,已经自带了DBGp这个vim的插件,在~文件夹下解压缩,得到.vim和.vimrc文件,就已经在~文件夹下了。
注意,复制之前做好你文件的备份,复制完毕后,命令 ll ~ 查看是否有.vim .vimrc这两个文件,还需要安装一下cscope和ctags,就可以了。你用vim随便打开一个文件,比如 vim test.php,如果没有提示其他错误说明这个配置文件暂时适合你了。

二、xampp

xampp专为php开发设计,需要的apache,mysql,php已经自带了。特别提醒,请下载PHP版本高于5.4支持Yii2.0的xampp。
这个网上很容易下到xampp for linux的版本,我下载的就是xampp-linux-x64-<>-install.run的文件,使用

sudo <文件地址>/xampp-linux-x64-<>-install.run

就可以了(如果没有执行权限,自己加 chmod a+x <文件地址>/xampp-linux-x64-<>-install.run)。下面基本是傻瓜式安装。

安装好后,如果没有启动,可以采用如下命令启动。

sudo /opt/lampp/lampp restart

或者提示你启动成功了,你可以打开浏览器,在地址栏输入 localhost 回车,应该会跳转到
http://localhost/xampp/,如跳转成功则说明你安装 xampp 成功了。

需要注意一下几点,你的网站的根目录在 /opt/lampp/htdocs
也就是说,你的xxx.php文件要想被浏览器解析,必须放到 /opt/lampp/htdocs 下。
或者说 http://localhost/ 就是 /opt/lampp/htdocs/ 文件。
例如你在 /opt/lampp/htdocs/ 下新建了一个文件夹www,其下有xxx.php文件,也就是 /opt/lampp/htdocs/www/xxx.php 是这个文件,
你如果想在浏览器里查看这个xxx.php,就可以在浏览器里输入 http://localhost/www/xxx.php 了。php具体教程网上或者其他书籍上很多。这里不再赘述。

三、xdebug

使用以下命令安装

sudo apt-get install php5-xdebug

安装好后应该会有类似如下的这个xdebug.so文件,/usr/lib/php5/<20121212, date folder>/xdebug.so
其实我们只需要找个 xdebug.so 文件,把xdebug.so复制到 /opt/lampp/lib 下。

sudo cp /usr/lib/php5/<20121212,date folder>/xdebug.so /opt/lampp/lib

删除安装的一系列PHP不需要的内容,

sudo apt-get purge php5-common

如果你需要php5,可以保留。关于xdebug的安装和使用说明自行百度。这里知道它是调试Php代码的就足够了。

四、配置php.ini文件

下面参照这里,对应 xampp,可以使用如下几个步骤来配置。

1 root权限打开编辑xampp的php.ini文件,/opt/lampp/etc/php.ini

sudo vi /opt/lampp/etc/php.ini

当然你也可以使用其他编辑器打开。

2 在文中搜索zend_extension,应该可以看到有一条注释掉的代码,如下

;zend_extension=opcache.so

或者其他的比如

; Module Settings ;

的东西,我是在

;zend_extension=opcache.so
<这两行代码之间,插入代码>
; Module Settings ;

插入的代码如下:

zend_extension=/opt/lampp/lib/xdebug.so
; should be your file name

[debug]
; Remote settings
xdebug.remote_autostart=on
;i dislike input ?XDEBUG_SESSION_START=1 in web
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
;this 9000 is from debugger.vim

; General
xdebug.auto_trace=off
xdebug.collect_includes=on
xdebug.collect_params=off
xdebug.collect_return=off
xdebug.default_enable=on
xdebug.extended_info=1
xdebug.manual_url=http://www.php.net
xdebug.show_local_vars=0
xdebug.show_mem_delta=0
xdebug.max_nesting_level=100
;xdebug.idekey=

; Trace options
xdebug.trace_format=0
xdebug.trace_output_dir=/tmp
xdebug.trace_options=0
xdebug.trace_output_name=crc32

; Profiling
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=crc32

3 保存退出。

4 重启apache,我是采用如下命令:

sudo /opt/lampp/lampp restart

五、一个简单的调试例子

下面默认你已经打开apache了。

sudo /opt/lampp/lampp restart

参考文献:https://github.com/brookhong/DBGPavim

1 在/opt/lampp/htdocs/文件夹下,新建一个文件夹www,

sudo mkdir /opt/lampp/htdocs/www

把他改为自己的文件夹。

sudo chown <my-user-name> /opt/lampp/htdocs/www

2 新建一个文件test.php

vim /opt/lampp/htdocs/www/test.php

输入如下代码

<?php
$text='helloworld';
echo $text;
?>

3 在echo那行,vim命令模式下:w保存,:Bp设置断点,F5运行。

4 打开浏览器输入 http://localhost/www/test.php,回车。

5 切换回到vim的界面。可能需要按F5,进入调试界面,把光标移到$text(两个中的任意一个),按F12,应该可以看到$text的内容了。

六、安装composer

1 创建PHP的系统链接。这里假设你电脑没有直接安装PHP,只有 /opt/lampp/bin 里面有php程序。

sudo ln -s /opt/lampp/bin/php /usr/local/bin/php

2 安装composer
安装的方法有很多,下面介绍两种。

  • 直接在线安装的。
cd /opt/lampp/bin
sudo curl -sS https://getcomposer.org/installer | php

该安装可能会爆出问题,比如

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

等等,可以参考这里的解决方案。

cd /opt/lampp
sudo php <path-to-installer>/installer

就可以了。(这个可否?值得商榷,我是使用该方法安装成功的composer)

3 创建composer系统链接

sudo ln -s /opt/lampp/bin/composer.phar /usr/local/bin/composer

composer命令就安装好了。

七、Yii2框架的使用和调试

说实在的composer的安装太头疼了。网速很慢。强烈建议采用直接下载安装包,然后在网站根目录下解压缩,最后再配置composer用来更新部分插件。为了以后方便,下面按部就班的做记录。

  • 切换到网站根目录(xampp的为/opt/lampp/htdocs/),本人一直习惯在下面再建一个文件夹叫www,详细说明见上文。
$ cd /opt/lampp/htdocs/www/
$ composer global require "fxp/composer-asset-plugin:1.0.0"
  • 接下来下载basic,其实我更愿意直接下载basic的压缩包,然后解压缩在这里。为了不必要的装,下面用composer一把。
$ composer create-project yiisoft/yii2-app-basic basic 2.0.4

如果不出错,等段时间应该会有这样的字样跳出。

    Could not fetch https://api.github.com/repos/RobinHerbots/jquery.inputmask/contents/bower.json?ref=4551607fef63fd4bcd675479a8c347b668b915eb, please create a GitHub OAuth token to go over the API rate limit
    Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+litianci-pc+2015-06-21+1655
    to retrieve a token. It will be stored in "/home/litianci/.composer/auth.json" for future use by Composer.
    Token (hidden):

看英文的意思是:
给你了一个网址(Head to 后面的是网址),让你去这个网址用自己的github账号登录,得到一个令牌数,再回来吧这个令牌数贴在下面。
还特别提示你这个令牌数贴进去的时候是看不到的。按着他们说的做,就可以继续进行下去了。

  • 简单的调试一下。

网上,yii的论坛实在资料太丰富了,随便做网站。使用vim+xampp+xdebug+dbgp类调试php,yii 框架,现在就容易多了。

下面做个说明,
比如想调试./protected/controllers/Helloworld.php文件下的actionHelloworld()函数里面的部分语句,可以光标停留在这一行,点击F9或者vim命令行:Bp在这里设置断点,然后点击F5运行。
跳转到浏览器,打开某个网页会调用actionHelloworld函数的,浏览器应该会卡在这里。
回到vim的代码界面,点击F2等逐步调试就可以了。

八、问题总结

  • 1、输入
sudo curl -sS https://getcomposer.org/installer | php

错误

    curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 104
    PHP Parse error:  syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in - on line 883

    Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in - on line 883

我是这样解决的

cd /opt/lampp
sudo php <path-to-installer>/installer

换一种安装方式,跳过curl这个操作。

  • 2、弹出如下验证错误信息
    Changed current directory to /home/litianci/.composer
    ./composer.json has been updated
    Loading composer repositories with package information
    The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    Failed to enable crypto
    failed to open stream: operation failedhttps://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of dateUpdating dependencies (including require-dev)
    Nothing to install or update
    Generating autoload files

我是这样解决的
我是特地列出了一个文章来叙述的。最终解决了,可能跟版本有很大关系。

最后给上两张图

  • 编辑界面

深度截图20150622185233.png

  • 调试界面

深度截图20150622185458.png

文中可能有说的不明白的见谅。可以bubifengyun@sina.com联系。如有变动,以原文为准。

原文链接:http://my.oschina.net/bubifengyun/blog/469235

觉得很赞
  • 评论于 2015-06-22 11:26 举报

    作者写的真详细,点赞!对于在linux下开发yii2的同学很有帮助!

    觉得很赞
  • 评论于 2016-05-19 22:16 举报

    只用xampp不行吗?

    3 条回复
    评论于 2016-05-20 11:21 回复

    可以,为了方便调试,建议安装firebug,配置好xdebug ,最好参考原网页。部分内容更新了

    评论于 2016-05-20 15:22 回复

    可以,为了方便调试,建议安装firebug,配置好xdebug ,最好参考原网页。部分内容更新了

    评论于 2016-05-20 19:49 回复

    没想到这么快就收到回复了,突然觉得用yii的高手们也是很热情的。
    其实我基础很差,只用xampp配置过环境,以前学习过wordpress。其实我对yii一点都不懂。
    看了几天文档,首先了解到的就是配置环境和安装了。
    目前还是完完全全的门外汉,遇到两个完全想不通的问题,估计是因为没有系统学过php的原因。
    1、安装的时候提到composer,直接下载的安装文件点击安装,一直安装不上,坚持了一天奇迹出现了,居然装好了。搞不明白composer到底是个什么东西,是环境的一部分吗?就是用来处理框架各个部分之间的关系?还有就是安装的时候是要从远程下载或者连接什么东西吗?如果是,那么这个下载或连接的东西是不是一旦停止服务,我的yii应用也就不能运行了,还是说只要我不更新composer我的yii还是正常运作。
    2、yii最后东拼西凑的装好了可以访问到网上教程说的页面了,然后几经折腾数据库也误打误撞的配置好了能登录了。但是完全没有看到后台和其他什么东西。这个框架的东西是完全需要自己添加的吗?如我的文章系统分类,用户分类,后台面板
    菜鸟取经,见笑了。希望大神们能帮我解解惑。

您需要登录后才可以评论。登录 | 立即注册