linux下安装yii——遇到到问题和解决

因为PHP的不少高阶教材都是以LINUX做为基础,我也只好硬着头皮从WINDOWS转向LINUX,说实在的,这是个很痛苦到过程,从一个傻瓜 式到桌面系统转到一个繁琐到命令式系统,就像从移动电话时代回到了电报时代。又是买书看,又是上网查资料,足足用了半个月的时间才把LAMP系统搭建起 来,一个一个地编译软件,一遍又一遍的翻书查资料,身边也没能够讨教到人,因此每走一步都会遇到各类困难,都要劳心费神的解决它。这也多是由于我是个比 较较真的人,老是忍不住的想把每个细节都弄明白,因此放弃了linux下安装软件最便捷到RPM或DPKG方式,采起最传统的编译安装方式,所以致使要 学习大量的Linux操做系统知识。 php


废话又说多来,回到正题。因为网上几乎找不到一个详细的LINUX下安装yii方法说明,我把我到安装过程记录下来,以方便有须要的人们。 html


我到yii安装环境:centos-6.三、php-5.4.八、 apache-2.2.2三、 mysql-5.0.96。 mysql


CentOS6.3 linux

我 把它叫作redhat的免费版,我原本初选的是UBUNTU的系统,在连续装来8.04和10.04(选用这两个老版本是因为个人电脑硬件配置过低了—— 05年买的本本),以后发现它们缺乏不少编译软件所须要环境插件,且这两个版本的distribution在我到电脑上跑得实在是不怎么顺心,因而准备换 替代品。首先想到的是Fedora,查了查资料,发现Fedora叫作面向我的系统的实验版的reahat,用的人也不少,更新换代很快,几个最近到版本 到硬件需求都高出了个人电脑配置水平,放弃。正好我到手边的LINUX教材《鸟哥的linux私房菜》里推荐的是CentOS,又再查资料,了解到 CcetOS是现实中搭建免费LAMP的首选,且去掉了UBUNTU、Fedora花哨功能,硬件要求不高,适合作开发。因而我便尝试安装最新版的 CentOS6.3,没想到竟然成功了。在安装CENTOS的时候,我选择的是software development wordstation,没有 选择desktop版,这是由于,这个版相比desktop只默认安装与开发和编译相关到插件,没有安装其余杂七杂八的软件。正好适合用来搭建开发系统, 并且是用传统的编译安装方法搭建开发系统。 web


PHP-5.4.8 sql

这个是PHP官方最新版的,因为我主要是用php来开发,不是用来实际建站,故不去理会新版本的稳定性,以及zend加速器不支持5.3版本以上的PHP这两个问题。 apache


apache-2.2.23 bootstrap

这个也是最新版的。 windows


mysql-5.0.96 centos

这版本到mysql是老版本,新版的是mysql-5.5.28,没选择新版是由于新版和现有PHP和APACHE、phpmyadmin有冲突,调试很麻烦,另外用到新的cmake编译方法,我还要再安装cmake.故选择老的5.0.96版,且这个版比较稳定。


个人PHP、MYSQL、APACHE都统一安装在/usr/local/lamp目录下,这样便于软件管理和升级,但许也是这个缘由,致使后来到的yii安装遇到了一个困扰我好久的问题。


sorry!仍是讲来一大堆废话。下面正式介绍安装YII。


官方关于YII的linux下安装,归纳只有2句话1个提示:


2句话:

a、 下载YII文件压缩包。b、把解压缩后到YII文件包放到服务器能够访问到目录。若是你是用yum或apt安装到lamp环境,因该是放到/var /www(有的Linux是放在/var/www/html)文件夹里,若是你是像我同样,一个一个安装php mysql apache到/usr /local/lamp下的,就应该把yii文件夹放到/usr/local/lamp/apache/htdocs里。


1个提示:

 在 MacOS、Linux 或 Unix 系统中运行 yiic 时,你可能须要修改 yiic 文件的权限使它可以运行。你也
