LNMP

LNMP

安装Nginx

[root@server6 ~]# ls
nginx-1.12.0.tar.gz
[root@server6 ~]# rpm -qa | grep mysql
mysql-libs-5.1.71-1.el6.x86_64
[root@server6 ~]# rpm -qa | grep php
[root@server6 ~]# tar zxf nginx-1.12.0.tar.gz 
[root@server6 ~]# cd nginx-1.12.0
[root@server6 nginx-1.12.0]# cd src/core/
[root@server6 core]# pwd
/root/nginx-1.12.0/src/core
[root@server6 core]# vim nginx.h    #不显示版本号
...
 14 #define NGINX_VER          "nginx"  
...
[root@server6 cc]# pwd
/root/nginx-1.12.0/auto/cc
[root@server6 cc]# vim gcc 
...
172 #CFLAGS="$CFLAGS -g"
...
[root@server6 nginx-1.12.0]# yum install gcc openssl-devel pcre-devel -y
[root@server6 nginx-1.12.0]# ./configure --prefix=/usr/local/lnmp/nginx  --with-http_ssl_module --with-http_stub_status_module      #生成Makefile文件
[root@server6 nginx-1.12.0]# make && make install
[root@server6 ~]# vim .bash_profile    #添加环境变量
...
 10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/nginx/sbin
...
[root@server6 ~]# source ~/.bash_profile 
[root@server6 ~]# which nginx
/usr/local/lnmp/nginx/sbin/nginx
[root@server6 ~]# nginx 
[root@server6 ~]# netstat -antp        #工作在:80端口上
&&netstat命令的使用:
    https://linux.cn/article-2434-1.html

[root@server6 conf]# pwd
/usr/local/lnmp/nginx/conf
&&定义访问页面
vim nginx.conf
...

***需自定义
server{
    listen 80;
    server_name www.westos.org;

    location / {
        root /web1;
        index index.html;
    }
}
.....
mkdir /web1
vim /web1/index.html

测试:
访问:www.westos.org
    要在物理机做本地解析


