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

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


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


我到yii安装环境:centos-6.3、php-5.4.8、 apache-2.2.23、 mysql-5.0.96。


CentOS6.3

我 把它叫做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只默认安装与开发和编译相关到插件,没有安装其他杂七杂八的软件。正好适合用来搭建开发系统, 而且是用传统的编译安装方法搭建开发系统。


PHP-5.4.8

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


apache-2.2.23

这个也是最新版的。


mysql-5.0.96

这版本到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软件的方法搭建开发环境。估计会遇到以下这样到问题。


1、“/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了。但老问题解决了新问题又来了。现在又出现来这个问题:


2、“/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安装成功!


多谢各位看官了,两句话就解决的问题,硬是让我唠叨成这么一两千字。

转载于:https://my.oschina.net/u/873762/blog/91463

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值