可 以用 php YiiRoot/framework/yiic.php 来代替 yiic。(这个就是关键点)为何会又这个提示,用过Linux的人都 应该知道,linux的一个特色就是权限,若是root没有把一个文件的使用读、写、执行权限某个用户的话,他就没法没法对这个文件读、写、执行。而 yiic是调用php脚本去执行webapp的建立的。若是yii和php文件各自所属到用户和组群在文件到权限上有冲突,那么你就没法使用yiic建立 webapp。因此你须要配置好yii和php这个两文件的权限。通常最简单的方法就是在这两个文件夹下运行这条命令:chmod -R 777 .注 意,不要漏了小原点。这条命令表示,全部用户都对当前目录及其子目录的全部文件有读、写、执行到权限,这条命令其实对系统安全性又很大的威胁。若是你是准 备把lamp和yii上线运行的,还要再好好研究一下linux,再详细设置,因为个人lamp只用于开发,无需估计太多系统安全性,因此对此不做细讲。


一 般来讲,若是你用的是yun、apt方式安装到lamp,并且运气好,这时候在yii也就安装完毕了,可使用了。使用yii建立应用的命令是“yii- dir/framework/yiic webapp",好比我把YII安装在/usr/local/lamp/apache/htdocs下,因此我使 用YII建立应用到命令就是/usr/local/lamp/apache/htdocs/yii/framework/yiicwebapp”,若是你已经处于yii的framework目录下能够用“./yiic”这个命令。其实上面的yiic运用方法能够简化的。不过这个我还没弄明白,故暂不讲。


不过,若是你是像我同样背,又是采起一个一个的编译安装lamp软件的方法搭建开发环境。估计会遇到如下这样到问题。


一、“/usr/bin/env: php: 没有那个文件或目录”

为 什么会有这个问题呢?前面讲过,yiic是使用php脚本建立webapp到,启动yiic到时候,它会自动到/usr/bin/路径下找php执行文 件,若是你是用yum或apt方法安装php的,/usr/bin/路径下是有这个文件的,你运行yiic也就一切顺利,但若是你是像我同样编译安装 php到/usr/local下到,yiic运行时用到到php执行文件就在/usr/local/lamp/php/bin/路径下,因为yiic不认 识/usr/local/lamp/php/bin/路径,因此有了上面的错误提示“/usr/bin/env: php: 没有那个文件或目录”。


怎么解决?

使 用windows成习惯的你也许立刻就会想到,把/usr/local/lamp/php/bin/路径下执行文件拷贝到/usr/bin/路径下,行 吗?不行!为何?由于Linux系统下的软件都是编译安装的,彼此间到关联性很高,编译好的文件,脱离到原来编译环境,是没法运行的,须要从新配置。这 个方法不行那该怎么办呢?对linux有必定了解的你也许会想到,在/usr/bin/和/usr/local/lamp/php/bin/创建一个链 接,或许既能够来,能够用如下命令:“ln -s /usr/local/lamp/php/lib/php /usr/bin/”,这条命令确实其做用 来,yiic如今能够调用php了。但老问题解决了新问题又来了。如今又出现来这个问题:


二、“/usr/bin/env: php:权限不够“

yiic 能够调用php了,但权限不够,也许你也像我同样发懵来,在安装的时候不是已经设置权限到么?如今怎么又没有权限了。因为我仍是linux菜鸟,实在是想 不出来解决方法。万般无奈之下,只能使出镇山之宝——google的二奶baidu(万恶到***竟然屏蔽了google),结果如何?就像包二奶同样, 空欢喜一场,国内彷佛不多人用linux使yii到,找不到任何资料。这时候,我忽然抓住了一根救命稻草——yii官网。终于在官网到论坛上找到一个老外 到帖子——终于遇到“同是天涯落难人”了。


得出解决的方法:

用vi打开yiic,把“#!/usr/bin/env php” 改成“!#/usr/local/php/bin/php(也就是你php路径)"好比按照个人系统上到php路径改成:“!#/usr/local/lamp/php/bin/php”.


#!/usr/bin/env php   //*************就是改动这里**************
<?php
/**
 * Yii command line script for Unix/Linux.
 *
 * This is the bootstrap script for running yiic on Unix/Linux.
 *
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @link [url="http://www.yiiframework.com/"]http://www.yiiframework.com/[/url]
 * @copyright Copyright &copy; 2008 Yii Software LLC
 * @license [url="http://www.yiiframework.com/license/"]http://www.yiiframework.com/license/[/url]
 * @version $Id: yiic 702 2009-02-18 19:29:48Z qiang.xue $
 */


require_once
(dirname(__FILE__).'/yiic.php');



至此,linux下的yii安装成功!

多谢各位看官了,两句话就解决的问题,硬是让我唠叨成这么一两千字。
相关文章
相关标签/搜索