回顾一下这几天自己配置LNMP环境踩得坑,希望帮助更多人

前期准备:VMtool、Linux、Nginx、Mysql、PHP、cmake

版本如下:Centos6、nginx1.6.0、mysql5.5.22、php5.3.28

#需要4个软件包:Nginx、Mysql、Php、cmake#
链接:https://pan.baidu.com/s/1q3Os1KOCBKnNf6FF6Ir1SQ
提取码:s8py

一、安装VMware tool

使用:VMware tool

VMware tool步骤:

  1. 虚拟机-VMware tools-桌面找到CD/DVD文件

出现问题:桌面的VMware tools,打开后盘是灰色的,里面没有文件。

问题原因:虚拟机自带的liunx.iso是显卡驱动而不是liunx系统映像,必须自己重下载liunx系统,在把目录改成自己的liunx就好了

解决方式:

  • 在虚拟机安装目录下找到linux.iso文件(如果找不到,可以直接搜索);
  • 将这个文件拷贝到,你装centos系统的iso文件目录下(或直接把centos系统的iso文件拷到了虚拟机安装目录下);
  • 打开虚拟机,点击虚拟机>设置->CD/DVD(SATA),将使用的ISO镜像文件改为linux.iso文件,点击确定
  • 再次点击安装VMware tools,就会出现VMware tools压缩包及相关文件
  • 接下来可以进行VMware tools的安装了

  2.点击桌面VMware tools,找到压缩包,点击上方解压缩,选择解压到桌面上,会生成vmware-tools-distrib文件夹。

  3.打开终端,进入管理员模式,把文件夹移到root文件夹中:

  mv vmware-tools-distrib /root/

  4.进入vmware-tools-distrib目录

  cd /root/vmware-tools-distrib

  ./vmware-install.pl

  5.一路回车,直至提示Enjoy,-- the VMware team,安装完成

二、配置yum

  1.安装wget

  yum -y install wget

  2.备份/etc/yum.repos.d/CentOS-Base.repo文件

  cd /etc/yum.repos.d/
  mv CentOS-Base.repo CentOS-Base.repo.back

  3.下载阿里云-开发者centos-6.repo文件

  链接:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.164b2f70MSWNVz

  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

  

  4.重新加载yum

  yum clean all

  yum makecache

  5.检查yum是否运行正常

  • 安装yum后,查看安装包

  rpm -qa | grep yum

  • 输入yum,查看相关参数说明,有出现则说明运行正常。

