由于十一之后就要去实习了,当然现在也不能闲着,所以就学习一下如何搭建lamp环境,当然我有鸟哥服务器搭建这本神书。
搞了两年的php了,现在才弄弄LAMP,挺丢人的,哈哈
运行环境 : VMware虚拟机 + Ubuntu11.10
①下载Apache的httpd软件,并对Apache进行相应的配置
首先在Apache官网地址查看当前的Apache版本,找到将要下载的版本,我选中的是httpd-2.2.27.tar.gz这个
打开命令窗口,输入 wget http://www.apache.org/dist/httpd/httpd-2.2.27.tar.gz
下载完成之后呢,就是对该压缩文件进行解压,通过命令tar zxvf httpd-2.2.27.tar.gz对该文件进行解压,然后就会看到有这个文件夹了。
然后进入到这个文件夹中,执行命令, cd httpd-2.2.27,进入之后,执行ls操作,会看到有好多好多文件和文件夹
但是,虽然执行完了解压,也看到了这些文件和文件夹,不过我们的安装步骤还未完成在这里解释一下在Linux下安装软件的步骤
也就是所大概有三种软件的安装方式,不过我们下载下来解压的之后的是Apache的源代码,所以属于最后一种安装方式,所以还差 编译 和 安装 两部操作。
编译
网上大多数人都是将这个编译到了usr/local/apache2中,所以在这里也是这样处理,执行下面这个命令。
./configure --prefix=/usr/local/apache2 -enable-module=so
-prefix的意思就是指明编译到哪个目录下
执行编译后的httpd-2.2.27文件会有一些差别
安装
直接输入 make 命令,则会进入安装阶段
然后再直接输入 make install 命令,会看到下面这些。
这时基本上就算安装成功了,接下来需要配置
配置
cd到usr/local/apache2/conf文件夹下
双击打开,将里面的#ServerName www.example.com:80 修改成 ServerName localhost:80
不过出了一个问题,就是我是直接通过窗口打开的,不具有root权限,所以下面这张图中的save是暗下来的,我保存不了
所以只能通过命令的方式来执行修改了,切换到terminal.首先cd到usr/local/apache2/conf,里面有一个叫做httpd.conf的文件,执行命令vi httpd.conf,实现对该文件的修改,至于如何使用Linux下的 vi编辑器,可能要网上查找一些资料才行。
执行修改,使用vi的命令模式,:wq 来保存并退出即可。
接下来也就全部搞定了,需要启动Apache,执行命令,该执行命令在apache2/bin文件夹下,所以是这样,也由于我的Apache之前已经是启动的了,所以这里显示already running
接下来也就全部搞定了,需要启动Apache,执行命令,该执行命令在apache2/bin文件夹下,所以是这样,也由于我的Apache之前已经是启动的了,所以这里显示already running
有关Apache的常用命令
打开浏览器,输入localhost,发现是有内容的,这是Apache自带的一段html代码。
参考网址:http://zhidao.baidu.com/link?url=qaJ-ahb2elUwgcjFrVZu_0WcbTWc4f9l8__tAxsKq61OQAYWTeIHncmu6DfxhYHGverysfdlRMF4kMi9qGjCzq
中途思考
到这里了之后我又在思考了,在鸟哥的服务器架设篇中,可以通过yum来将所有的软件全部下载下来,但是我这种方式可以成功吗?我觉得麻烦而且不实用,所以我想通过yum来安装这些软件,但是在terminal中输入yum,显示不识别,所以我需要先装好yum,安装yum我选择了这篇文章http://blog.sina.com.cn/s/blog_63d8dad80101cn2s.html,当我下载下来打算安装的时候又出错了。
发现下载下来的软件都是.rpm的,所以需要使用rpm命令来安装,但是当我执行的时候,却说rpm也没有安装,所以只好再安装rpm了。
安装rpm
对于rpm,其实大多数的Linux的版本中其实都已经内置了,但是我这个也不知道怎么回事,所以只能通过apt来安装,所以执行了下面的命令,但是出现了错误
Unable to locate package alien 所以百度了一下,发现了这篇文章,http://blog.csdn.net/xiaogugood/article/details/18400669
解决办法是执行一下,sudo apt-get update ,所以执行一下。
出现了一堆的警告和忽略信息,看来我是没有执行成功了,所以决定在试一次,不过还是行不通,最后找到了这篇文章http://blog.csdn.net/chaihuasong/article/details/17009641,是说需要找到软件源,因为需要下载这些软件,但是这些软件都在国外的服务器上,所以可以找国内代理的服务器来下载这些文件,一般由网易和搜狐提供。
实际上,可以通过这篇博客来解决Unable to locate package这个问题,然后我就执行sudo apt-get update这个命令。
会发现,真的在下载一些东西了,然后通过apt-get来安装yum吧,不过搞了好久还是不行,终于发现了一些Linux的内容,就是Linux软件源。之所以我现在还是安装不了软件的原因在于我的这个软件源的配置还是不行,所以需要从新配置。
这里要说一下就是yum并不是在Ubuntu下使用的安装命令,而是在Linux的另一个版本使用的,而在Ubuntu下使用apt来安装软件,所以只能放弃使用yum了。
Linux软件源
因为在Linux下安装的时候,是将服务器上的软件列表先加载到本地,然后在执行安装,例如在Ubuntu下,通过 apt-get install 软件名 来安装软件,不过这个本地列表从何而来呢,就是从Linux软件源下载下来的,但是Linux的服务器都是在欧洲的,国内下载较慢,不过国内也有一些代理软件源可用,例如网易,搜狐,阿里甚至还有一些大学,比如哈工大,我现在就使用的哈工大的,可以在这个网址http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8查看国内的一些软件源地址。
好了,我们还是来修改那个sources.list,将上面这个哈工大的更新服务器内容复制到sources.list下吧。使用sudo gedit /etc/apt/sources.list 打开该文件,将上面的内容复制到其中。
保存,然后回到terminal,然后执行sudo apt-get update。
这回的反馈信息比任何一次的都要好一些,真的是正在下东西了。
然后在执行一些 sudo apt-get upgrade 持续的更新一下,发现又去下东西了。
我在哈尔滨的话,可能还要等个二十多分钟呢,不过咱也不知道哈工大的服务器放在那里了,哈哈,结束之后是这个样子的。
然后又询问了是否替换之前的lib版本,我选择的“是”,然后又是一顿执行替换和安装新版本,我觉得我这一步就失误了,应该选否的,已经过去了二十多分钟还在Unpacking 又什么replacement的,我都不知道在做什么,不会是在把我的Ubuntu脱胎换骨吧。
那么究竟update和upgrade有什么区别呢?
$sudo apt-get update # 更新
$sudo apt-get upgrade #升级,需要用update更新完才能upgrade
我决定开始安装了,执行下面的命令
结果给了我这个结果,上面部分时推荐给我的软件包,下面显示出找不到这些软件
那我就决定分开安装,首先安装apache2,因为之前已经安装了一份了,所以我将之前安装的那一份文件夹/usr/local/apache2已经删除了,又在/usr/local下新建了一个apache2文件夹,然后在其中执行命令 sudo apt-get install apache2 ,会发现在安装和配置
安装过程我也不懂为什么这么久,反正最后是安装完了,我使用find命令(find / -name httpd.conf )查找了一下httpd.conf在哪里,发现在
所以还需要对httpd.conf进行配置,将ServerName修改成 localhost:80
再修改DocumentRoot,修改成功/var/www/ ,也就是/var/www/会存放着网页代码
在修改Error_log ,一些错误信息在这里了。
在浏览器中输入localhost
发现这就代表已经启动成功了,虽然可以看到Apache默认的网页文件,不过通过apachectl命令开启或者重启Apache时会出现下面这些错误,让我们一起来解决。
ERROR
虽然可以Apache可以启动成功,不过在启动或者关闭或者重启的时候总是发生如下的错误,百度了一下
首先解决apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
因为我们已经在httpd.conf中配置了这个ServerName,但是控制Apache的主配置文件还没有配置会遵循这个主配置文件,所以在/etc/apache2中的apache2.conf中在末尾添加 下面的两行字母即可。
则第一个错误不见了,现在解决(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
主要错误的原因是80端口已经被占用了,所以这个时候需要对80端口进行关闭即可,先查看谁在占用80端口
为什么被占用,我猜是我之前安装的Apache占用的事,有可能我没有完全的卸掉它,
发现是2178/httpd, 然后执行kill命令即可,在terminal中输入 kill 2178 即可了,然后从新启动Apache就万事OK了。
启动Apache就没有问题了。
所以Apache又再一次的搭建完毕了。
那么接下来安装PHP吧,在terminal下安装PHP,首先介绍一下需要安装哪些文件吧
libapache2-mod-php5 : 主要处理PHP5的依赖关系,根据名字可以看出应该是与Apache依赖的
php5 : 这个就不需要多说了
php5-gd : 这个是可选的,如果需要PHP的图形GD支持就安装,不过最好还是安装上吧
php5-mysql : 如果需要使用的数据库是mysql的,就需要安装这个
好了,废话不说,首先安装libapache2-mod-php5
在terminal下输入命令 apt-get install libapache2-mod-php5
输入Y 然后回车,就开始下载了。
接着安装PHP5
再安装php5-mysql,我这里先不安装php5-gd,以后用到的时候再说吧
到Apache的www/html/下,新建一个index.php文件,输入以下内容,然后到浏览器里执行页面
当啷,出现了这个,php程序员都非常喜欢的界面
那么接下来安装MySQL吧,还是老样子,通过apt-get install 来安装,在这里需要安装mysql、mysql-server和mysql-client
到terminal中输入 apt-get install mysql mysql-server mysql-client
ERROR
但是又遇到了问题,当我输入上面这条命令时,显示我安装不上,又出现了找不到mysql package的问题,然后我决定分开装也不行,不论是装mysql 还是mysql-server都是安装不上
安装mysql时的错误是 unable to locate package mysql
解决方案1,试过了,还是报错
不过这种方法试过不可以解决问题。
后续也查了很多资料还是不可以解决。
安装mysql-server时的错误是
这个问题也没有解决,唉!
实在没有找到解决办法,只能依靠使用离线二进制文件的方法来安装mysql了,到mysql官网,下载最下面那个版本的,有点大,两百多兆,下载会需要你有Mysql老东家Oracle的账号,然后就是下载了,在Linux下载软件会非常慢,要等两个小时左右呢,只希望能安装成功,就算等也值了。
好了,已经下载下来了mysql了,通过火狐下载到了这里,需要将它移动到/usr/src/mysql(在/usr/src新建mysql文件夹)
下面就需要进行安装了。
首先新建一个group 和一个用户 user,在这里我强烈建议如果是第一次安装的话,将group和user名字都设置为mysql,不要像我这种随意设置的,否则后期会产生大量错误
执行解压,将/usr/src/下的mysql-5.6.21-linux-glibc2.5-i686.tar.gz解压到/usr/local/下
输入命令 tar -zxvf mysql-5.6.21-linux-glibc2.5-i686.tar.gz -C /usr/local/
(这里比较重要)网上的老兄在这里执行了下面这个命令mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak,也就是将my.cnf替换掉my.cnf.bak也就是一种备份文件,cd到/etc/mysql/目录下,的确存在这个文件,即便我是第一次安装,这里也有my.cnf了,但没有my.cnf.bak,如果不是第一次安装,执行该命令就是必须的了,有可能之前配置影响新安装的效果(不过这是我自己的理解,经过我完整的安装之后,觉得并不是我的这样的猜想,具体为什么可能还需要日后才可以知道)
然后再cd到/usr/local 将这个比较长的mysql-5.6.21------ 文件夹名修改成mysql,使用 命令
mv mysql-5.6.21-linux-glibc2.5-i686 /usr/local/mysql ,就可以看到文件名被修改成了mysql
然后为我们刚刚创建的组 group 和 用户 user赋予权限,刚刚创建的组是 mysqlGroup 用户是 mUser ,首先cd到mysql目录下
然后执行命令, chown -R mUser . chgrp -R mysqlGroup . 别忘记后面都有个 ".",代表当前目录 "-R"的意思是递归到子目录
下面就开始执行真正的安装
terminal下,输入以下命令 scripts/mysql_install_db --user=mysql 这一步正真的目地就是生成一些mysql数据库运行的系统数据库
ERROR
原因:出现了这里的错误,说是当加载分享库libaio.so.l时,不能找到这样的文件,所以我们需要下载以下这个东东。
解决办法:通过apt-get来安装,执行apt-get install libaio-dev 即可,等待下载完成吧
libaiol安装完成,继续执行刚刚的mysql安装命令
不是吧,又报错!
ERROR
只能百度了,找到如下论坛http://bbs.chinaunix.net/thread-4139574-1-1.html,意思是将已存在etc
原来之前在etc/mysql下的my.cnf文件并不是一个好东西,根据一些错误信息来看,应该将它删除,并且还需要将/usr/local/mysql/share/english下的errmsg.sys文件复制到/usr/share/mysql文件夹下
好了,下面接着执行安装,如果看到下面这些东西基本上算是安装成功了吧(我猜)
执行完上述的安装过程之后,就要为root账号添加权限,注意此时一定是cd到/usr/local/mysql/下
试着启动一些mysql, 可以看到在输入如下命令之后真的是去启动mysql了
同样关闭和重启,只要将启动命令改为stop 和 restart即可
刚刚安装完的mysql还需要进行一下设置
所以首先我尝试进入mysql的控制台界面,所以输入如下的两条命令都是报错,意思是无法通过/var/run/mysqld/mysqld.sock连接到mysql服务,到百度上查找了相关的资料,原因是linux在启动mysql时默认是到/tmp/mysqld.sock去查找mysqld.sock,但是实际上的mysqld.sock是在/var/lib/mysql/mysql.sock,导致了如下的ERROR。
不过在这里执行./bin/mysql命令就可以进入mysql控制台界面了,这个还真的是有点太帅气了,不过还是宣布安装失败了。
最终方案:
百度Google了好久,其实真正的问题是自己没有安装好mysql-server,真的是醉了,始终就是觉得自己的ubuntu下的就是很蹩脚,然后用了一个非常次的软件源,哈工大的用了,网易搜狐的用过了,甚至ubuntu官方的源也用过了都是不可以,更醉了,最终下了一个新版的ubuntu12.10装上了,然后用了新的软件源(开源中国的),真的是跪了,太感谢了,于是换好开源中国的软件源,之后从新apt-get update完事之后再安装
apt-get install mysql-client-core-5.5
apt-get install mysql-server
就一切OK了,现在已经装好mysql了。
然后按照 以下命令
apt-get install libapache2-mod-php5 php5 php5-mysql php5-gd
apt-get install apache2
的方法,安装好Apache 和 php 即可了。
在var/www/html 中添加index.php,并添加以下代码
Apache在安装的时候会启动,为了能看到效果,建议重启一下Apache,然后到浏览器中输入localhost/index.php
至此LAMP环境就搭建完毕,路程有点曲折,不过这感觉挺爽的!!
转载请注明出处,谢谢合作: http://blog.csdn.net/u014646984/article/details/39854877