您的位置:首页 > 运维架构 > Linux

关于Centos7下搭建LNMP环境的问题小结

2016-07-17 11:14 357 查看

实习的第一周,免不了要给未来的开发环境做准备的。在此记录下我自己搭建过程踩到的一些小坑,以便以后鞭策自己,如果你也碰到类似的问题,希望能帮到你。

由于以前都是使用 Ubuntu 的系统,也习惯了使用 apt-get 去装软件。所以以前在 Linux 上装的环境都是很随意的,能跑就行。其实这样不太好,因为使用apt-get装的往往不是你希望的版本,因此很多时候可能需要手动编译源码安装对应版本的软件。我以前是使用 Ubuntu+Apache+ Mysql + PHP(LAMP) 的环境,这次是用Centos+Nginx+Mysql+PHP(LNMP), PHP 要求编译安装 5.6 以上版本。虽然说编译安装 Linux 软件我也试过,当时上操作系统课程也手动编译过 Linux 内核,做过 LFS 的东西,基本编译的过程和指令都是有些了解。但是还是遇到不少问题。

1. 虚拟机安装Centos7最小版本(Centos7 Minimal)

Centos7-Minimal传送门

第一个坑 :安装后出现 ifconfig 是不存在的指令,而且虚拟机连不上网。

分析:是因为没有识别到网卡,cd/etc/sysconfig/network-script/目录下,查看发现只有ifcfg-lo,没有ifcfg-eno16777736。

解决方法:

1. 重新安装虚拟机,在安装界面那里选择 "网络和主机名" ,把网卡开启。问题最终解决。


2. 安装php5.6.0

因为之前是用 apt-get 安装,所以不知道 PHP 需要哪一些依赖库,因此执行安装也是碰到不少问题,具体安装PHP5.6.0请参考这个博客进行安装,请点击我

对于 Nginxphp 之间不得不聊下 fastcgi, fastcgi是一个监听IP和端口的进程,fastcgi是一个可伸展,高速地在 http-server 和动态脚本语言之间通信的接口,多数流行的 http-server 都支持它,比如:Apache, nginx 等,也被很多动态脚本支持,比如 PHP。此外,php-fpm是一个fastcgi的进程管理器,能有效控制内存跟进程,并且平滑重载PHP配置。重要一点是,PHP**5.3后,**php-fpm 被内置到 PHP 里面的内核中,无需配置,默认安装。

第二个坑:Nginx开启后,PHP文件无法访问, PHP文件点击后出现下载情况。

分析:可能是 http-serverphp 通信出问题

解决方法:

1. 修改 Nginx 的配置文件 nginx.conf 让其支持 php 格式文件。
2. 可能没开启 php-fpm 服务。


3.关于安装Vmware-tools

在虚拟机菜单栏那里选择 “虚拟机=>安装VMware-Tools”;然后会得到一个VMware-Tools的安装包。

第三个坑:出现VMware-Tools安装失败情况。

分析:少了依赖库,或者人品问题 @_@

解决方法:

1.缺少依赖库情况最大可能。
指令: 1. yum install gcc make perl fuse fuse-libs kernel-devel open-vm-tools -y
2. yum install net-tools -y
3. 编译代码:
$ mkdir /mnt/cdrom/
$ mount /dev/cdrom /mnt/cdrom
$ cp /mnt/cdrom/VMwareTools-10.0.1-3160059.tar.gz ~/
$ umount /dev/cdrom
$ cd ~/
$ tar zxvf VMwareTools-10.0.1-3160059.tar.gz
$ cd vmware-tools-distrib/
$ ./vmware-install.pl -d
2.如果方法一失败,有可能是人品问题。那么建议重新编译VMware-Tools,重新安装。极有可能是前面
编译出问题。


4. Centos7 虚拟机跟 Windows7 创建共享文件夹

第四个坑:共享文件夹存在 /mnt/hgfs/目录下,但是 Nginx指向 hgfs目录时出现访问文件夹目录 “403 Forbidden”,看不到网站根目录下的文件,可是可以执行PHP文件的访问

分析:hgfs没有权限。

解决方法:

1. 在root用户下使用 chmod -R 777 文件名 给与最高权限。
2. 在 Nginx的配置文件 nginx.conf 顶部,加上一句 "user root;"。


第五个坑:发现给权限时出现 “不存在 hgfs 文件,不能给与权限” 等类似问题时。

分析: 我也不知道什么鬼问题,由最后解决方法看是防火墙的问题

解决方法:简单粗暴的关闭防火墙,或者使用iptables开放80端口,估计是80端口的问题。iptables是需要 yum安装。

1. 关闭防火墙的指令: /usr/sbin/setenforce 0
补充:Centos6.8 是不需要关闭这个防火墙,因为我Centos6.8上没有碰到这个问题。后来查找资料
才知道,Centos7是默认开启防火墙的。


最后大赠送,我目前保存的虚拟机环境如下:

Centos6.8 + Nginx 1.6.2 + Mysql 5.0.3(不太记得了) + PHP 5.6.0

Centos 7 + Nginx 1.6.3 + Mysql 5.6.3 + PHP 5.6.0

如果你需要这个环境,可以找我要,请在博文下留言评论并留下您的邮箱,谢谢! @_@ 。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: