关于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。请参考这个博客进行安装,请点击我
对于 Nginx 跟 php 之间不得不聊下 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-server 和 php 通信出问题
解决方法:
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.0Centos 7 + Nginx 1.6.3 + Mysql 5.6.3 + PHP 5.6.0
如果你需要这个环境,可以找我要,请在博文下留言评论并留下您的邮箱,谢谢! @_@ 。
相关文章推荐
- linux 高级字符设备驱动 ioctl操作介绍 例程分析实现
- linux 文件搜索 grep locate find
- linux centos 6.7 修改 ip、网关、dns
- linux 中 timeval结构体
- Linux(Ubuntu)下搭建ASP.NET Core环境
- 关于Linux下的chown、chgrp、chmod命令的使用权限
- linux笔记:linux系统安装-vmware虚拟机安装
- linux菜鸟学习(六)----linux文件属性详解
- VMware 下的CentOS6.7 虚拟机与Windows7通信
- VMware 下的CentOS6.7 虚拟机与Windows7通信
- VMware 下的CentOS6.7 虚拟机与Windows7通信
- 宿主机跟Vmware中的linux使用host-only,bridge方式通信
- FQDN 是什么
- 如何在linux系统中设置静态ip地址
- linux菜鸟学习(五)----Linux文件类型与扩展名
- Linux学习总结(12)——Linux必须学会的60个命令
- Linux学习总结(12)——Linux必须学会的60个命令
- 《linux学习》之用户管理
- 《Linux学习》之文件目录
- 大规模请求下,Linux 服务器连接数优化设置