Centos 中搭建LNMP环境

前端之家收集整理的这篇文章主要介绍了Centos 中搭建LNMP环境前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP 安装

  • 准备工作(必要的依赖包)

    yum -y install bzip2-devel curl-devel freetype-devel gcc libjpeg-devel libpng-devel libxslt-devel libxml2-devel openssl-devel pcre-devel pcre-devel zlib-devel

  • 本地下载安装包

    http://php.net/get/php-7.0.11.tar.gz/from/a/mirror (下载PHP-7.0.11.tar.gz)

  • 将安装包远程传到服务器上

    scp PHP-7.0.11.tar.gz username@ip:/usr/local/PHP-7.0.11.tar.gz

  • 解压安装包

    tar -zxvf PHP-7.0.11.tar.gz

    注:如果报错
      gzip: stdin: not in gzip format
      tar: Child returned status 1
      tar: Error is not recoverable: exiting now

      
      原因 : 这个压缩包没有用gzip格式压缩,所以不用加z指令!
      tar -xvf PHP-7.0.11.tar.gz

  • 配置安装变量

    ./configure –prefix=/usr/local/PHP –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-kerberos –with-libdir=lib64 –with-libxml-dir –with-MysqLi –with-openssl –with-pcre-regex –with-pdo-MysqL –with-pdo-sqlite –with-pear –with-png-dir –with-jpeg-dir –with-xmlrpc –with-xsl –with-zlib –with-bz2 –with-mhash –enable-fpm –enable-bcmath –enable-libxml –enable-inline-optimization –enable-gd-native-ttf –enable-mbregex –enable-mbstring –enable-opcache –enable-pcntl –enable-shmop –enable-soap –enable-sockets –enable-sysvsem –enable-sysvshm –enable-xml –enable-zip

    注:./configure –prefix=/usr/local/PHP 是安装路径,可以改成自己喜欢的安装路径。

  • 编译源码

    //在解压目录执行编译命令:make
    cd PHP-7.0.11
    make

    注:编译会花费一些时间,耐心等待即可。编译完成的最后会提示你执行make test命令。就是对上一步 make 的检查,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0。

  • 安装PHP

    make install

  • 配置PHP

    PHP源码包(/usr/local/PHP-7.0.11)中的PHP.ini-development文件复制到/usr/local/PHP/下,更名为PHP.ini。

    cp /usr/local/PHP-7.0.11/PHP.ini-development /usr/local/PHP/PHP.ini
    cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
    cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf

    配置PHP.ini

    cgi.fix_pathinfo=0 
  • 启动PHP-fpm

    /usr/local/PHP/sbin/PHP-fpm
  • 检查PHP-fpm工作情况

    PHP-fpm 服务器默认的端口是9000,查看9000端口是否有进程被监听

    netstat -tln | grep 9000 

