独角兽企业重金招聘Python工程师标准>>>
引言
Yii1.1的搭建过程见这里。下面做少许改动,加入composer部分,使之用于Yii2。
选择Linux桌面环境Deepin.3下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的。
一、vim和DBGp插件
Deepin.3简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了。可以节省不少步骤。
这里提供一个vim的配置文件,已经自带了DBGp这个vim的插件,在~文件夹下解压缩,得到.vim和.vimrc文件,就已经在~文件夹下了。 注意,复制之前做好你文件的备份,复制完毕后,命令
ls -la ~
查看是否有.vim .vimrc这两个文件,还需要安装一下cscope和ctags,就可以了。你用vim随便打开一个文件,比如
vimtest.php
,如果没有提示其他错误说明这个配置文件暂时适合你了。
二、xampp
xampp专为php开发设计,需要的apache,mysql,php已经自带了。特别提醒,请下载PHP版本高于5.4支持Yii2.0的xampp。 这个网上很容易下到xampp for linux的版本,我下载的就是xampp-linux-x64-<>-install.run的文件 ,使用
sudo<path-to>/xampp-linux-x64-<>-install.run
就可以了(如果没有执行权限,自己加
chmoda+x<path-to>/xampp-linux-x64-<>-install.run
)。下面基本是傻瓜式安装。
安装好后,如果没有启动,可以采用如下命令启动。
sudo/opt/lampp/lampprestart
或者提示你启动成功了,你可以打开浏览器,在地址栏输入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
最新版的xampp自带了xdebug.so文件。你可以采用如下命令查找。
sudofind/opt/lampp-name*xdebug*
你可以看到类似/opt/lampp/lib/php/extensions/no-debug-non-zts-1226/xdebug.so的文件。
如果有这个文件,本段的下面就可以跳过去了。如果没有则使用如下方式方式来解决。
使用以下命令安装
sudoapt-getinstallphp5-xdebug
安装好后应该会有类似如下的这个xdebug.so文件,/usr/lib/php5/<1212, date folder>/xdebug.so
其实我们只需要找个xdebug.so
文件,把xdebug.so复制到/opt/lampp/lib
下。
sudocp/usr/lib/php5/<1212,datefolder>/xdebug.so/opt/lampp/lib
删除安装的一系列PHP不需要的内容,
sudoapt-getpurgephp5-common
如果你需要php5,可以保留。关于xdebug的安装和使用说明自行百度。这里知道它是调试Php代码的就足够了。
或者到这里下载。/komodo/remotedebugging/。里面有PHP的调试部分,根据自己的PHP版本选择合适的Xdebug.so。版本不合适,可能导致失效。
四、配置php.ini文件
下面参照这里,对应xampp
,可以使用如下几个步骤来配置。
1 root权限打开编辑xampp的php.ini文件,/opt/lampp/etc/php.ini
sudovi/opt/lampp/etc/php.ini
当然你也可以使用其他编辑器打开。
2 在文中搜索zend_extension,应该可以看到有一条注释掉的代码,如下
;zend_extension=opcache.so
或者其他的比如
;ModuleSettings;
的东西,我是在
;zend_extension=opcache.so<这两行代码之间,插入代码>;ModuleSettings;
插入的代码如下:
zend_extension=/opt/lampp/lib/php/extensions/no-debug-non-zts-1226/xdebug.so;shouldbeyourfilename[debug];Remotesettingsxdebug.remote_autostart=on;idislikeinput?XDEBUG_SESSION_START=1inwebxdebug.remote_enable=onxdebug.remote_handler=dbgpxdebug.remote_mode=reqxdebug.remote_host=localhostxdebug.remote_port=9000;this9000isfromdebugger.vim;Generalxdebug.auto_trace=offxdebug.collect_includes=onxdebug.collect_params=offxdebug.collect_return=offxdebug.default_enable=onxdebug.extended_info=1xdebug.manual_url=xdebug.show_local_vars=0xdebug.show_mem_delta=0xdebug.max_nesting_level=100;xdebug.idekey=;Traceoptionsxdebug.trace_format=0xdebug.trace_output_dir=/tmpxdebug.trace_options=0xdebug.trace_output_name=crc32;Profilingxdebug.profiler_append=0xdebug.profiler_enable=0xdebug.profiler_enable_trigger=0xdebug.profiler_output_dir=/tmpxdebug.profiler_output_name=crc32
3 保存退出。
4 重启apache,我是采用如下命令:
sudo/opt/lampp/lampprestart
五、一个简单的调试例子
下面默认你已经打开apache了。
sudo/opt/lampp/lampprestart
参考文献:/brookhong/DBGPavim
1 在/opt/lampp/htdocs/文件夹下,新建一个文件夹www,
sudomkdir/opt/lampp/htdocs/www
把他改为自己的文件夹。
sudochown<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
的内容了。
6 F2,F3为单步调试,有点小区别,自己感受吧。
六、安装composer
1 创建PHP的系统链接。这里假设你电脑没有直接安装PHP,只有/opt/lampp/bin
里面有php程序。
sudoln-s/opt/lampp/bin/php/usr/local/bin/php
2 安装composer 安装的方法有很多,下面介绍两种。
直接在线安装的。
cd/opt/lampp/binsudocurl-sS/installer|sudophp
该安装可能会爆出问题,比如
error:14090086:SSLroutines:SSL3_GET_SERVER_CERTIFICATE:certificateverifyfailed
等等,可以参考这里的解决方案。
第一步:需找验证钥匙的地址,使用 php函数openssl_get_cert_locations().
$php-r"print_r(openssl_get_cert_locations());"Array([default_cert_file_env]=>SSL_CERT_FILE[default_cert_dir]=>/opt/lampp/share/openssl/certs[default_cert_dir_env]=>SSL_CERT_DIR[default_private_dir]=>/opt/lampp/share/openssl/private[default_default_cert_area]=>/opt/lampp/share/openssl[ini_cafile]=>[ini_capath]=>)
可以看到xampp会到
/opt/lampp/share/openssl/cert.pem
找验证文件。
第二步:下载最新cacert.pem,从这个网址下。
$cd$wgethttp://curl.haxx.se/ca/cacert.pem
把文件下载到~目录下。
第三步:建立openssl到默认cert文件到连接。
$sudomv~/cacert.pem/opt/lampp/share/openssl/cert.pem
注意:这个
/opt/lampp/share/openssl/cert.pem
要跟上面第一步找到到地址一致。
第四步:重启xampp
$sudo/opt/lampp/xampprestart
下载了安装,在浏览器内输入/installer下载一个installer文件,然后
cd/opt/lamppsudophp<path-to-installer>/installer
就可以了。(这个可否?值得商榷,我是使用该方法安装成功的composer)
3 创建composer系统链接
sudoln-s/opt/lampp/bin/composer.phar/usr/local/bin/composer
composer命令就安装好了。
七、Yii2框架的使用和调试
说实在的composer的安装太头疼了。网速很慢。强烈建议采用直接下载安装包,然后在网站根目录下解压缩,最后再配置composer用来更新部分插件。为了以后方便,下面按部就班的做记录。
切换到网站根目录(xampp的为/opt/lampp/htdocs/),本人一直习惯在下面再建一个文件夹叫www,详细说明见上文。(最新到1.0.3了)
$cd/opt/lampp/htdocs/www/$composerglobalrequire"fxp/composer-asset-plugin:1.0.3"
接下来下载basic,其实我更愿意直接下载basic的压缩包,然后解压缩在这里。为了不必要的装,下面用composer一把。
$composercreate-projectyiisoft/yii2-app-basicbasic2.0.6
如果不出错,等段时间应该会有这样的字样跳出。
Couldnotfetch/repos/RobinHerbots/jquery.inputmask/contents/bower.json?ref=4551607fef63fd4bcd675479a8c347b668b915eb,pleasecreateaGitHubOAuthtokentogoovertheAPIratelimitHeadto/settings/tokens/new?scopes=repo&description=Composer+on+litianci-pc+-06-21+1655toretrieveatoken.Itwillbestoredin"/home/litianci/.composer/auth.json"forfutureusebyComposer.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、输入
sudocurl-sS/installer|php
错误
curl:(56)SSLread:error:00000000:lib(0):func(0):reason(0),errno104PHPParseerror:syntaxerror,unexpectedendoffile,expectingvariable(T_VARIABLE)orheredocend(T_END_HEREDOC)or${(T_DOLLAR_OPEN_CURLY_BRACES)or{$(T_CURLY_OPEN)in-online883Parseerror:syntaxerror,unexpectedendoffile,expectingvariable(T_VARIABLE)orheredocend(T_END_HEREDOC)or${(T_DOLLAR_OPEN_CURLY_BRACES)or{$(T_CURLY_OPEN)in-online883
我是这样解决的
cd/opt/lamppsudophp<path-to-installer>/installer
换一种安装方式,跳过curl这个操作。
2、弹出如下验证错误信息
Changedcurrentdirectoryto/home/litianci/.composer./composer.jsonhasbeenupdatedLoadingcomposerrepositorieswithpackageinformationThe"/packages.json"filecouldnotbedownloaded:SSLoperationfailedwithcode1.OpenSSLErrormessages:error:14090086:SSLroutines:SSL3_GET_SERVER_CERTIFICATE:certificateverifyfailedFailedtoenablecryptofailedtoopenstream:operationfailedcouldnotbefullyloaded,packageinformationwasloadedfromthelocalcacheandmaybeoutofdateUpdatingdependencies(includingrequire-dev)NothingtoinstallorupdateGeneratingautoloadfiles
我是这样解决的我是特地列出了一个文章来叙述的。最终解决了,可能跟版本有很大关系。
最后给上两张图
编辑界面
调试界面
文中可能有说的不明白的见谅。可以bubifengyun@联系。
原文链接:/bubifengyun/blog/469235