LNMP搭建流程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

编译和安装

 

tar xf nginx-1.10.2.tar.gz -C /usr/src/

 

cd /usr/src/nginx-1.10.2

 

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

 

make && make install

 

Nginx软链接

 

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

首先搭建Nginx服务

用本地yum仓库安装依赖包

yum install -y pcre-devel openssl-devel gcc gcc-c++ make automake

下载软件源码包

wget -q http://nginx.org/download/nginx-1.10.2.tar.gz 
没有wget命令需要手动安装 
yum -y install wget

创建程序用户

useradd -s /sbin/nologin -M www

 

 

编译和安装

tar xf nginx-1.10.2.tar.gz -C /usr/src/

cd /usr/src/nginx-1.10.2

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

make && make install

Nginx软链接

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

修改Nginx配置文件

cd /usr/local/nginx/conf

egrep -v "#|^$" nginx.conf.default > nginx.conf

特别提示

因为安装PHP需要MySQL的安装环境,所以需要先安装MySQL,不然PHP编译会报错

如何没有安装MySQL需要把--with-mysql=/usr/local/mysql改成--with-mysql=mysqlnd

 

 

 

 

 

MySQL二进制搭建方法

 

创建程序用户

useradd -s /sbin/nologin -M mysql

获取MySQL二进制软件包

链接:https://pan.baidu.com/s/1dzCH1GsOiMR3i_omOZliHA

提取码:u6h8

