LNMP搭建HDwiki

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: sed -i 's/SELINUX=enabled/SELINUX=disabled/g' /etc/selinux/configgetenforce 0/etc/init.

sed -i 's/SELINUX=enabled/SELINUX=disabled/g' /etc/selinux/config

getenforce 0

/etc/init.d/iptables stop

cat /etc/redhat-release 

uname -r

uname -m

#安装nginx

#su -

#chmod 777 /usr/local/src

yum -y install  wget libtool expat-devel pcre-devel zlib-devel openssl openssl-devel pcre 

yum -y install gcc gcc-c++ glibc automake autoconf libtool make 

yum -y install libmcrypt-devel mhash-devel libxslt-devel \

libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \

zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \

ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \

krb5 krb5-devel libidn libidn-devel openssl openssl-devel

#安装pcre

cd /usr/local/src

wget http://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz/download -O  pcre-8.39.tar.gz

tar -zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure

make && make install

#安装zlib

  cd /usr/local/src

  wget http://zlib.net/zlib-1.2.11.tar.gz

  tar -zxvf zlib-1.2.11.tar.gz

  cd zlib-1.2.11

  ./configure

  make && make install

#安装openssl

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz

tar -zxvf openssl-1.1.0b.tar.gz

cd openssl-1.1.0b

./config

make && make install

#安装nginx

 cd /usr/local/src

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

 tar -zxvf nginx-1.10.2.tar.gz

 cd nginx-1.10.2

groupadd -r nginx

useradd -r -g nginx nginx

./configure \

  --prefix=/usr/local/nginx \

  --sbin-path=/usr/local/nginx/sbin/nginx \

  --conf-path=/usr/local/nginx/nginx.conf \

  --pid-path=/usr/local/nginx/nginx.pid \

  --user=nginx \

  --group=nginx \

  --with-http_ssl_module \

  --with-http_flv_module \

 --with-http_mp4_module  \

 --with-http_stub_status_module \

 --with-http_gzip_static_module \

 --http-client-body-temp-path=/var/tmp/nginx/client/ \

 --http-proxy-temp-path=/var/tmp/nginx/proxy/ \

 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \

 --http-scgi-temp-path=/var/tmp/nginx/scgi \

 --with-pcre=/usr/local/src/pcre-8.39 \

 --with-zlib=/usr/local/src/zlib-1.2.11 \

 --with-openssl=/usr/local/src/openssl-1.1.0b \

;

make && make install

 netstat -ano|grep 80

mkdir -p /var/tmp/nginx/client

/usr/local/nginx/sbin/nginx

#搭建MYSQL

useradd -s /sbin/nologin -M mysql

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql-5.7.17

ln -s /usr/local/mysql-5.7.17 /usr/local/mysql

#创建数据库文件目录

mkdir -p /data/mysql

chown -R mysql.mysql /data/

#配置启动脚本文件,并加入系统服务,自启动

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

chmod +x /etc/init.d/mysqld 

chkconfig --add mysqld

chkconfig mysqld on

#配置mysql配置文件

cat > /etc/my.cnf << EOF

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set = utf8

[mysqld]

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

pid-file = /data/mysql/mysql.pid

user = mysql

bind-address = 0.0.0.0

server-id = 1

init-connect = 'SET NAMES utf8'

character-set-server = utf8

#skip-name-resolve

#skip-networking

back_log = 300

max_connections = 1000

max_connect_errors = 6000

open_files_limit = 65535

table_open_cache = 128

max_allowed_packet = 4M

binlog_cache_size = 1M

max_heap_table_size = 8M

tmp_table_size = 16M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

sort_buffer_size = 8M

join_buffer_size = 8M

key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1

query_cache_size = 8M

query_cache_limit = 2M

ft_min_word_len = 4

log_bin = mysql-bin

binlog_format = mixed

expire_logs_days = 30

log_error = /data/mysql/mysql-error.log

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql-slow.log

performance_schema = 0

explicit_defaults_for_timestamp

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB

#default-storage-engine = MyISAM

innodb_file_per_table = 1

innodb_open_files = 500

innodb_buffer_pool_size = 64M

innodb_write_io_threads = 4

innodb_read_io_threads = 4

innodb_thread_concurrency = 0

innodb_purge_threads = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 32M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

interactive_timeout = 28800

wait_timeout = 28800

[mysqldump]

quick

max_allowed_packet = 16M

[myisamchk]

key_buffer_size = 8M

sort_buffer_size = 8M

read_buffer = 4M

write_buffer = 4M

EOF

#初始化数据库:

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

#配合环境变量

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

. /etc/profile

#启动MySQL服务 

/etc/init.d/mysqld start

#修改root密码

mysql -uroot

#mysql -uroot -pk8008.com -e "use mysql;update user set authentication_string=password('新密码') where user='root';"

update mysql.user set authentication_string=password("xmrbiyfzx2016") where user='root';

#安装PHP

#安装第三方yum源

wget http://www.atomicorp.com/installers/atomic

sh ./atomic

#使用yum命令安装

yum -y install  libxml libjpeg freetype libpng gd curl libiconv zlib-devel gd-devel curl-devel openssl-devel libxslt-devel 

php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel libevent libevent-devel libxml2 libxml2-devel bzip2-devel libcurl-

devel libjpeg-devel libpng-devel freetype-devel 

yum -y install zlib

wget http://mirrors.sohu.com/php/php-5.6.30.tar.gz

tar zxvf php-5.6.30.tar.gz

cd php-5.6.30

./configure \

--prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--enable-inline-optimization \

--enable-fpm \

--with-mysql=/usr/local/mysql \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--with-pdo-mysql=/usr/local/mysql \

--with-gettext \

--enable-mbstring \

--with-iconv=/usr/local/libiconv \

