zoukankan      html  css  js  c++  java
  • LNMP-day1-安装并配置


    Nginx安装

    #Nginx
    [root@localhost downloads]# pwd
    /root/downloads
    #安装依赖pcre
    [root@localhost downloads]# wget https://ftp.pcre.org/pub/pcre/pcre-8.30.tar.gz --no-check-certificate
    [root@localhost downloads]# tar zxf pcre-8.30.tar.gz 
    [root@localhost downloads]# cd pcre-8.30
    [root@localhost pcre-8.30]# ./configure 
    [root@localhost pcre-8.30]# make && make install
    #安装nginx
    [root@localhost downloads]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
    [root@localhost downloads]# tar zxf nginx-1.12.2.tar.gz 
    [root@localhost downloads]# cd nginx-1.12.2
    [root@localhost nginx-1.12.2]# useradd nginx -s /sbin/nologin -M
    [root@localhost nginx-1.12.2]# yum -y install openssl*
    [root@localhost nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    [root@localhost nginx-1.12.2]# make && make install
    
    [root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx -t #查看语法是否正确
    /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: 
    cannot open shared object file: No such file or directory
    [root@localhost nginx-1.12.2]# find / -name "libpcre.so.1"
    /usr/local/lib/libpcre.so.1
    /root/downloads/pcre-8.30/.libs/libpcre.so.1
    [root@localhost nginx-1.12.2]# cat /etc/ld.so.conf
    include ld.so.conf.d/*.conf
    /usr/local/lib   #加入
    [root@localhost nginx-1.12.2]# ldconfig  #修改生效
    [root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    
    [root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx #启动
    [root@localhost nginx-1.12.2]# lsof -i :80
    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    nginx   37289  root    6u  IPv4  80050      0t0  TCP *:http (LISTEN)
    nginx   37290 nginx    6u  IPv4  80050      0t0  TCP *:http (LISTEN)
    

      

    Mysql安装

    #Mysql单实例安装
    #准备工作
    [root@localhost downloads]# groupadd mysql #创建组
    [root@localhost downloads]# useradd -s /sbin/nologin mysql -g mysql -M #创建用户
    [root@localhost downloads]# wget https://downloads.mysql.com/archives/get/file/mysql-5.5.32.tar.gz --no-check-certificate #下载mysql包
    [root@localhost mysql-5.5.32]# yum -y install ncurses-devel ncurses #安装依赖
    
    #开始安装
    [root@localhost mysql-5.5.32]# cmake ./ #检查编译环境
    [root@localhost mysql-5.5.32]# make #编译
    [root@localhost mysql-5.5.32]# make install  #安装
    
    #初始化和配置数据库
    [root@localhost mysql-5.5.32]# cd /usr/local/mysql/
    [root@localhost mysql]# chown -R mysql:mysql .
    [root@localhost mysql]# scripts/mysql_install_db --user=mysql #初始化数据库
    [root@localhost mysql]# chown -R mysql:mysql ./data/
    [root@localhost mysql]# chmod -R ug+rws . 
    [root@localhost mysql]# chown -R mysql /var/run/mysqld
    
    #配置数据库
    [root@localhost mysql]# cat /etc/my.cnf 
    ##
    [mysqld]
    port = 3306
    socket = /tmp/mysql.sock
    skip-external-locking
    key_buffer_size = 16M
    max_allowed_packet = 1M
    table_open_cache = 64
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M
    user=mysql
    datadir=/var/lib/mysql
    default-storage-engine=MyISAM
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    ##
    [root@localhost mysql]# bin/mysqld_safe --user=mysql & #启动数据库
    [root@localhost mysql]# ls /var/lib/mysql/
    ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test
    
    [root@localhost mysql]# bin/mysqladmin -uroot password 1123.com #修改root密码
    [root@localhost mysql]# bin/mysql -uroot -p #访问数据库
    [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld  #配置server启动脚本
    [root@localhost mysql]# service mysqld start
    Starting MySQL                                             [确定]
    #启动成功
    

      

    Mysql基础命令

    mysql> select user,host from mysql.user;
    #查看用户
    
    mysql> select user,host from mysql.userG; 
    *************************** 1. row ***************************
    user: root
    host: 127.0.0.1
    *************************** 2. row ***************************
    user: root
    host: ::1
    *************************** 3. row ***************************
    user: 
    host: localhost
    *************************** 4. row ***************************
    user: root
    host: localhost
    4 rows in set (0.00 sec)
    #竖着显示
    
    mysql> help drop 
    Many help items for your request exist.
    To make a more specific request, please type 'help <item>',
    where <item> is one of the following
    topics:
       ALTER TABLE
       ALTER TABLESPACE
       DEALLOCATE PREPARE
       DROP DATABASE
       DROP EVENT
       DROP FUNCTION
       DROP FUNCTION UDF
       DROP INDEX
       DROP LOGFILE GROUP
       DROP PROCEDURE
       DROP SERVER
       DROP TABLE
       DROP TABLESPACE
       DROP TRIGGER
       DROP USER
       DROP VIEW
    #寻求drop命令提示帮助
    
    mysql> drop user ''@'localhost';
    Query OK, 0 rows affected (0.06 sec)
    
    mysql> select user,host from mysql.user;
    +------+-----------+
    | user | host      |
    +------+-----------+
    | root | 127.0.0.1 |
    | root | ::1       |
    | root | localhost |
    +------+-----------+
    3 rows in set (0.00 sec)
    #删除用户并且查看
    
    #因为大写的'host'删不掉,所以我们可以用一下办法
    mysql> delete from mysql.user where user='' and host='MASTER'; #删除来自mysql.user表中的user=''和host='MASTER'
    Query OK, 0 rows affected (0.00 sec)
    

      

    PHP安装

    #安装依赖库
    [root@localhost mysql]# yum -y install zlib libxml* libjpeg freetype libpng gd curl  zlib-devel libxml2-devel libjpeg-devel freetype-devel gd-devel curl-devel openldap openldap-devel
    [root@localhost php-5.6.33]# cp -frp /usr/lib64/libldap* /usr/lib/
    
    #安装libiconv库
    [root@localhost downloads]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
    [root@localhost downloads]# tar zxf libiconv-1.14.tar.gz 
    [root@localhost downloads]# cd libiconv-1.14
    [root@localhost libiconv-1.14]# ./configure --prefix=/usr/local/libconv
    [root@localhost libiconv-1.14]# make && make install
    
    #安装libmcrypt库
    [root@localhost downloads]# wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download --no-check-certificate
    [root@localhost downloads]# tar zxf libmcrypt-2.5.8.tar.gz 
    [root@localhost downloads]# cd libmcrypt-2.5.8
    [root@localhost libmcrypt-2.5.8]# ./configure
    [root@localhost libmcrypt-2.5.8]# make && make install
    [root@localhost libmcrypt-2.5.8]# ldconfig
    [root@localhost libmcrypt-2.5.8]# cd libltdl/
    [root@localhost libltdl]# ./configure --enable-ltdl-install
    [root@localhost libltdl]# make && make install
    [root@localhost libltdl]# cd ../..
    
    #安装mhash加密扩展库
    [root@localhost downloads]# wget https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download --no-check-certificate
    [root@localhost downloads]# tar zxf mhash-0.9.9.9.tar.gz 
    [root@localhost downloads]# cd mhash-0.9.9.9
    [root@localhost mhash-0.9.9.9]# ./configure 
    [root@localhost mhash-0.9.9.9]# make && make install
    [root@localhost mhash-0.9.9.9]# rm -rf /usr/lib/libmcrypt*
    [root@localhost mhash-0.9.9.9]# rm -rf /usr/lib/libmhash*
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmcrypt.la /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmcrypt.so /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.a  /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.la  /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.so  /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.so.2  /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.so.2.0.1  /usr/lib/
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/bin/libmcrypt-config  /usr/bin/
    [root@localhost mhash-0.9.9.9]# cd ..
    
    #安装mcrypt加密扩展库
    [root@localhost downloads]# wget https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download --no-check-certificate
    [root@localhost downloads]# tar zxf mcrypt-2.6.8.tar.gz 
    [root@localhost downloads]# cd mcrypt-2.6.8
    [root@localhost mcrypt-2.6.8]# ldconfig 
    [root@localhost mcrypt-2.6.8]# ./configure 
    [root@localhost mcrypt-2.6.8]# make && make install
    [root@localhost downloads]# cd ..
    
    #安装PHP
    [root@localhost downloads]# wget http://cn2.php.net/get/php-5.6.33.tar.gz/from/this/mirror
    [root@localhost downloads]# tar zxf php-5.6.33.tar.gz 
    [root@localhost downloads]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
    [root@localhost downloads]# ldconfig -v
    [root@localhost downloads]# cd php-5.6.33
    [root@locahost php-5.6.33]# yum -y install libxslt libxslt-devel
    [root@locahost php-5.6.33]# ./configure --prefix=/usr/local/php5.6.33 --with-mysql=/usr/local/mysql/ --with-iconv-dir=/usr/local/libconv/ --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-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --enable-short-tags  --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp
    [root@locahost php-5.6.33]# make && make install
    

      

    配置PHP

    [root@locahost php-5.6.33]# vimdiff php.ini-development php.ini-production
    #查看不同
    
    php.ini-development #开发版
    php.ini-production  #生产环境
    
    #配置
    [root@locahost php-5.6.33]# cp php.ini-production /usr/local/php5.6.33/etc/php.ini
    [root@locahost php-5.6.33]# ln -s /usr/local/php5.6.33/etc/php.ini /etc/
    [root@locahost php-5.6.33]# cd /usr/local/php5.6.33/
    [root@locahost php5.6.33]# cp etc/php-fpm.conf.default etc/php-fpm.conf
    
    #配置php-fpm.conf
    #;pid = run/php-fpm.pid
    pid = pid = /var/run/php-fpm.pid
    #;error_log = log/php-fpm.log
    error_log = /var/log/php-fpm.log
    #;log_level = notice
    log_level = error
    #;rlimit_files = 1024
    rlimit_files = 32768        #文件描述符
    #;listen.owner = nginx   #监听的用户
    listen.owner = nginx 
    #;listen.group = nginx    #监听的组
    listen.group = nginx
    #pm.max_children = 5   #最大的进程数
    pm.max_children = 1024
    #pm.start_servers = 2    
    pm.start_servers = 16
    #pm.min_spare_servers = 1 #最小空闲
    pm.min_spare_servers = 5
    #pm.max_spare_servers = 3   #最大空闲
    pm.max_spare_servers = 20
    #;pm.process_idle_timeout = 10s;   #空闲超时
    pm.process_idle_timeout = 10s;
    #;pm.max_requests =500    #最大请求数
    pm.max_requests = 2048
    slowlog = log/$pool.log.slow
    #;request_slowlog_timeout = 0
    request_slowlog_timeout = 10
    
    [root@locahost php5.6.33]# mkdir log
    [root@locahost php5.6.33]# sbin/php-fpm -t
    [root@locahost php5.6.33]# sbin/php-fpm
    [root@locahost php5.6.33]# cp sbin/php-fpm /etc/init.d/
    
    #修改etc/php.ini
    找到:;date.timezone =
    
    修改为:date.timezone = PRC #设置时区
    
    找到:expose_php = On
    
    修改为:expose_php = Off #禁止显示php版本的信息
    
    找到:short_open_tag = Off
    
    修改为:short_open_tag = ON #支持php短标签
    
    找到opcache.enable=0
    
    修改为opcache.enable=1 #php支持opcode缓存
    
    找到:;opcache.enable_cli=1 #php支持opcode缓存
    
    修改为:opcache.enable_cli=0
    
    在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
    

    配置并优化nginx配置文件

    #配置nginx.conf使其支持php
    [root@locahost nginx]# pwd
    /usr/local/nginx/
    
    #nginx.conf
    ##############################################
    user  nginx nginx;
    worker_processes  8;
    
    error_log  /var/log/nginx/nginx_error.log crit;
    pid        /var/run/nginx.pid;
    worker_rlimit_nofile 65535;
    
    events {
        use epoll;
        worker_connections  65535;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  logs/access.log  main;
        sendfile        on;
        tcp_nopush     on;
        keepalive_timeout  60;
        tcp_nodelay on;
    
        fastcgi_connect_timeout    300;
        fastcgi_send_timeout    300;
        fastcgi_read_timeout    300;
        fastcgi_buffer_size    64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 128k;
    
        gzip on;
        gzip_min_length  1k;
        gzip_buffers 4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types  text/plain  application/x-javascript  text/css  application/xml;
        gzip_vary  on;
    
        include extra/www.conf;
        include extra/blog.conf;
    }
    ##############################################
    
    [root@locahost nginx]# mkdir conf/extra/
    [root@locahost nginx]# touch conf/extra/www.conf conf/extra/blog.conf
    [root@locahost nginx]# mkdir /var/log/nginx/
    
    #www.conf
    ##############################################
    server {
        listen 80;
        server_name    www.daniel.org;
        index index.html    index.php index.htm;
        root    /var/www/html/www/;
        location ~.*.(php|php5)?$ {
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index    index.php;
            include    fastcgi.conf;
        }
        location ~.*.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires    365d;
        }
        location ~.*.(js|css)?$ {
            expires    365d;
        }   
        access_log  /var/log/nginx/www_access.log   main;
        error_log    /var/log/nginx/www_error.log   error;
    }
    ##############################################
    
    #blog.conf
    ##############################################
    server {
        listen    80;
        server_name    blog.daniel.org;
        index    index.html index.php index.htm;
        root    /var/www/html/blog/;
        location ~.*.(php|php5)?$ {
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index    index.php;
            include    fastcgi.conf;
        }
        location ~.*.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires    365d;
        }
        location ~.*.(js|css)?$ {
            expires    365d;
        }
        access_log  /var/log/nginx/blog_access.log   main;
        error_log    /var/log/nginx/blog_error.log   error;
    }
    ##############################################
    
    [root@locahost nginx]# mkdir /var/www/html/www /var/www/html/blog
    #启动nginx
    

      

    测试连接mysql和php  

    [root@locahost local]# cat /var/www/html/www/index.php 
    <?php
    	$link_id=mysql_connect('localhost','root','1123.com') or mysql_error();
    	if ($link_id) {
    	    echo "mysql is ok!!";
    	}else{
    	    echo mysql_error();
    	}
    ?>
    

      

     提示:LNMP系列是在一起的,前三章看完后再删掉所有的东西


  • 相关阅读:
    设计模式(二十)---迭代器模式
    设计模式(十九)---观察者模式
    设计模式(十八)---模板方法模式
    设计模式(十七)---策略模式
    ElasticSearch 安装
    MongoDB进击 Linux单机安装
    List集合去除重复对象。。。记录一下
    Springboot整合mybatisPlus实现分页
    git记录
    Springboot异常处理errorController
  • 原文地址:https://www.cnblogs.com/wazy/p/8386493.html
Copyright © 2011-2022 走看看