三、配置Nginx

  1.卸载相关的软件包

  rpm -e httpd --nodeps
  rpm -e httpd-manual --nodeps
  rpm -e webalizer --nodeps
  rpm -e subversion --nodeps
  rpm -e mod_python --nodeps
  rpm -e mod_ssl --nodeps
  rpm -e mod_perl --nodeps

  2.安装支持包

  yum -y install pcre-devel
  yum -y install zlib-devel

  3.创建nginx用户

  useradd -M -s /sbin/nologin nginx

  4.解压nginx源码包

  tar zxf /root/lnmp/nginx/nginx-1.6.0.tar.gz -C /usr/src/

  5.配置nginx

  cd /usr/src/nginx-1.6.0/

  ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

  6.编译及安装

  make && make install(&&表示&&前面的命令执行成功了才会执行&&后面的命令)

  

  7.优化Nginx命令的执行路径

  ln -s /usr/local/nginx/sbin/* /usr/local/sbin

  8.检测配置文件

  nginx -t

  9.启动nginx服务,并查看运行端口

  nginx
  netstat -anpt | grep nginx

  出现80,意味着成功

四、配置Mysql

  1.卸载Linux系统自带的mysql软件包

  rpm -e mysql-server
  rpm -e mysql

  2.安装支持包

  yum -y install ncurses-devel

  3.安装cmake工具

  •   解压并配置cmake

  tar zxf /root/lnmp/mysql/cmake-2.8.6.tar.gz -C /usr/src/

  cd /usr/src/cmake-2.8.6

  ./configure

  

  •  编译并安装cmake

  make && make install

  4.创建mysql用户

  useradd -M -s /sbin/nologin mysql

  5.解压mysql源码包

  tar zxf /root/lnmp/mysql/mysql-5.5.22.tar.gz -C /usr/src

  6.配置mysql

  cmake . DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

  选项含义如下
  -DCMAKE_INSTALL_PREFIX= 指定mysql的安装路径
  -DSYSCONFDIR= 指定mysql配置文件的所在目录
  -DDEFAULT_CHARSET 指定默认的字符集
  -DDEFAULT_COLLATION= 指定字符集的默认排序
  -DWITH_EXTRA_CHARSETS= 支持扩展字符集

  7.编译并安装mysql

  make && make install

  8.修改mysql安装目录的所有者权限

  chown -R mysql:mysql /usr/local/mysql

  9.删除默认的mysql配置文件,拷贝生成新的配置文件

  rm -rf /etc/my.cnf
  cp support-files/my-medium.cnf /etc/my.cnf

  ls | grep my.cnf

  10.初始化mysql数据库
  /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

  11.修改环境变量PATH,将mysql命令追加到默认搜索路径中,并重定向到/etc/profile  

  echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile

  12.重新加载环境变量
  . /etc/profile

  13.优化mysql执行路径

  ln -s /usr/local/mysql/bin/* /usr/local/bin
  ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
  ln -s /usr/local/mysql/include/mysql/* /usr/include/

  14.生成mysql启动脚本,并赋予执行权
  cp support-files/mysql.server /etc/rc.d/init.d/mysqld
  chmod +x /etc/rc.d/init.d/mysqld

  15.将mysql服务添加到开机自启动中
  chkconfig --add mysqld

  16.启动mysql服务,并查看运行端口
  service mysqld start
  netstat -anpt | grep mysqld

  17.登录mysql

  mysql -u root -p
  密码为空

  18.修改密码
  set password for root@localhost = password(“密码”);

五、配置PHP

  1 卸载默认的php相关软件包
  rpm -e php --nodeps
  rpm -e php-cli --nodeps
  rpm -e php-ldap --nodeps
  rpm -e php-common --nodeps
  rpm -e php-mysql --nodeps

  2 安装支持包(用于支持图片处理功能)
  yum -y install gd
  yum -y install libxml2-devel
  yum -y install libjpeg-devel
  yum -y install libpng-devel

  3.安装php

  •   解压安装包并配置

  tar zxf /root/lnmp/php/php-5.3.28.tar.gz -C /usr/src/

  cd /usr/src/php-5.3.28/
  ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib

  选项含义如下:
–prefix=/usr/local/php5 指定php的安装路径
–with-gd 安装jd库(用于处理图片)
–with-zlib 安装zlib库(实现页面压缩)
–with-mysql=/usr/local/mysql 指定mysql路径
–with-config-file-path=/usr/local/php5 指定php配置文件路径
–enable-mbstring 开启多字节字符库(支持中文)
–enable-fpm 开启fpm功能(FastCGI功能,支持高负载动态网站进程管理)
–with-jpeg-dir=/usr/lib 指定jpeg图片处理链接库路径

  •   安装并编译

  make && make install

  4.拷贝生成php配置文件php.ini
  cp php.ini-development /usr/local/php5/php.ini

  5.优化php的执行命令
  ln -s /usr/local/php5/bin/* /usr/local/bin/
  ln -s /usr/local/php5/sbin/* /usr/local/sbin/

  6.修改php.ini文件

  vim /usr/local/php5/php.ini

修改内容如下:

  7.解压ZendGuardLoader文件
  tar zxf /root/lnmp/php/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/

  cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/

  cp ZendGuardLoader.so /usr/local/php5/lib/php

  8.在php.ini文件中增加Zend功能(PHP加速)
  vim /usr/local/php5/php.ini

  在配置文件末尾添加如下内容
  zned_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
  zend_loader.enable = 1

  9.拷贝生成fpm的配置文件
  cd /usr/local/php5/etc/

  ls
  cp php-fpm.conf.default php-fpm.conf

  10.创建php用户
  useradd -M -s /sbin/nologin php

  11.修改php-fpm.conf配置文件,使其支持动态网站功能
  vim /usr/local/php5/etc/php-fpm.conf

修改如下内容

  12.启动php-fpm服务,并查看运行端口
  /usr/local/php5/sbin/php-fpm
  netstat -anpt | grep php-fpm

  13.修改Nginx启动脚本,使系统能识别Nginx服务
  配置nginx的启动脚本,由于nginx不像apache一样有配置脚本,因此需要在init.d目录下建立一个nginx来写启动脚本。(因此打开nginx后是一个新文件)

  

  vim /etc/init.d/nginx

添加如下内容

#!/bin/bash

# chkconfig: - 99 20

# description: Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

PROG_FPM="/usr/local/sbin/php-fpm"

PIDF_FPM=`netstat -anpt | grep 9000 | awk '{print $7}' | awk -F/ '{print $1}'`

case "$1" in

start)

$PROG

$PROG_FPM

;;

stop)

kill -s QUIT $(cat $PIDF)

kill -s QUIT $PIDF_FPM

;;

restart)

kill -s QUIT $(cat $PIDF)

kill -s QUIT $PIDF_FPM

$PROG

$PROG_FPM

;;

reload)

kill -s HUP $(cat $PIDF)

;;

*)

echo "Usage: $0 {start|stop|restart|reload}"

exit 1

esac

exit 0

  14.修改nginx.conf,让其支持php解析功能

  cd /usr/local/nginx/conf/

  vim /usr/local/nginx/conf/nginx.conf

  修改内容如下

location ~ .php$ {

root    html;   #指定动态网站的根目录(默认html目录,该目录的完整路径为:/usr/local/nginx/html)

fastcgi_pass   127.0.0.1:9000;     #指定侦听环回地址及端口

fastcgi_index  index.php;     #指定默认主页文件(php页面)

include        fastcgi.conf;   # 指定fastcgi的配置文件

}

  15.添加Nginx服务到系统,使其开机后自动运行
  chmod +x /etc/init.d/nginx
  chkconfig --add nginx
  service nginx restart

  chkconfig nginx on
  netstat -anpt | grep nginx

  16.建立PHP功能测试网页index.php
  gedit /usr/local/nginx/html/index.php

  17.建立mysql功能测试网页test.php
  gedit /usr/local/nginx/html/test.php

  18.在浏览器上输入http://localhost测试Nginx

  如果不出现该界面,是linux和windows防火墙的问题,关闭即可

  •   linux防火墙关闭:

  查看防护墙,得到信息说明开着

  /etc/init.d/iptables status

  关闭防火墙:

  /etc/init.d/iptables stop

  关闭防火墙服务开机自启动:
  chkconfig --levels 35 iptables off

  •   windows防火墙关闭:

  1)打开控制面板,点击“系统和安全”选项。然后打开“Windows防火墙”。
  2)点击进入“高级设置”,选择“入站规则”。
  3)在入门规则中找到“文件和打印机共享(回显请求-ICMPv4-In)”选项,看是有两项,都是未启用。
  分别在两项上右键,选择“启用规则”。
  在虚拟机系统中ping本机的ip
  修改完成后,再回到虚拟机系统中,在终端中输入命令:ping 主机IP地址
  可以看到已经可以正常ping通了。

 

  19.在浏览器上输入http://localhost/index.php测试PHP

  表明PHP配置正确!

至此 LNMP环境配置完成~~~撒花花~~~

最新文章

  1. alexkn android第一行代码-7.广播
  2. Java异步回调
  3. Snappy压缩
  4. mysql 连接数的最大数
  5. 【iOS】init,loadView,viewDidLoad加载关系
  6. 多个html编辑器在同一页面加载
  7. Oracle内存结构(之三)
  8. 【USACO】滑雪课程
  9. android studio gradle 更新方法。
  10. Android AVD启动报错: This AVD's configuration is missing a kernel file! Please ensure the file "kernel-qemu" is in the same location as your system image.
  11. linux kettle
  12. 前端导出excel表
  13. CodeCraft-19 and Codeforces Round #537 (Div. 2) 题解
  14. [USACO07JAN]Balanced Lineup
  15. 预加载与智能预加载(iOS)
  16. 本地文件到通过flume到hdfs
  17. 2017-2018-1 20155210 《信息安全系统设计基础》 实现mypwd
  18. CentOS6.6中安装telnet
  19. Facebook开源技术识别网购评论
  20. redis持久化策略

热门文章

  1. jQ native 构造函数
  2. intellij idea参数提示param hints
  3. 基金名称中的ABC是什么意思,我们该如何选择?
  4. js 键盘事件(onkeydown、onkeyup、onkeypress)
  5. Github搭建简单的博客
  6. WinDbg 图形界面功能(四)
  7. Lightning Web Components 开发指南(二)
  8. hasura skor 一个pg 的event trigger 扩展
  9. SDSC2019【游记】
  10. C#访问https地址实例