首先声明笔者是用的VM虚拟机的centos7系统搭建的lamp环境,它和ubuntu搭建lamp环境有些不同,在下面我会大概介绍一些部分的区别。
(一)搭建lamp环境
(1)下载并测试apache
1.下载apache
yum install httpd(注意:在centos中下载apache的不是yum install apache,而是httpd)
2. 检测是否安装成功(出现版本号之类的就是安装成功了 ):
httpd -v
3.启动apache服务:
/bin/systemctl start httpd.service 或者 service httpd start(centos7版本以下才支持该命令)
重启apache服务:
/bin/systemctl restart httpd.service 或者 service httpd restart(centos7版本以下才支持该命令)
终止apache服务:
/bin/systemctl stop httpd.service 或者 service httpd stop (centos7版本以下才支持该命令)
4.检测是否能正常访问:
在浏览器中输入虚拟主机的ip,出现什么'Testing 123'或者‘It works’之类的,就代表apache能正常访问了。
如果不能正常访问,那么有可能是apache配置文件没有设置好以及防火墙没有开发80端口,解决办法在后面会具体说明。
(注意:ubuntu中下载apache的命令为 sudo apt-get install apache2)
(2)下载php并整合php和apache
1.下载php:
yum install php
2.检测php是否安装成功:
php -v
3.查看apache是否加载了php模块:
cat /etc/httpd/conf.modules.d/10-php.conf(etc目录存放的是系统默认配置文件,httpd里面就是apache的各种配置文件,conf.modules.d存放的是apache会加载的模块)
如果结果有:
LoadModule php5_module modules/libphp5.so这一行的话,则证明apache和php已经整合在一起(前面如果有'#',请删掉,那是注释该行的意思)
(注意:ubuntu中安装apache的命令为 sudo apt-get install php5,查看是否加载php模块的命令为:cat /etc/apache2/mods-enables/php5.load)
(3)下载mysql
centos7中默认不支持Mysql,而是mariadb,具体原因百度一下就可以了解。但是我们还是可以在centos7上安装Mysql,只不过以来直接用 yum install mysql命令是找不到的。
这时候就需要到别的地方下一个来装。输入如下命令即可:
1.下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.安装该包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
3.安装mysql
yum install mysql-server
4.启动mysql服务
/bin/systemctl start mysqld.service
5.检测mysql和php是否整合
cat /etc/php.d/mysql.ini
如果提示(No such directory)没有该目录,证明php默认没有下载mysql的扩展,输入如下命令进行下载mysql扩展:
yum install php-mysql
这个时候再输入上面的命令,如果看到extension=mysql.so这一行,证明php和mysql整合成功
6.登录mysql
mysql -u root -p
7.修改mysql密码(初始时没有密码的)
set password for root@localhost = password('123456');
8.退出mysql
exit;
(注意:ubuntu中安装Mysql的命令:sudo apt-get install mysql-server,查看是否整合的命令:cat /etc/php5/conf.d/mysql.ini,下载mysql扩展:sudo apt-get install php5-mysql)
(二)
以上完成之后,lamp环境就搭建的差不多,接下来是一些注意事项和一些配置文件的说明。
(1)上面提到过apache让外网访问的问题,如果外网不能访问虚拟机,那输入主机ip当然看不到apache启动了的结果。以下给出解决方法:
1.先查看虚拟机的ip地址:
ip addr
2.先查看apache配置文件里面是否允许了让外网访问:
在/etc/httpd/conf/httpd.conf文件下,打开httpd.conf,如果看到里面有一行是Allow from 127.0.0.1,将其设置为Allow from all,意思是原来只允许主机访问,现在可以允许其他ip地址访问apache了。
3.防火墙没有开发80端口:
vi /etc/sysconfig/iptables修改防火墙文件
添加上-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 这一行
退出保存
重启防火墙:/bin/systemctl restart iptabels.service
之后再重启apache服务
问题应该就得以解决了
(2)在搭建lamp环境的过程中,有时候服务器可能会提示没有该命令之类的,那有可能是没有安装,直接用yum命令安装即可。碰到一下本该可以下载,但是yum源却找不到的,可以尝试更新一下yum源,用yum update命令即可。
(3)安装完的php只有比较基础的功能,一些重要的扩展库比如gd库扩展并没有安装,所以需要自己下载,yum install gd。
(3)下载Mysql这个地方需要严格按照下载的步骤来,不然很容易造成mysql服务启动不了,yum install mysql,只安装mysql,服务是启动不了的,mysql-server必须安装
,不然结果就是找不到mysql.sock,如果真的服务器提示mysql.sock的话,可以使用find / -name mysql.sock尝试找一下,找到了的话,有两种方法:
1.编辑/etc/my.cnf
[mysql]
[client]
socket = /tmp/mysql.sock(在这里写上你的mysql.sock的位置,然后保存退出,启动mysql服务试下)
2.创建软链接
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock(/tmp那个填你的实际mysql.sock位置,相当于是在var文件夹里面创建一个快捷方式)
(4)测试php、apache、mysql整合成功的代码:
<?php
$link=mysql_connect('localhsot','root','123456');
if($link)
{
echo 'yes';
}
else
{
echo 'no';
}
phpinfo();
?>
运行结果如果是yes并出现了php版本的详细信息,就代表lamp环境搭建完成了。
(5)说一下linux下的常用目录存的文件的含义:
/etc目录:存放系统默认配置文件,所以httpd.conf和php.ini以及my.cnf配置文件都在这里面
/var目录:系统相关文档目录,apache的默认运行目录www就在这里面