本来对linux就不熟悉啦,还要在上面搭建LAMP,足足一个星期才搭好,以此文章来记录这艰难的过程。
因为没弄好,于是各种百度谷歌,网上还挺多资料的,但我只能说是多,至于可行性的话,就另当别论了。首先,linux系统版本不同,apache、mysql、php版本也不同,再者,在安装过程中少一步或者错一步都会出现问题,所以直接复制别人的命令,估计十有八九会被各种error、warning搞昏头。
悲剧的我就是这样,刚开始直接照搬别人的方法,结果弄了两天,只搭好apache和mysql,后来还发现apache是系统的集成啊,压根不是我装上的,心都凉了。好吧,口水太多,言归正传。
首先,说说LAMP的安装顺序。网上大部分顺序是先装linux系统(废话),apache,mysql,最后装php。为什么这样了,个人理解是php最后安装时需要与apache与mysql连接,就是设置php能够在apache上运行,同时能连接mysql。我就是按照这样的顺序来安装的。
然后,还得说一下我的服务器是redhat5.6,安装时它会提示你选择何种应用,有软件开发、服务器等,第一次装时我选择了服务器,结果它帮我安装了apache和php,这个是我在安装apache和php时发现的,坑爹啊。后来我重装了redhat系统,没有选择应用,就是纯净系统一样。这个有个不好地方是,有些服务器需要的包要自己手动安装,这个是后话
1,安装apache,版本httpd-2.2.23.tar.bz2,这个在官网上有得下载,自己挑个合适的版本:http://httpd.apache.org/download.cgi
首先,看看redhat系统是否安装了apache,
#rpm -qa|grep httpd // rpm命令自己百度去行; httpd就是指apache,网上说是与历史有关;
如果没提示就没安装,有提示
httpd-manual-2.0.40-21
httpd-2.0.40-21
那就有安装,一个个卸载吧。
#rpm -e xxxxxxxxx.rpm // 卸载会检查的依赖性
#rpm -e –nodeps xxxxxxxx.rpm // 卸载不检查的依赖性
卸载有个问题,就是包的依赖性,你卸载这个,但另外一个包在用到,所以不得不把另外一个包也卸载,卸载会有风险,可能其他包要用但没找到这个包就会报错,怎么办了。网上说不启动系统的apache就行了,本人没试过,我选择了另一种方式就是重装redhat,然后没有选择用途,就是纯净的系统,没有安装apache。这个是我后来才发现。
重装系统后,没有安装apache,那就自己用源码安装吧。
#tar -xjf httpd-2.2.23.tar.bz2 //解压
#cd http-2.2.23 //进入目录
# ./configure –prefix=/usr/local/httpd –enable-modules=so –enable-rewrite //–prefix=/usr/local/httpd, 配置apache安装路劲, –enable-modules=so –enable-rewrite 一些基本配置
#make //编译,如果没有提示error的话,就接着下一步,如果有提示错误就见招拆招吧
#make install //安装
顺利安装后后,启动apache,
# /usr/local/httpd/bin/apachectl start // 这个启动方式自己安装的apache,系统安装的是service httpd start ,显然我这里使用第一中方法。
查看apache是否已经启动
#netstat -nltup|grep httpd
![@]AK)8KSO75NA2U)S7F(_TH](http://www.luckybird.me/wp-content/uploads/2014/03/@AK8KSO75NA2US7F_TH-300x25.jpg)
提示80端口被httpd使用过程中
停止apache
# /usr/local/httpd/bin/apachectl start
查看apache是否停止
#netstat -nltup|grep httpd // 停止了就不会显示80端口被httpd使用
在本机浏览器输入http://localhost,在apache启动情况下,会显示It works!

系统安装的apache,默认根目录在/var/www/html;自己安装的apache,默认根目录在/usr/local/httpd/htdocs, 有个index.html, 写着It works;需要修改根目录的,自己编辑httpd.conf
#vim /usr/local/httpd/conf/httpd.conf //编辑httpd.conf
在#ServerName www.example.com:80,下面增加
ServerName locahost:80
将 DocumentRoot “/usr/local/httpd/htdocs” 注释,即在前面加 # 号;
然后在下面增加
DocumentRoot “/var/www/html”
接着,修改<Directory “/usr/local/httpd/htdocs”>,变成
<Directory “/var/www/html”>
保存文件并退出,重启apache,然后在”/var/www/html”下建一个写着hello world的index.html,再次在浏览器输入http://localhost,就会显示hello world啦。
2,安装mysql,版本5.5.35,为什么是这个版本了, 因为其他版本我都没安装成功,呵呵。我使用rpm包安装方式,总共需要安装三个包,
MySQL-server-5.5.35-1.rhel5.x86_64.rpm
MySQL-client-5.5.35-1.rhel5.x86_64.rpm
MySQL-devel-5.5.35-1.rhel5.x86_64.rpm
当时官网只有redhat(我的是x86_64)系统的只有mysql5.6的http://dev.mysql.com/downloads/mysql/, 后来从其他网站下载了5.5.35,ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.5/
rpm包安装比较方便点,不过遇到包的依赖性问题就得有耐心啦,因为要安装这个包得先安装那个包,安装那个包,还得安装另外一个包,不断循环安装,知道能安装你想要的包为止,当时我都没做记录,试过有5层循环。基本的安装包都在光盘的Server文件里,没有的话就得上网找啦。
安装mysql-server包
#rpm -ivh MySQL-server-5.5.35-1.rhel5.x86_64.rpm
如果显示如下
Preparing… ########################################### [100%]
1:MySQL-server ###########################################[100%]
。。。。。。(省略显示)
/usr/bin/mysqladmin -u root password ‘new-password’
/usr/bin/mysqladmin -u root -h test1 password ‘new-password’
。。。。。。(省略显示)
那就代表mysql-server安装成功了,我投几次安装不同的版本时,除了第一二行外,没有下面修改密码的提示,结果执行修改密码时,就提示错误啦,
上网找了半天,换了好几个版本,重装了N遍都是一样的错误。但是可以正常启动mysql
#service mysql start // 采用rpm包安装,可使用service 服务名 start 命令来启动
Starting MySQL [确定]
#service mysql stop
Shutting down MySQL. [确定]
当时我就晕了,差点放弃了。第一天就这样结束了。
第二天,我删除了原来安装的mysql-server,包括安装的所有文件,记得有个my.cnf,在/usr/下面,也删了,然后重启电脑,接着安装。
结果终于有提示修改密码的,当时我还不知道安装的是哪个版本,因为我下载了好几个版本。暂时不修改密码,先把mysql-client也安装了
#rpm -ivh MySQL-server-5.5.35-1.rhel5.x86_64.rpm
这个只有以下提示就代表成功了。
Preparing… ########################################### [100%]
1:MySQL-server ###########################################[100%]
接着就启动并进入mysql,看看是不是真的安装成功
#service mysql start
Starting MySQL [确定]
#mysql
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.5.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
显然已经进入mysql了,因为默认是没有密码的,所以可以直接进入,退出先修改root用户给的密码。
mysql> exit
Bye
[root@localhost var]# /usr/bin/mysqladmin -u root password ‘new-password’
修改成功后再次进入mysql
[root@localhost var]# mysql -u root -p
Enter password:
这时候会提示需要输入root用户的密码,输入后即可再次进入mysql
mysql> show databases
-> ;
+——————–+ | Database | +——————–+ |
information_schema |
| mysql | |
performance_schema | |
test |
+——————–+ 5 rows in set (0.00 sec)
mysql>
show batabases 后面不要漏了 “;”,刚开始我就是漏了这个 “;”,害得我浪费好几个小时,直接输入 ” show batabases; ” 就行啦。
支持mysql安装成功,好像忘了mysql-devel了,这个我也忘了什么时候安装的啦, 印象中是在安装php的是时候,提示需要安装mysql-devel,就安装了,然后接着安装php,就没提示这个错误了。总结安装mysql-client的方法安装上去,有错误提示就百度解决。
3,安装php,版本php-5.3.28.tar.gz,官网下载地址:http://www.php.net/downloads.php
还需要支持GD库,就是png,jpeg,gif之类的,这个又搞了一天。先说说GD库吧
这个在redhat系统包中有部分,我按照网上说的(上一遍文章中有链接),使用rpm包安装,如果有提示包的依赖性,就从系统包中找,接着安装,没有的话就上网找包,继续安装,安装完所有需要的包为止。好吧,下面安装php
#tar zxvf php-5.3.28.tar.gz // 解压
#cd php-5.3.28
#./configure –prefix=/usr/local/php –with-apxs2=/usr/local/httpd/bin/apxs –with-mysql=/var/lib/mysql –with-gd –with-curl –with-zlib –with-libxml –with-libpng –with-jpeg –enable-soap –enable-sockets –enable-mbstring
这个有来头啦。–prefix=/usr/local/php 安装位置,–with-apxs2=/usr/local/httpd/bin/apxs 连接apache,–with-mysql=/var/lib/mysql 连接mysql,这三个根据自己安装路径来选择
–with-gd –with-zlib –with-libxml –with-libpng –with-jpeg 这些配置GD库,因为不知道路径就没写了。
在编译的过程中,还会提示各种错误,我都忘记有那些了,总之有error就百度,直到成功编译为止。编译成功还还提示with-libxml –with-libpng –with-jpeg 无法找到路径,网上说是没有指名路径,但因为是rpm安装的,路径太多,我都不知道安装在那里,就不管它了,直接安装。
#make
#make install
安装成功后,需要配置下apache的httpd.conf,才能在根目录下运行php
在对应位置添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
同时修改
DirectoryIndex index.html index.php
重启apache,在根目录下新建index.php
<?php
phpinfo();
?>
在本机浏览器输入http://localhost/index.php ,激动人心的时刻来了。
预知后事如何,请听下回分解。
Leave a Reply