zoukankan      html  css  js  c++  java
  • LNMP

    一. 安装nginx服务

    1. 进行nginx软件下载

    cd   /opt

    wget http://nginx.org/download/nginx-1.12.2.tar.gz

    2.安装依赖软件

    yum install -y pcre-devel openssl-devel

    3.解压软件,创建虚拟用户,进行编译安装

    命令:(解压)tar xf nginx-1.12.2.tar.gz

    命令:(检查)ll  /server/tools

    drwxr-xr-x 8 1001 1001   4096 Oct 17 21:16 nginx-1.12.2

    -rw-r--r-- 1 root root 981687 Oct 17 21:20 nginx-1.12.2.tar.gz

    命令:(切换)cd nginx-1.12.2/

    命令:(查看路径)pwd

    /opt/nginx-1.12.2

    4.创建nginx管理用户

    命令:(创建虚拟管理用户)useradd -s /sbin/nologin -M www

    5.创建nginx命令安装的所在地

    命令:(创建)mkdir  -p /application/nginx-1.12.2/

    6.进行指定nginx安装参数

    ./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

    配置参数说明:

    --prefix=PATH                      set installation prefix

                                          指定软件程序安装的路径信息

    --user=USER                        set non-privileged user for

                                        worker processes

                                       创建一个虚拟用户,用于管理nginx服务的worker进程

    --group=GROUP                      set non-privileged group for

                                          worker processes

                                    创建一个虚拟用户组,用于管理nginx服务的worker进程

    --with-http_ssl_module             enable ngx_http_ssl_module

                           让nginx服务可以支持https访问

    --with-http_stub_status_module     enable ngx_http_stub_status_module

                           便于监控软件监视nginx服务运行状态

    说明:编译过程实质是将各种程序语言转换为系统可以识别的二进制信息

    7.进行编译

    把代码---->二进制

    make

    8.编译安装

    make install

    9.创建程序目录软链接文件

    cd   /application/  &&  ln -s /application/nginx-1.12.2/ /application/nginx

    ll /application/

    total 4

    lrwxrwxrwx 1 root root   26 Feb  2 17:14 nginx -> /application/nginx-1.12.2/

    drwxr-xr-x 6 root root 4096 Feb  2 17:13 nginx-1.12.2

    10.网站服务启动成功

    /application/nginx/sbin/nginx   

    加入开机自启

    echo 'export PATH=$PATH:/application/nginx/sbin' >>/etc/profile

     source /etc/profile

    11.:检查测试

    进程检查:

    ps -ef |grep nginx

    root       6948      1  0 17:17 ?        00:00:00 nginx: master process /application/nginx/sbin/nginx

    www        6949   6948  0 17:17 ?          00:00:00 nginx: worker process       

    root       6951   1279  0 17:17 pts/1        00:00:00 grep nginx     

    说明:master进程表示nginx主进程,负责nginx服务的启动 停止等操作

     worker进程表示真正处理用户请求的进程

    检查80端口是否开启

    netstat -lntup|grep nginx

    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      12684/nginx 

    12.检查nginx软件是否安装成功

    windows   192.168.198.137

    欢迎使用nginx的界面

    13.基于域名的虚拟主机配置

    pwd

    /application/nginx/conf

    进行nginx的配置文件的备份

    cp nginx.conf{,.bak}

    进行nginx的配置文件的简化

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

    =========(配置nginx配置文件)===========

    vim  nginx.conf (配置nginx的配置文件的主配置文件)

    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  www.huchangxi.com;

            root   html/blog;

            index  index.html index.htm;

        }

    }

    14.网站目录和文件环境准备

    创建站点目录:

    mkdir  -p  /application/nginx/html/blog

    输入静态文字:

    touch /application/nginx/html/blog/index.html 

    vim /application/nginx/html/blog/index.html 

    192.168.198.137  web www.dada.com

    检查:                 

    cat /application/nginx/html/blog/index.html 

    192.168.198.137 web www.dada.com

    15.检查配置文件语法,进行服务重启或者启动

    /application/nginx/sbin/nginx -t                   检查语法

    nginx: the configuration file /application/nginx-1.12.2/conf/nginx.conf syntax is ok

    nginx: configuration file /application/nginx-1.12.2/conf/nginx.conf test is successful

    /application/nginx/sbin/nginx  -s reload                   

    利用curl或者浏览器进行访问测试

    需要对虚拟主机域名进行解析(编写hosts文件-linux/ windows里面hosts)

    添加blog的解析

    命令:(添加)vim   /etc/hosts   

    192.168.198.137 www.dada.com

    16.设置开机自启nginx服务

    把启动nginx的命令添加到/etc/rc.local开启自启动里

    命令:  vim  /etc/rc.local

    /application/nginx/sbin/nginx

    进行文件授权

    chmod  +x  /etc/rc.local

    二.安装MySQL服务

    1.进行编译下载MySQL软件

    把安装包上传到/opt目录中

    2.解压软件程序

    cd  /opt

    tar  xf  mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

    ll 

    drwxr-xr-x 13 root root      4096 Feb  7 15:19 mysql-5.6.34-linux-glibc2.5-x86_64

    -rw-r--r-- 1 root root 314149697 Mar 23  2017 mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

    3:将解压后的程序目录移动到/application/目录中,创建软连接

    cp  -r  mysql-5.6.34-linux-glibc2.5-x86_64 /application/

    mv  /application/ mysql-5.6.34-linux-glibc2.5-x86_64      /application/ mysql-5.6.34       

    创软连接

    ln -s /application/mysql-5.6.34/ /application/mysql

    ll /application/

    lrwxrwxrwx  1 root root   48 Feb  6 20:18 mysql -> /application/mysql-5.6.34-linux-glibc2.5-x86_64/

    drwxr-xr-x 13 root root 4096 Feb  6 20:18 mysql-5.6.34-linux-glibc2.5-x86_64

    4.创建数据目录管理用户

    useradd -M -s /sbin/nologin mysql

    进行数据目录授权

    chown -R mysql.mysql /application/mysql/data/

    5.初始化数据库程序

    1. 确认软件安装在哪里

    2. 确认数据存放在哪里

    3. 确认MySQL使用的用户谁?(/server/scripts)

    初始化

    /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

    6.复制启动脚本,并且进行授权

    cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld

    进行添加执行权限

    chmod +x /etc/init.d/mysqld

    7.修改启动脚本 和 mysql命令中的路径

    sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

    8.复制默认的配置文件

    进行添加配置文件

    cp /application/mysql/support-files/my-default.cnf /etc/my.cnf

    9.启动mysql服务并添加mysql的命令的绝对路径

    /etc/init.d/mysqld start

    添加路径

    echo  "export PATH=/application/mysql/bin:$PATH" >>/etc/profile

    生效

    source   /etc/profile

    10.给数据库设置一个密码(在mysql启动后配置)

    /application/mysql/bin/mysqladmin -u root password 'password'

    11.进入数据库

    mysql  -uroot  -p1234356

    Warning: Using a password on the command line interface can be insecure.

    Welcome to the MySQL monitor.  Commands end with ; or g.

    Your MySQL connection id is 16

    Server version: 5.6.34 MySQL Community Server (GPL)

    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its

    affiliates. Other names may be trademarks of their respective

    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql>

    12.添加mysql服务开机自启

    因为mysql的配置文件已经放到/etc/init.d/目录下了,并且经过了授权

    命令:(让chkconfig管理)chkconfig --add mysqld

    命令:(设置mysql开机自启)chkconfig mysqld on

    数据库的基本操作

    show databases;                <--- 查询默认的数据库信息

    create database oldboy;        <---创建新的数据库

    drop database oldboy;          <---删除存在的数据库

    use mysql;                     <--- 表示选择使用一个数据库,相当于cd进入一个数据库

    show tables;                  <---查看数据库中表信息

    select database();             <--- 表示查看当前所在数据库,类似于pwd命令的功能

    select user();                 <--- 查看当前登录数据库的用户,类似于whoami命令

                                        并且mysql还可以限制指定用户可以从哪里进行连接登录数据库

    select * from userG;          <---查看user表中所有信息,并且纵行显示

    select user,host from user;         ---查看user表中指定信息,并且横行显示

    select user,host from mysql.user;   ---查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库

    grant all on *.* to user@'host' identified by 'oldboy123';           ---创建用户

    grant all on *.* to Old_Boy@'localhost' identified by 'oldboy123';   ---创建用户(大写用户)

    drop user 'user'@'host';

    flush privileges;                  --- 刷新权限

    三.安装PHP

    1.进行编译下载到/server/tools/目录中

    上传到/opt目录中

    2.安装PHP软件的依赖关系

    yum  install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

    rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

    3.libiconv软件安装---字符集转换库(默认可以不进行安装了)

    cd  /opt

    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

    tar zxf libiconv-1.14.tar.gz

    cd /opt/libiconv-1.14

    /opt/libiconv-1.14/configure --prefix=/usr/local/libiconv

    Make(会有报错,详细看我的另一个博客:https://www.cnblogs.com/A121/p/10069601.html)

    make install

    cd   /opt/

    yum  install libmcrypt-devel mhash mcrypt   -y

    rpm -qa libmcrypt-devel mhash mcrypt

    4.下载解压PHP软件

    cd /opt/

    tar xf php-5.5.32.tar.gz

    cd /opt/php-5.5.32

    命令:(进行配置)

    ./configure
    --prefix=/application/php-5.5.32
    --with-mysql=mysqlnd
    --with-pdo-mysql=mysqlnd
    --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-bcmath
    --enable-shmop
    --enable-sysvsem
    --enable-inline-optimization
    --with-curl
    --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-soap
    --enable-short-tags
    --enable-static
    --with-xsl
    --with-fpm-user=www
    --with-fpm-group=www
    --enable-ftp
    --enable-opcache=no

    注:说明:LNMP架构部署时,如果mysql服务和web服务不在一台主机上,php配置参数需要进行调整

                  --with-mysql=/application/mysql/  =>  --with-mysql=mysqlnd

    ===========================================================

    PHP扩展参数:(配置没有问题可以省略以下配置参数,以下参数和PHP优化有关)

                  --with-curlwrappers

            --enable-zip

            --enable-zend-multibyte

    怕出错(防错)(以下信息可以不进行配置了)

    命令:(创建软连接)ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/

    命令:(创建文件)touch ext/phar/phar.phar

    命令:(进行翻译php)make

    命令:(进行编译安装php)make install

    PHP软件程序创建软链接

    命令:(进行移动)cp -r /opt/php-5.5.32  /application/

    命令:(创建软连接)ln -s /application/php-5.5.32/ /application/php

    配置php解析文件/配置php-fpm配置文件

    命令:(切换)cd /opt/php-5.5.32

    命令:(查看)ll php.ini*

    -rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development

    -rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production

    (php.ini-developments是开发人员调试用配置文件,php.ini-production是生产常见所有配置文件)

    命令:(复制)cp php.ini-production /application/php/lib/php.ini

    php.ini-production 与 php.ini-development 文件区别关系对比

    扩展:文件比较命令 diff zdiff vimdiff windows上的文件比较

    命令:(切换)cd /application/php/etc/

    命令:(切换)cp php-fpm.conf.default php-fpm.conf

    (以下内容看情况)

    # 编译安装PHP时,若配置未正确指定PHP进程用户信息,可以修改PHP文件进行调整

    sed -i 's#user = www#user = nginx#g;s#group = www#group = nginx#g' /application/php-5.5.32/etc/php-fpm.conf

    启动php-fpm程序

    命令:(启动)/application/php/sbin/php-fpm     

    命令:(进行检查端口)lsof -i :9000                    <--- 确认php 9000端口是否正确

    LNMP架构环境部署完成

    四.wordpress博客站点部署配置

    1.nginx与php建立连接

    vim /application/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;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    server {
    listen 80;
    server_name blog.etiantian.org;
    root html/blog;
    index index.php index.html index.htm;
    access_log logs/access.log main;
    location ~ .*.(php|php5)?$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    }

    }
    }

    注:上面的配置文件可以修改

    index  index.html index.htm;     <-- 需要注意编辑修改默认首页文件  index  index.php index.html index.htm;

    编辑nginx与php连通性测试文件,并进行测试

    cd /application/nginx/html/blog/

    echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

    测试站点

    curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

    curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

    说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

    linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

    编辑php与mysql连通性测试文件,并进行测试

    cd /application/nginx/html/blog/

    echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

    测试站点

    curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

    curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

    说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

    linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

    注:上面的配置文件可以修改

    index  index.html index.htm;     <-- 需要注意编辑修改默认首页文件  index  index.php index.html index.htm;

    编辑nginx与php连通性测试文件,并进行测试

    cd /application/nginx/html/blog/

    echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

    测试站点

    curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

    curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

    说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

    linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

    编辑php与mysql连通性测试文件,并进行测试

    cd /application/nginx/html/blog/

    echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

    测试站点

    curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

    curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

    说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

    linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

    下载部署wordpress博客程序

    下载部署wordpress博客程序(https://cn.wordpress.org/   英文官网:https://www.wordpress.org/ )

     wget https://cn.wordpress.org/wordpress-4.5.1-zh_CN.tar.gz

    tar xf wordpress-4.5.1-zh_CN.tar.gz              解压

    mv wordpress/*  /application/nginx/html/blog/    移动

     chown -R www.www /application/nginx/html/blog/  授权

    注意:确认hosts文件进行了解析

    浏览器页面进行wordpress部署      

    浏览器页面进行wordpress部署:http://blog.etiantian.org/

    登录主页面点击直接就可以生成wp-config.php配置文件

    vim wp-config.php  可以修改wordpress上的数据库连接参数信息  

    编辑php与mysql连通性测试文件,并进行测试

    创建数据库

    命令:(进入mysql)mysql -uroot -p123456;

    命令:(查看当前的mysql信息)show databases;                      <--- 查看当前数据库信息

    命令:(创建库)create database wordpress;

    添加用户信息

    grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';  授权本地

    grant all on wordpress.* to 'wordpress'@'172.16.1.0/255.255.255.0' identified by 'oldboy123';  授权远程

    flush privileges;

    drop user wordpress@'172.16.1.8';    <--- 删除用户信息

    select user,host from mysql.user;    <--- 查看用户信息

    mysql -uwordpress -p123456           <--- 测试创建的用户连接

    show databases;                      <--- 查看当前数据库信息

    delete from mysql.user where user='wordpress' and host='localhost';  删除用户信息          

    利用mysql命令进行指定用户登录测试

    /application/mysql/bin/mysql -uwordpress -poldboy123       绝对路径登录MySQL数据库

    测试php与mysql数据库连通性

    # cd  /application/nginx-1.12.2/html/blog

     vim test_mysql.php

    <?php

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

    //mysql -u用户 -p密码 -h 主机

    $link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();

    if($link_id){

                 echo "mysql successful by oldboy ! ";

                }else{

                 echo mysql_error();

                }

    ?>

    测试:

    curl blog.etiantian.org/test_mysql.php       <-- 测试php与数据库的连通性            

    五。搭建网站流程:

    blog

    1.要有网站代码(向开发人员要)

    博客软件见压缩包

    tar xf wordpress-4.7.3-zh_CN.tar.gz

    2.进入到代码程序目录中,将代码信息移动到站点目录下

    mv ./* /application/nginx/html/blog/

    3.修改站点目录权限

    chown -R www.www /application/nginx/html/blog/

    4.进行网站初始化

    create database wordpress;

    grant all on wordpress.* to 'wordpress'@'192.168.198.%' identified by '123456';

    grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';

    flush privileges;

  • 相关阅读:
    Effective Java 第三版——72. 赞成使用标准异常
    Effective Java 第三版——71. 避免不必要地使用检查异常
    Effective Java 第三版——70. 对可恢复条件使用检查异常,对编程错误使用运行时异常
    Effective Java 第三版——69. 仅在发生异常的条件下使用异常
    Effective Java 第三版——68. 遵守普遍接受的命名约定
    Effective Java 第三版——67. 明智谨慎地进行优化
    Effective Java 第三版——66. 明智谨慎地使用本地方法
    Effective Java 第三版——65. 接口优于反射
    Effective Java 第三版——64. 通过对象的接口引用对象
    Effective Java 第三版——63. 注意字符串连接的性能
  • 原文地址:https://www.cnblogs.com/A121/p/10083946.html
Copyright © 2011-2022 走看看