安装Nginx

  • 准备工作必要依赖包安装

    在安装Nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  • 本地下载安装包

    https://nginx.org/download/ (下载Nginx-1.9.9.tar.gz)

  • 将安装包远程传到服务器上

    scp PHP-7.0.11.tar.gz username@ip:/usr/local/Nginx-1.9.9.tar.gz

  • 解压安装包

    tar -zxvf Nginx-1.9.9.tar.gz

  • 配置/编译

    cd Nginx-1.9.9
    //注:编译 (地址可以自己定义)
    ./configure --prefix=/etc/Nginx     
    make
    make install
  • 检测安装是否成功

    cd  /etc/Nginx/sbin
    
    ./Nginx

    如果在这个环节报错:
    Nginx: [alert] could not open error log file: open()
    "/usr/local/Nginx/logs/error.log" Failed (2: No such file or directory)
    2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/Nginx/logs/access.log" Failed (2: No such file or directory)

    原因分析:Nginx/目录下没有logs文件

    mkdir logs
    chmod 700 logs
  • 监听查询查看

    ps aux|grep Nginx

    直接输入IP地址,页面渲染为:

    【异常处理】
    如果没有上面的渲染页面,我们则需要Telnet 连接下:
    telnet Ip地址 80
    如果报连接失败,则说明服务器的80端口是打不开的。
    解决方案】
    firewall-cmd –query-port=80/tcp

    说明80端口还真没打开呀!
    (⊙o⊙)开启80端口走起!
    firewall-cmd –add-port=80/tcp –permanent
    注: –permanent #永久生效,没有此参数重启后失效
    o( ̄ヘ ̄o#)重启防火墙
    systemctl restart firewalld

    (^o^)/~刷新浏览器!

  • 设置Nginx开机启动

    vim /etc/rc.d/rc.local   
    
    #开机启动
    
    /etc/Nginx/sbin/Nginx

    注:所有的开机启动都要在 /etc/rc.d/rc.local 中

  • 配置Nginx

    编辑Nginx配置文件/etc/Nginx/conf/Nginx.conf,主要修改Nginx的server {}配置块中的内容修改location块,追加index.PHPNginx服务器默认支持index.PHP首页

    然后配置.PHP请求被传送到后端的PHP-fpm模块,默认情况下PHP配置块是被注释的,此时去掉注释并修改为以下内容

    主要修改的就是fastcgi_param设置为:
    SCRIPT_FILENAME $document_root$fastcgi_script_name
    修改完这些保存并退出,然后重启Nginx
    /etc/Nginx/sbin/Nginx -s reload

  • 检测是否配置成功

    Nginx下的html目录下创建test.PHP文件,打印一下PHP配置:

    touch test.PHP
    vi test.PHP
    PHPinfo(); 

    访问PHP文件如果出现PHP配置,则Nginx配置成功


MysqL安装

  • 【运行环境】查看自己主机的属性(选择适合主机的MysqL包)

    more /etc/issue
  • 【安装方法阐述

    安装MysqL主要有两种方法

    第一种是通过源码自行编译安装,这种适合高级用户定制MysqL的特性,这里不做说明;

    第二种是通过编译过的二进制文件进行安装。


    二进制文件安装的方法又分为两种:

    一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件

    第二种是使用RPM或其他包进行安装,这种安装进程会自动完成系统的相关配置,所以比较方便。

  • 【检查安装包】检查是否已安装

    rpm -qa | grep -i MysqL
    *注:grep的-i选项表示匹配时忽略大小写

    可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了–nodeps选项,忽略了依赖关系:

    rpm -e MysqL-libs-5.1.73-7.el6.x86_64 --nodeps

    再次运行上面命令(rpm -qa | grep -i MysqL)的时候 将不会再显示文件

  • 添加用户组】

    添加MysqL组和MysqL用户,用于设置MysqL安装目录文件所有者和所属组。

    groupadd MysqL
    useradd -r -g MysqL MysqL

    *注:useradd -r参数表示MysqL用户是系统用户,不可用于登录系统。

  • 【二进制文件安装】

    • 下载安装包
      点击下载链接地址

      下载安装包MysqL-5.7.17-linux-glibc2.5-i686.tar.gz 到本地

    • 上传到服务器

      scp MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz user@ip:/usr/local
    • 解压缩安装包

      tar -zxvf MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz
    • 更改目录名称(太长了)

      mv  MysqL-5.7.17-linux-glibc2.5-x86_64  MysqL
    • 进入MysqL文件夹,也就是MysqL所在的目录,并更改所属的组和用户

      cd MysqL
      chown -R MysqL .
      chgrp -R MysqL .
    • 开始作死安装o( ̄ヘ ̄o#)

      执行MysqL_install_db脚本,对MysqL中的data目录进行初始化并创建一些系统表格。注意MysqL服务进程MysqLd运行时会访问data目录,所以必须由启动MysqLd进程的用户(就是我们之前设置的MysqL用户)执行这个脚本,或者用root执行,但是加上参数–user=MysqL

      cd MysqL
      chown -R MysqL .
      chgrp -R MysqL .
    • 配置文件o( ̄√ ̄o#)

      cd support-files
      
      //复制my.cnf 到 /etc/my.cnf (MysqLd启动时自动读取) 
      cp my-default.cnf /etc/my.cnf
      
      *注意:如果你在安装时Linux虚拟机时同时安装了默认的MysqL,此时操作以上步骤,终端将会提示文件已存在是否覆盖,输入yes覆盖即可。
      //配置数据库编码
      vi /etc/my.cnf
      //在这份文件中可以添加以下配置信息(如果有修改即可)
      [MysqL]
      default-character-set=utf8
      [MysqLd]
      default-storage-engine=INNODB
      character_set_server=utf8
      //复制MysqL.server 到/etc/init.d/ 目录下【目的想实现开机自动执行效果
      执行命令:cp MysqL.server /etc/init.d/MysqLMysqL是服务名)
      //修改 /etc/init.d/MysqL 参数
      vi /etc/init.d/MysqL
      //给与2个目录位置
      basedir=/usr/local/MysqL
      datadir=/usr/local/MysqL/data
    • MysqL用户管理o( ̄ヘ ̄o#)

       passwd MysqL #给MysqL用户设置一个密码
       #给目录/usr/local/MysqL 更改拥有者  
       chown -R MysqL:MysqL /usr/local/MysqL/
    • 初始化 MysqL数据库o( ̄ヘ ̄o#)

      cd MysqL/bin
      //初始化
      ./MysqLd --initialize --user=MysqL --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data

      注:
      生成出一个data目录,代表数据库已经初始化成功
      并且MysqL的root用户生成一个临时密码:SHNq8Qvd2g>L(最好先记录这个临时密码)
      记住最后的root@localhost:密码

      数据库加密
      ./MysqL_ssl_rsa_setup --datadir=/usr/local/MysqL/data

    • 启动MysqL/检查MysqLo( ̄ヘ ̄o#)

      数据库加密
      ./MysqL_ssl_rsa_setup –datadir=/usr/local/MysqL/data`

      启动MysqL(为了不让进程卡主,可在启动MysqL的命令后加上&代表此进程在后台运行)
      ./MysqLd_safe --user=MysqL &

      检查ps -ef | grep MysqL

    • 登录MysqL数据库O(∩_∩)O哈哈
      //登录
      ./MysqL -uroot -p回车后输入之前的临时密码
      //修改密码
      set password=password('新密码');

猜你在找的CentOS相关文章