无root权限部署LAMP环境
——by karottc
一、写在前面
虽然说自己也折腾Linux了不少时间,各种软件的安装方式也多少知道,自己最常用的两种安装方式是,下载源码,编译、安装和通过apt-get安装,前一中往往是比较新的程序,后一种的稳定性相对较高,不同需求时用不同的方式。以上方式,在遇到权限不够时解决办法直接是用sudo提升为root权限,搞定一切,因为是自己的电脑,差不多就自己一个用户,所以那样做的时候几乎是未加思索的,觉得理所当然不会出什么问题,确实也是,自己的系统自然不会有任何问题。这里的一个隐藏问题就是,玩linux的人大多都是因为工作需要,既然是工作,那么集体的linux环境下,自己必然是没有root权限,有的只是对自己的文件有所有操作权限+好的时候对别人的东西有读的权限,所以在碰到权限问题时就盲目提升权限是件危险的事。现在终于理解到当时在学校上UNIX课程时,老师说你们自己的系统最好不要用root去操作,当时还在想我本来没有用root去操作系统,但自己理解错了,因为在有权限问题时我是还是用root直接解决。
最近来公司以后,第一件事就是在公司的开发机上部署LAMP环境,而自己毫无其他权限,整个mysql、apache、php的源码编译、安装过程真是让人头疼,所以避免以后再次纠结,这里做个记录,也希望有同样需求的同学可以相互学习交流。下面进入正题,在没有root权限的情况下部署LAMP环境。
二、源码列表
部署LMAP环境的第一步就是获取源码,这个自己可以其官网下载,这里我给出我这次用到的源码的版本列表,
注意,这里在安装mysq、apache、php时会提示缺少某些模块,所以安装时将这些一同装上,软件之间的依赖关系很关键,下面的安装顺序也很重要,这个顺序是经测试后比较好的一种安装顺序。
三、安装MySQL
在安装mysql时需要用的cmake工具,所以需要现在安装cmake。
1.安装cmake
进入到cmake的解压目录,然后输入命令:$ ./configure –prefix=/home/cy/lamp/cmake/ (--prefix是你需要的安装路径),这步是生成makefile文件,如图
然后输入$ make,当make成功后执行make install,如图
2.安装MySQL
在mysql目录下没有configure文件,所以我们需要用cmake来生成makefile文件,因为生成makefile的文件时需要的参数有点多,所以这里自己写一个shell脚本来封装configure的过程,如图
Mysql_install.sh的脚本中是我们生成makefile文件是需要的参数,内容为
接着是执行脚本生成makefile文件,如图,
执行脚本后会生成makefile文件,然后输入$make,当make成功时如图,
现在输入$make install。此时mysql已经安装完成。但是,mysql安装完成后还有后续工作需要处理,现在进入到mysql的安装目录下的script目录,输入
$./mysql_install_db --user=cy --basedir=/home/cy/lamp/mysql --datadir=/home/cy/lamp/mysql/data 这里的user是你当前的登陆用户,basedir是mysql的安装路径,datadir是mysql的数据存放路径。执行这个以后进入到mysql安装目录的support-files目录,输入如图,
表示已经成功的启动了mysql。现在可以进入到Mysql的bin目录测试一下,如图
下一步就是将mysql加入环境变量,因为mysql经常用到,每次都到安装目录去太麻烦,所以在环境变量中加入mysql,下.bashrc中或.bash_profile中,如图,
修改环境变量后需要重启终端,接着是给Mysql的root用户设定密码,他的默认初始密码为空,所以可以用下面方式设定密码,
上图中表示给mysql设定的密码为cy。现在可以用root用户重新进入mysql了。如图,
四、安装apache
同样的,在apache前需要安装辅助工具,如下。
1.安装apr、apr-util、pcre
这3个的安装过程差不多,也没有什么要特别注意的,所以这里一起说明,安装过程都是:./configure——>make——>make install。
安装apr,如图,
安装apr-util,这里要用到刚刚安装的apr,如图,
然后安装pcre,如图,
接下来就可以开始安装apache了。
2.安装apache
因为安装apache时configure需要的参数相对较多,我们同样自己封装一个configure的脚本,脚本内容为,如图,
然后执行脚本,如图,
在生成makefile文件后,输入$make,$make install。到此apache已经安装完成,为了方便我们可以设定自己的工作路径,方法是,进入到apache的安装目录的conf目录,打开httpd.conf文件,找到如图
将DocumentRoot修改为我们自己的路径,如图,
接着是以与mysql相同的方式加入环境变量,然后启动apahce,打开浏览器进行测试,如图
表示apache已经安装成功并可以访问了。
五、安装PHP
同样我们自己封装一个configure的脚本,如图,
然后是执行脚本,生成makefile文件,如图,
成功后,输入make,如图,
Make成功如图,
接着输入make test->make install。进行安装。接着以同样的方式把php加入到环境变量中(如果需要单独执行php脚本的话,加入环境变量要方便些,如果只是在网页中,就不需要加入环境变量了)。
六、整合LAMP环境
1.配置PHP和apache
进入到apache的安装目录的conf目录,打开文件httpd.conf,找到如图位置,
增加一行,如图,
找到如图位置,
修改为如图,
2.解决中文乱码问题
到此已经完成LAMP环境的部署,但是运行时PHP网页上的中文会是乱码,这个问题的解决办法如下,将php源码目录中的php.ini-development拷贝到php安装目录中的lib目录下并重命名为php.ini,然后打开这个文件,找到如图位置,
去掉default_charset前的注释即可。
3.效果截图
最后重启apache服务器,如图,
打开浏览器输入网址运行效果如图,
七、结束语
以上就是整个LMAP环境的部署过程,第一次接触的同学应该是相当不好受的,为了避免再次纠结,特在此做个记录,在具体做的过程中肯定还会碰到好些问题,不过有了上面这根主线,其他问题在遇到的时候就可以具体问题,具体分析,具体解决,是水到渠成的事。