LNMP架构下的nginx、mysql、php的源码安装

一、LNMP的介绍

   LNMP就是Linux+Nginx+Mysql+Php这种网站服务架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统,常见版本有:centos、ubuntu、debain、fedora、gentoo等。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为开源软件,组合在一起成为免费、高校、扩展性强的网站服务系统。

二、mysql的源码编译及配置

   (一) 源码编译

   1) 安装源码编译工具cmake(cmake在软件包中有,但版本低于2.8,所以需要自己下载一个2.8以上的rpm包)

   --->  yum  install  -y  cmake-2.8.12.2-4.e16.x86_64.rpm  

   2)从官网中下载mysql源码包,并解压

   --->  tar  zxf  mysql-boost-5.7.17.tar.gz       

   --->  cd  mysql-5.7.17

   3)创建预编译环境,添加自己所需要的安装条件

   ---> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql       # 指定mysql安装路径

                 -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data             # 数据存储位置

                 -DWITH_INNOBASE_STORAGE_ENGINE=1                      # 安装inmodb的存储引擎

                 -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock     # socket文件存储路径

                           -DWITH_MYISAM_STORAGE_ENGINE=1                          # 安装myisam存储引擎

                 -DDEFAULT_CHARSET=utf8                                             # 使用编码格式为utf-8

                 -DDEFAULT_COLLATION=utf8_general_ci                       # 校验字符

                 -DEXTRA_CHARSETS=all                                                   # 安装所有扩展字符集

                 -DWITH_BOOST=boost/boost_1_59_0/                               # boost路径

   # 该命令会出现如下错误:(一)没有安装c语言编译器和c++编译器

  

   解决方法:---  >  yum  install  gcc gcc-c++   -y         

   # 安装编译器之后,再次编译,还会出现如下问题:(二)没有ncurses-devel包

  

   解决方法:--->  yum install -y  ncurses-devel

           --->  rm -f CMakeCache.txt          

   # 此时再次进行预编译,我们可以看到已经顺利通过了。 (在此过程中,缺什么依赖包,我们下什么就行。有时也有可能会使用openssl-devel包)

   4)编译汇编

   --->  make  &&  make install          # 该过程需要几十分钟

  

   (二)mysql的配置

   1)进入mysql安装目录,把默认配置文件放在/etc下

   --->  rpm  -qa  | grep mysql         # 查看mysql的版本

   --->  cd  /etc

   --->  mv  my.cnf  my.cnf.bak         # 先将/etc下的mysql配置文件重命名

   --->  cd  /usr/local/lnmp/mysql      # mysql的安装位置

   --->  cd support-files

   --->  cp  my-default.cnf   /etc/my.cnf   # 将配置文件拷贝到/etc(系统默认配置文件目录下 )

   2)修改/etc下的配置文件

   --->  vim  /etc/my.cnf       # 修改如下内容。

  basedir = /usr/local/lnmp/mysql            # mysql的安装路径

  datadir = /usr/local/lnmp/mysql/data     # 数据存放目录

  port = 3306                                         # 端口号

  # server_id = .....

  socket = /usr/local/lnmp/mysql/data/mysql.sock    # socket文件存放目录

   3)将编译完成的mysql执行脚本复制到/etc/init.d/目录

   ---> cp /usr/local/lnmp/mysql/support-files/mysql.server  /etc/init.d/mysqld    #若mysqld无执行权限,使用:chmod +x /etc/init.d/mysqld

   4) 将编译生成的mysql二进制命令放进系统变量中。(方便直接使用mysql使用数据库)

   --->  vim  ~/.bash_profile
  

   --->  source  ~/.bash_profile         # 加载.bash_profile,是配置生效

   5) 对mysql服务进行限制

   --->  groupadd -g 27  mysql      # 生成uid和gid均为27的mysql用户

   --->  useradd -u 27  -g  27  mysql

   --->  id  mysql     # 进行用户信息的查看

  

   # 当前目录在/usr/local/lnmp/mysql下

   --->  chown  root.mysql  .  -R      # 为了保证数据的安全性,进行目录执行权限的设定

   --->  chown  mysql.mysql  .  -R

   (三)mysql的安全初始化

   1)mysql密码的设置

   --->  bin/mysqld  --initialize   --user=mysql    # 生称随机密码

      

   --->  /etc/init.d/mysqld    start     # 启动mysql服务

   --->  mysql_secure_installation       # 自己设置密码,首密码为上面的随机密码(两个回车,四个y)

   2)设置完成之后,我们试着登陆以下mysql。

   --->  mysql  -p  

  