二进制方式安装MySQL

  1. [root@localhost ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
  2. [root@localhost ~]# cd /usr/local/
  3. [root@localhost local]# mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32
  4. [root@localhost local]# ln -s mysql-5.5.32 mysql
  5. [root@localhost local]# ls
  6. bin  games    lib    libexec  mysql-5.5.32  nginx-1.10.2  share
  7. etc  include  lib64  mysql    nginx         sbin          src
    1. [root@localhost local]# cd /usr/local/mysql
    2. [root@localhost mysql]# ls
    3. bin      data  include         lib  mysql-test  scripts  sql-bench
    4. COPYING  docs  INSTALL-BINARY  man  README      share    support-files

 

初始化MySQL配置文件my.cnf

命令如下:

  1. [root@localhost ~]# cd /usr/local/mysql
  2. [root@localhost mysql]# ls -l support-files/*.cnf
  3. -rw-r--r--. 1 7161 wheel  4691 Jun 19  2013 support-files/my-huge.cnf
  4. -rw-r--r--. 1 7161 wheel 19759 Jun 19  2013 support-files/my-innodb-heavy-4G.cnf
  5. -rw-r--r--. 1 7161 wheel  4665 Jun 19  2013 support-files/my-large.cnf
  6. -rw-r--r--. 1 7161 wheel  4676 Jun 19  2013 support-files/my-medium.cnf
  7. -rw-r--r--. 1 7161 wheel  2840 Jun 19  2013 support-files/my-small.cnf

 

 

提示: 
- support-files下有my.cnf的各种配置样例。 
- 使用cp全路径/bin/cp,可实现拷贝而不出现替换提示,即如果有重名文件会直接覆盖 
- 本例为测试安装环境,因此选择参数配置小的my-small.cnf配置模版,如果是生产环境可以根据硬件选择更高级的配置文件,上述配置文件模版对硬件的要求从低到高依次为:

  1. my-medium.cnf (最低)
  2. my-small.cnf
  3. my-large.cnf
  4. my-huge.cnf
  5. my-innodb-heavy-4G.cnf(最高)

(5)初始化MySQL数据库文件

初始化命令如下:

  1. [root@localhost ~]# mkdir -p /usr/local/mysql/data #建立MySQL数据文件目录
  2. [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql #授权mysql用户管理MySQL的安装目录
  3. [root@localhost ~]# yum -y install libaio #光盘源安装依赖包,否则下一步的编译会报错
  4. [root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  5. #初始化MySQL数据库文件,会有很多信息提示,如果没有ERROR级别的错误,会有两个OK的字样,表示初始化成功,否则就要解决初始化的问题

 

 

配置并启动MySQL数据库

1)设置MySQL启动脚本,命令如下:

  1. [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
  2. #拷贝MySQL启动脚本到MySQL的命令路径
  3. [root@localhost mysql]# chmod +x /etc/init.d/mysqld
  4. #使脚本可执行

2)MySQL二进制默认安装路径是/usr/local/mysql,启动脚本里是/usr/local/mysql。如果安装路径不同,那么脚本里路径等都需要替换

3)启动MySQL数据库,命令如下:

  1. [root@localhost mysql]# /etc/init.d/mysqld start
  2. Starting MySQL.. SUCCESS! 
  3. ss -antup | grep mysql

  4.  

  5. 设置MySQL开机自启动,命令如下:

    1. [root@localhost mysql]# chkconfig --add mysqld
    2. [root@localhost mysql]# chkconfig mysqld on
    3. [root@localhost mysql]# chkconfig --list mysqld

     

    配置mysql命令的全局使用路径,命令如下:

    1. [root@localhost mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
    2. [root@localhost mysql]# which mysqladmin
    3. /usr/local/bin/mysqladmin

     

    登陆MySQL测试,命令如下

  6.  

 

MySQL安全配置

[root@localhost mysql]# mysqladmin -u root password '123123'

 

 

查看mysql ngnix 开启情况:

 

ss -antup | grep -E "80|3306"

测试访问Nginx及MySQL是否OK,命令如下:

[root@localhost ~]# wget 127.0.0.1

[root@localhost ~]# mysql -uroot -p    #测试MySQL

检查安装PHP所需的lib库

  1. [root@localhost ~]# yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
  2. [root@localhost ~]# yum -y install freetype-devel libpng-devel gd libcurl-devel libxslt-devel

 

安装yum无法安装的libiconv

[root@localhost ~]# tar xf libiconv-1.14.tar.gz -C /usr/src/

 

cd /usr/src/libiconv-1.14/

./configure --prefix=/usr/local/libiconv && make && make install

 

安装libmcrypt

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

yum -y install libmcrypt-devel

安装mhash加密扩展库

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

yum -y install mhash

安装mcrvpt加密扩展库

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

yum -y install mcrypt

获取PHP软件包

wget http://cn2.php.net/distributions/php-5.3.28.tar.gz

 

解压配置PHP

tar xf php-5.3.28.tar.gz -C /usr/src/

cd /usr/src/php-5.3.28/

./configure --prefix=/usr/local/php5.3.28 --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp

最后的正确输出提示为:Thank you for using PHP.

 

 

编译详解

 

  1. --prefix=/usr/local/php5.2.28
  2. 表示指定PHP的安装路径为/usr/local/php5.3.28
  3. --with-mysql=/usr/local/mysql
  4. 表示需要指定MySQL的安装路径,安装PHP需要的MySQL相关内容。当然,如果没有MySQL软件包,也可以不单独安装,这样的情况可使用--with-mysql=mysqlnd替代--with-mysql=/usr/local/mysql,因为PHP软件里已经自带了连接MySQL的客户端工具。
  5. --with-fpm-user=www
  6. nginx表示指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一
  7. --with-fpm-group=www
  8. 表示指定PHP-FPM进程管理的组为www,此处最好与Nginx服务用户组统一。
  9. --enable-fpm
  10. 表示激活PHP-FPM方式服务,即以FastCGIF方式运行PHP服务。

 

编译PHP

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64

touch ext/phar/phar.phar

Make

make最后的正确提示

Build complete. 
Don't forget to run 'make test'.

安装PHP生成文件到系统

make install

 

设置软链接

ln -s /usr/local/php5.3.28/ /usr/local/php

 

 

PHP配置默认模版文件

生产环境:php.ini-development 开发环境:php.ini-production

开发环境更多的是开启日志,调试信息,而生产环境都是关闭状态

cd /usr/src/php-5.3.28

cp php.ini-production /usr/local/php/lib/php.ini

cd /usr/local/php/etc/

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

关于php-fpm.conf,暂时可用默认的配置,先把服务搭好,以后再进行优化。

分离式部署特别提示

[root@localhost etc]# vim php-fpm.conf

listen = 127.0.0.1:9000 --->如何要分离式部署,需要把本地IP改成远程IP

 

 


启动PHP服务

/usr/local/php/sbin/php-fpm

ss -antup | grep 9000

修改Nginx配置文件

cd /usr/local/nginx

vim conf/nginx.conf

配置文件如下:

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  blog.yunjisuan.com;

        location / {

            root   html/blog;

            index  ald.html index.htm;

        }

 

        location ~ .*\.(php|php5)?$ {

             root html/blog;

       fastcgi_pass 127.0.0.1:9000;

       fastcgi_index index.php;

       include fastcgi.conf;

        }

    }

}

 

检查配置文件nginx,conf有无问题:

 /usr/local/nginx/sbin/nginx  -t

检查ngnix,conf 是否启动:

ss -antup | grep 80

 

 

创建网页目录

cd /usr/local/nginx/html/

mkdir blog

针对静态网页测试

Cd blog

echo "`hostname -I` blog.yunjisuan.com" > index.html

echo "old" > index.html

注意主机映射

curl 测试如下:

针对动态网页测试

[root@localhost html]# echo "<? php phpinfo(): ?>" >  test_info.php