--with-mcrypt \

--with-mhash \

--enable-bcmath \

--enable-soap \

--with-libxml-dir \

--enable-sockets \

--with-curl \

--with-zlib \

--enable-zip \

--with-bz2 \

--with-gd \

--with-freetype-dir \

--with-jpeg-dir \

--with-iconv \

--with-png-dir

#--with-openssl \

make

make install

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

#到此LNMP安装完成!

mkdir /usr/local/nginx/xmrbi.wiki.com

##配置nginx

user  www www; 

pid /var/run/nginx.pid; 

worker_processes auto; 

worker_rlimit_nofile 100000; 

events

{

use epoll;

multi_accept on; 

worker_connections 51200;

}

http { 

server_tokens off; 

sendfile on; 

tcp_nopush on; 

tcp_nodelay on; 

access_log off; 

error_log /var/log/nginx/error.log crit; 

keepalive_timeout 10; 

client_header_timeout 10; 

client_body_timeout 10; 

reset_timedout_connection on; 

send_timeout 10; 

limit_conn_zone $binary_remote_addr zone=addr:5m; 

limit_conn addr 100; 

include /usr/local/nginx/mime.types; 

default_type text/html; 

charset UTF-8; 

gzip on; 

gzip_disable "msie6"; 

gzip_proxied any; 

gzip_min_length 1000; 

gzip_comp_level 6; 

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss 

text/javascript; 

gzip_disable “MSIE [1-6].(?!.*SV1)”;

open_file_cache max=100000 inactive=20s; 

open_file_cache_valid 30s; 

open_file_cache_min_uses 2; 

open_file_cache_errors on; 

include /usr/local/nginx/conf.d/*.conf; 


server  {

    listen 9001;

    location ~ /nginx_status {

    stub_status on;

    access_log off;

   allow all;

    #deny all;

    }

server {

 server_name xmrbi.wiki.com;

  server_name 172.16.50.51;

  listen 80;

  autoindex off;

  client_max_body_size 15M;

  client_body_buffer_size 128k;

  index index.html index.htm index.php doku.php;

  access_log  /usr/local/nginx/xmrbi.wiki.com/access.log;

  error_log  /usr/local/nginx/xmrbi.wiki.com/error.log;

  root /usr/local/nginx/html/dokuwiki;

  location / {

    try_files $uri $uri/ @dokuwiki;

  }

  location ~ ^/lib.*\.(gif|png|ico|jpg)$ {

    expires 30d;

  }

  location = /robots.txt  { access_log off; log_not_found off; }

  location = /favicon.ico { access_log off; log_not_found off; }

  location ~ /\.          { access_log off; log_not_found off; deny all; }

  location ~ ~$           { access_log off; log_not_found off; deny all; }

  location @dokuwiki {

    rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;

    rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;

    rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;

    rewrite ^/(.*) /doku.php?id=$1 last;

  }

  location ~ \.php$ {

    try_files $uri =404;

     fastcgi_pass   unix:/var/run/php-fpm/xmrbi.wiki.com.sock;

    fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include /usr/local/nginx/fastcgi_params;

    fastcgi_param  QUERY_STRING     $query_string;

    fastcgi_param  REQUEST_METHOD   $request_method;

    fastcgi_param  CONTENT_TYPE     $content_type;

    fastcgi_param  CONTENT_LENGTH   $content_length;

    fastcgi_intercept_errors        on;

    fastcgi_ignore_client_abort     off;

    fastcgi_connect_timeout 60;

    fastcgi_send_timeout 180;

    fastcgi_read_timeout 180;

    fastcgi_buffer_size 128k;

    fastcgi_buffers 4 256k;

    fastcgi_busy_buffers_size 256k;

    fastcgi_temp_file_write_size 256k;

  }

  location ~ /(data|conf|bin|inc)/ {

    deny all;

  }

  location ~ /\.ht {

    deny  all;

  }

}

}

##php高并发nginx优化http://www.cnblogs.com/dawnlee/p/5142724.html

cd /usr/local/php/etc

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

##vi php-fpm.conf

listen = /var/run/php-fpm/xmrbi.wiki.com.sock

listen.backlog = 65535

listen.owner = www

listen.group = www

listen.mode = 0660

###################

chmod 777 -R /usr/local/nginx/html/dokuwiki

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

/usr/local/nginx/sbin/nginx -s reload 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
关系型数据库 MySQL 应用服务中间件
LNMP详解(四)——LNMP原理与简单部署
LNMP详解(四)——LNMP原理与简单部署
104 2
|
关系型数据库 MySQL 应用服务中间件
快速搭建LNMP环境
Nginx是一款小巧而高效的Web服务器软件,可帮您在Linux系统下快速方便地搭建出LNMP Web服务环境。本教程介绍如何搭建LNMP环境,其中LNMP分别代表Linux、Nginx、MySQL和PHP。
|
6月前
|
关系型数据库 MySQL 应用服务中间件
LNMP简易搭建
LNMP平台指的是将Linux、Nginx、MySQL和PHP(或者其他的编程语言,如Python、Perl等)集成在一起的一种Web服务器环境。它是一种常用的开发和部署网站的解决方案,适用于构建各种类型的网站和应用程序。
123 2
|
关系型数据库 MySQL 应用服务中间件
LNMP搭建
LNMP搭建
102 0
|
安全 关系型数据库 MySQL
基于LNMP搭建WordPress
基于LNMP搭建WordPress
2184 0
|
关系型数据库 MySQL 应用服务中间件
lnmp部署
lnmp部署
|
关系型数据库 MySQL 应用服务中间件
LNMP环境搭建
LNMP环境搭建
184 0
|
关系型数据库 MySQL 应用服务中间件
|
关系型数据库 应用服务中间件 PHP