三、PHP的源码安装

   1)首先对php源码包进行解压

   --->  tar  jxf  php-5.6.35.tar.bz2

   --->  cd  php-5.6.35

   2)预编译及所需环境的安装(后面加了什么参数,就需要安装相应的依赖包)

   --->  ./configure --prefix=/usr/local/lnmp/php            # php安装目录

         --with-config-file-path=/usr/local/lnmp/php/etc     # 配置文件所在位置

         --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd 

         --with-pdo-mysql=mysqldnd                           # 支持与mysql建立连接

         --with-openssl                                      # 支持openssl的加密

         --with-snmp --with-gd --with-zlib --with-curl 

         --with-libxml-dir                                   # 支持libxml函数

         --with-png-dir --with-jpeg-dir --with-freetype-dir  # 支持php处理图片

         --with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap 

         --enable-ftp --enable-sockets --enable-mbstring 

         --enable-fpm --with-mcrypt --with-mhash              # 开启fpm模式(nginx服务使用);mcrypt提供加密算法;mhash使用hash加密

   3) 解决依赖性锁需要的包

   --->  yum install -y gd-devel-2.0.35-11.el6.x86_64.rpm libmcrypt-2.5.8-9.e16.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm  libmcrypt-devel-
2.5.8-9.e16.x86_64.rpm            # 这些软件包需要在官网上下载
   --->  yum install  libxml2-devel  openssl-devel  curl-devel  gmp-devel  net-snmp-devel  gcc  -y     # 这些包,可以直接安装

   # 之后,再次预编译,就可以成功了

   4)编译和安装

   --->  make && make install

   5) 创建nginx用户

   --->  useradd nginx

   6) 修改php的配置文件

   --->  cd  /usr/local/lnmp/php/etc             # 进入配置文件所在目录

   --->  cp  php-fpm.conf.default  php-fpm.conf  # 配置文件重命名

   --->  vim  php-fpm.conf      # 取消pid的注释,并添加nginx用户

  

  

   --->  cp /root/php-5.6.35/php.ini-production  /usr/local/lnmp/php/etc/php.ini

   --->  vim  php.ini           # 修改数据的时区。

  

   7)把php执行脚本复制到/etc/init.d/目录下

   --->  cd /root/php-5.6.35/sapi/fpm

   --->  cp  init.d.php-fpm  /etc/init.d/php-fpm

   --->  chmod  +x  /etc/init.d/php-fpm

   8) 启动php-fpm服务,并查看端口是否开启

   --->  /etc/init.d/php-fpm  start     # 启动php服务,默认在9000端口

   --->  netstat   -antlp

  

四、Nginx的源码编译

   1)下载源码包,并解压(带有sticky模块的nginx)

   --->  tar  zxf  nginx-1.14.0.tar.gz

   --->  yum install unzip  -y  

   --->  unzip  nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip

   2)去掉nginx的版本号

   --->  cd  /root/nginx-1.14.0

   --->  vim  src/core/nginx.h

  

   3) 注释掉debug(可以减少安装内容)

   --->  cd  /root/nginx-1.14.0

   --->  vim  auto/cc/gcc

  

   4) 预编译

   ---> ./configure --prefix=/usr/local/lnmp/nginx  --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

   5) 依赖包的安装(按照提示,少什么包安装什么包即可)

   --->  yum install -y  pcre-devel  -y

   6) 编译安装

   --->  make && make install

   7) 配置nginx服务

   --->  cd  /usr/local/lnmp/nginx/conf

   --->  lscpu               # 查看cpu的核数等相关信息 

   --->  vim nginx.conf      # 修改用户,最大文件数,cpu,发布首页面,php信息

  

  

  

  

   --->  sysctl  -a | grep file             # 查看系统最大文件数

  

   --->  vim  /etc/security/limits.conf     # 修改nginx用户做限制

  

   8)为了方便使用nginx二进制命令,我们可以做一个软连接

   --->  ln -s  /usr/local/lnmp/nginx/sbin/nginx /sbin

  

   9) 编写nginx默认发布文件

   --->  cd /usr/local/lnmp/nginx/html

   --->  vim index.php

  

   10)启动nginx服务,并在浏览器中进行测试。

   --->  nginx   # nginx的其他命令: nginx -s reload|stop  # 重新加载配置文件|关闭服务;

   # 在浏览器中结果如下

  

   到此,所有软件的安装就完成了。接下来,我们就可以进行论坛的部署了。

 

posted @ 2018-10-02 11:33  UTHN_B  阅读(491)  评论(0编辑  收藏  举报