添加windows映射并测试动态

C:\Windows\System32\drivers\etc --->windows映射文件位置

192.168.200.150  blog.yunjisuan.com

 

 

在浏览器输入blog.yunjisuan.com/test_info.php

针对MySQL测试

cd blog

vim test_mysql.php

 

  1. <?php
  2. $link_id=mysql_connect('localhost','root','linyaonie');
  3. if($link_id){
  4. echo "mysql successful by Mr.sl !\n";
  5. }else{
  6. echo mysql_error();
  7. }
  8. ?>
  9.  

    PHP命令测试

    如果没有PHP命令就是没做软链接

    ln -s /usr/local/php/bin/* /usr/local/bin

    编辑test_mysql.php,加入如下内容:

    [root@localhost blogcom]# vim test_mysql.php

    <?php

        //$link_id=mysql_connect('主机名','用户','密码');

            $link_id=mysql_connect('localhost','root','123123');

        if($link_id){

            echo "mysql successful by liuwei !";

        }else{

            echo mysql_error();

        }

    ?>

     

    虚拟机测试:php test_mysql.php

  10. 浏览器测试:http://blog.yunjisuan.com/test_mysql.php

     

    部署一个blog程序服务

     WordPress 博客程序的搭建准备

    1)MySQL数据库配置准备

    [root@localhost blog]# mysql -uroot -p

    2)创建一个专用的数据库WordPress,用于存放blog数据,操作如下:

    mysql> create database wordpress;

  11. mysql> show databases like 'wordpress';

  12. 3)创建一个专用的WordPress blog管理用户,命令如下:

    mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123123';                    #localhost为客户端地址

  13.  

    mysql> show grants for wordpress@'localhost';   #查看用户对应权限

    mysql> select user,host from mysql.user;        #查看数据库里创建的wordpress用户

  14. 2)Nginx及PHP环境配置准备

    1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机,命令如下:

    [root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf

    worker_processes  1;

    events {

        worker_connections  1024;

    }

    http {

        include       mime.types;

        default_type  application/octet-stream;

        sendfile        on;

        keepalive_timeout  65;

        server {

            listen       80;

            server_name  blog.yunjisuan.com;

            location / {

                root   html/blog;

                index  index.html index.htm;

            }

            location ~ .*\.(php|php5)?$ {

                 root html/blog;

           fastcgi_pass 127.0.0.1:9000;

           fastcgi_index index.php;

           include fastcgi.conf;

            }

        }

    2)获取WordPress博客程序,并放置到blog域名对应虚拟主机的站点目录下,

    Cd /usr/local/nginx/html/blog/

    Ls

    2)Nginx及PHP环境配置准备

    1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机,命令如下:

    [root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf

    worker_processes  1;

    events {

        worker_connections  1024;

    }

    http {

        include       mime.types;

        default_type  application/octet-stream;

        sendfile        on;

        keepalive_timeout  65;

        server {

            listen       80;

            server_name  blog.yunjisuan.com;

            location / {

                root   html/blog;

                index  index.html index.htm;

            }

            location ~ .*\.(php|php5)?$ {

                 root html/blog;

           fastcgi_pass 127.0.0.1:9000;

           fastcgi_index index.php;

           include fastcgi.conf;

            }

        }

    2)获取WordPress博客程序,并放置到blog域名对应虚拟主机的站点目录下,

    Cd /usr/local/nginx/html/blog/

    Ls

  15. [root@localhost blog]# tar xf wordpress-4.7.4-zh_CN.tar.gz #解压

  16. [root@lnmp blog]# mv *.html /tmp

    [root@lnmp blog]# mv *.php /tmp

  17. [root@lnmp blog]# mv wordpress/* .

    [root@lnmp blog]# /bin/mv wordpress-4.7.4-zh_CN.tar.gz /root/ #移走源程序

    [root@lnmp blog]# chown -R www.www ../blog/

     

     

    2)Nginx及PHP环境配置准备

    1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机,命令如下:

    worker_processes  1;

    events {

        worker_connections  1024;

    }

    http {

        include       mime.types;

        default_type  application/octet-stream;

        sendfile        on;

        keepalive_timeout  65;

        server {

            listen       80;

            server_name  blog.yunjisuan.com;

            location / {

                root   html/blog;

                index  index.html index.htm index.php; #index.php新加的

            }

     

            location ~ .*\.(php|php5)?$ {

                 root html/blog;

           fastcgi_pass 127.0.0.1:9000;

           fastcgi_index index.php;

           include fastcgi.conf;

            }

        }

    }

    最后输入域名出现

  18.  

posted on 2018-11-09 16:59  志气飞扬  阅读(263)  评论(0)    收藏  举报