&&实现https访问,开启443端口
vim nginx.conf
...
    server {
        listen       443 ssl;
        server_name  www.westos.org;

        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.pem;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
...
[root@server6 conf]# cd /etc/pki/tls/certs/
[root@server6 certs]# ls
ca-bundle.crt        make-dummy-cert  renew-dummy-cert
ca-bundle.trust.crt  Makefile
[root@server6 certs]# make cert.pem
[root@server6 certs]# mv cert.pem /usr/local/lnmp/nginx/conf/

测试:
浏览器中访问:https://linux.cn/article-2434-1.html


&&添加状态页面
vim nginx.conf
.....
        location / {
            root   html;
            index  index.html index.htm;
        }

    location /status {
        stub_status on;
        access_log off;
    }
测试:
浏览器访问:http://172.25.66.1/status


&&实现反反向代理负载均衡

vim nginx.conf
.....
events {
    worker_connections  65535;
}



http {
    upstream westos {
    server 172.25.30.7:80;
    server 172.25.30.8:80;
    }

    include       mime.types;
    default_type  application/octet-stream;
....
server{
    listen 80;
    server_name www.westos.org;

    location / {
    #   root /web1;
    #   index index.html;
        proxy_pass http://westos;
    }
}

测试:
[root@foundation66 Desktop]# for i in range {1..100};do curl www.westos.org;done
实现负载均衡

&&定义算法,发布错误页面
    默认支持后端健康检查





***了解cookie和session及其应用场景
cache
参考文档:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案
cookie 和session 的区别:
    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
    2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。
    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。
    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

Cmake安装mysql

[root@server6 ~]# ls
anaconda-ks.cfg                  install.log.syslog         nginx-1.12.0.tar.gz
cmake-2.8.12.2-4.el6.x86_64.rpm  mysql-boost-5.7.11.tar.gz
install.log                      nginx-1.12.0
[root@server6 ~]# tar zxf mysql-boost-5.7.11.tar.gz 
[root@server6 ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y   #根据报错安装依赖包
[root@server6 mysql-5.7.11]# yum install ncurses-decel gcc-c++ ncurses-devel -y
[root@server6 mysql-5.7.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_READLINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all  -DWITH_BOOST=boost/boost_1_59_0/
[root@server6 mysql-5.7.11]# rm -fr CMakeCache.txt  #如果cmake编译出错,则需要执行此步骤之后继续cmake
[root@server6 mysql-5.7.11]# make 
[root@server6 mysql-5.7.11]# make install

***初始化密码
[root@server6 ~]# cd /usr/local/lnmp/mysql/support-files/
[root@server6 support-files]# cp my-default.cnf /etc/my.cnf
[root@server6 support-files]# vim /etc/my.cnf
...
 18 basedir = /usr/local/lnmp/mysql
 19 datadir = /usr/local/lnmp/mysql/data
 20 port = 3306
 21 # server_id = .....
 22 socket = /usr/local/lnmp/mysql/data/mysql.sock
...
[root@server6 support-files]# file mysql.server 
mysql.server: POSIX shell script text executable
[root@server6 support-files]# cp mysql.server /etc/init.d/mysqld
[root@server6 mysql]# pwd
/usr/local/lnmp/mysql
[root@server6 mysql]# ll
[root@server6 mysql]# groupadd -g 27 mysqld
[root@server6 mysql]# groupmod -n mysql mysqld
[root@server6 mysql]# useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/docs/ -s /sbin/nologin mysql
[root@server6 mysql]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
[root@server6 mysql]# chown mysql.mysql . -R
[root@server6 mysql]# ll
    *此时所有目录用户和组都是mysql|此时还没有data目录
[root@server6 mysql]# vim ~/.bash_profile 
.....
 10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/nginx/sbin:/usr/local/lnmp/mysql/bin
[root@server6 mysql]# source ~/.bash_profile 
[root@server6 mysql]# mysqld --initialize-insecure  #简单初始化|生成了data目录
[root@server6 mysql]# cd mysql-test/
[root@server6 mysql-test]# ls
[root@server6 mysql-test]# cd ..
[root@server6 mysql]# cd data/
[root@server6 mysql]# ll
[root@server6 mysql]# chown root.root . -R
[root@server6 mysql]# chown mysql.mysql data/ -R
[root@server6 mysql]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS! 
[root@server6 mysql]# mysql #此时不需要密码就直接可以登陆
.....
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> quit
Bye
[root@server6 mysql]# mysql_secure_installation 
    **此时需要设置数据库密码:大小写+数字+特殊字符

[root@server6 mysql]# mysql -p  #登陆:此时需要输入密码:Xiamin0099...
.....
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> quit
Bye
[root@server6 mysql]# 



&&&mysqld --initialize--->第一次生成随机密码,用随机密码登陆后进去可直接修改密码

安装php

[root@server6 ~]# ls
anaconda-ks.cfg                         mysql-boost-5.7.11.tar.gz
cmake-2.8.12.2-4.el6.x86_64.rpm         nginx-1.12.0
gd-devel-2.0.35-11.el6.x86_64.rpm       nginx-1.12.0.tar.gz
libmcrypt-2.5.8-9.el6.x86_64.rpm       
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm  php-5.6.20.tar.bz2
mysql-5.7.11                            re2c-0.13.5-1.el6.x86_64.rpm
[root@server6 ~]# tar jxf php-5.6.20.tar.bz2
[root@server6 ~]# rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm 
[root@server6 php-5.6.20]# yum install net-snmp-devel gmp-devel gd-devel-2.0.35-11.el6.x86_64.rpm  libmcrypt-* libxml2-devel curl-devel -y
[root@server6 php-5.6.20]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gettext --with-gmp --with-pear --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-mcrypt --with-mhash 
.....
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
.....
[root@server6 php-5.6.20]# make && make install
[root@server6 php-5.6.20]# cd /usr/local/lnmp/php/
[root@server6 php]# cd etc/
[root@server6 etc]# mv php.ini-production php.ini
[root@server6 etc]# vim php.ini 
.....
925 date.timezone =Asia/Shanghai
[root@server6 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server6 etc]# pwd
/usr/local/lnmp/php/etc
[root@server6 etc]# vim php-fpm.conf
.....
 25 pid = run/php-fpm.pid
149 user = nginx
150 group = nginx
.....
[root@server6 ~]# cd php-5.6.20/sapi/fpm/
[root@server6 fpm]# file init.d.php-fpm
init.d.php-fpm: POSIX shell script text executable
[root@server6 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@server6 fpm]# chmod +x /etc/init.d/php-fpm 
[root@server6 fpm]# /etc/init.d/php-fpm start
Starting php-fpm  done
[root@server6 fpm]# netstat -antlp  #9000端口
[root@server6 nginx]# pwd
/usr/local/lnmp/nginx
[root@server6 nginx]# vim conf/nginx.conf
.....
 52             index  index.php index.html index.htm;  #定义默认访问页面顺序

 76         location ~ \.php$ {
 77             root           html;
 78             fastcgi_pass   127.0.0.1:9000;
 79             fastcgi_index  index.php;
 80         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_nam    e;  
 81             include        fastcgi.conf;    #fastcgi_params;--->fastcgi.conf
 82         }
[root@server6 nginx]# vim html/index.php 
[root@server6 nginx]# cat html/index.php        #php测试页面
<?php
phpinfo()
?>
[root@server6 nginx]# nginx -s reload


#测试:
浏览器访问:172.25.30.6
    可看到php页面及相关参数

整合论坛

[root@server6 ~]# yum install unzip -y
[root@server6 ~]# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
yum install unzip -y
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
cd /usr/local/lnmp/nginx/html/
[root@server6 ~]# cd /usr/local/lnmp/nginx/html/
[root@server6 html]# ls
50x.html  index.html  index.php  readme  upload  utility
[root@server6 html]# cd upload/
[root@server6 upload]# cd ..
[root@server6 html]# mv upload/ bbs
[root@server6 html]# pwd
/usr/local/lnmp/nginx/html



#测试:
浏览器访问:http://172.25.30.6/bbs/install/

**修改权限可在浏览器中看到文件权限开放
[root@server6 html]# cd bbs/
[root@server6 bbs]# chmod 777 config/ data/ uc_client/ uc_server/ -R

&&Permission deny
**修改mysql的data权限,之后可看到在安装mysql包
[root@server6 bbs]# cd /usr/local/lnmp/mysql/
[root@server6 mysql]# ll
total 60
drwxr-xr-x  2 root  root   4096 Oct  3 13:02 bin
-rw-r--r--  1 root  root  17987 Feb  2  2016 COPYING
drwxr-x---  5 mysql mysql  4096 Oct  3 14:07 data
drwxr-xr-x  2 root  root   4096 Oct  3 13:01 docs
drwxr-xr-x  3 root  root   4096 Oct  3 13:01 include
drwxr-xr-x  4 root  root   4096 Oct  3 13:02 lib
drwxr-xr-x  4 root  root   4096 Oct  3 13:01 man
drwxr-xr-x 10 root  root   4096 Oct  3 13:02 mysql-test
-rw-r--r--  1 root  root   2478 Feb  2  2016 README
drwxr-xr-x 28 root  root   4096 Oct  3 13:02 share
drwxr-xr-x  2 root  root   4096 Oct  3 13:56 support-files
[root@server6 mysql]# chmod 755 data/
[root@server6 mysql]# ll -d data/
drwxr-xr-x 5 mysql mysql 4096 Oct  3 14:07 data/
[root@server6 mysql]# 

***安装完成,进入论坛
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值