lnmp应用服务器安装手册
时间:2022-07-23
本文章向大家介绍lnmp应用服务器安装手册,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
环境准备
- yum -y install vim wget zip unzip lrzsz gcc gcc-c++ autoconf automake libtool make openssl openssl-devel pcre-devel libxml2-devel libcurl-devel libicu-devel openldap openldap-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel libvpx-devel libzip libzip-devel
- cd /opt
[1]安装nginx
- cd /opt
- wget https://github.com/alibaba/nginx-http-concat/archive/master.zip
- unzip master.zip
- wget http://nginx.org/download/nginx-1.12.1.tar.gz
- groupadd -r nginx
- useradd -s /sbin/nologin -g nginx -r nginx
- tar -zxvf nginx-1.12.1.tar.gz
- cd nginx-1.12.1
完整+nginx-http-concat
./configure
--prefix=/usr/local/webserver/nginx
--user=nginx
--group=nginx
--with-http_ssl_module
--with-http_flv_module
--with-http_gzip_static_module
--with-http_stub_status_module
--add-module=/opt/nginx-http-concat-master
只安装nginx
./configure
--prefix=/usr/local/webserver/nginx
--user=nginx
--group=nginx
--with-http_ssl_module
--with-http_flv_module
--with-http_gzip_static_module
--with-http_stub_status_module
- make && make install
[2]安装nginx lua
- yum install readline-devel pcre-devel openssl-devel
- wget https://github.com/alibaba/nginx-http-concat/archive/master.zip
- unzip master.zip
- wget https://github.com/openresty/lua-nginx-module/archive/v0.10.10.tar.gz
- tar -zxvf lua-nginx-module-0.10.10.tar.gz
- wget https://openresty.org/download/openresty-1.11.2.4.tar.gz
- tar -zxvf openresty-1.11.2.4.tar.gz
- cd /opt/openresty-1.11.2.4
./configure
--prefix=/usr/local/webserver/nginx
--user=nginx
--group=nginx
--with-http_ssl_module
--with-http_flv_module
--with-http_gzip_static_module
--with-http_stub_status_module
--add-module=/opt/nginx-http-concat-master
--add-module=/opt/openresty-1.11.2.4/bundle/ngx_devel_kit-0.3.0
--add-module=/opt/lua-nginx-module-0.10.10
- make && make install
安装imagemagick
- wget http://www.imagemagick.org/download/ImageMagick-7.0.8-9.tar.gz
- tar -zvxf ImageMagick-7.0.8-9.tar.gz
- cd ImageMagick-7.0.8-9
./configure
--with-bzlib=yes
--with-autotrace=yes
--with-djvu=yes
--with-dps=yes
--with-fftw=yes
--with-flif=yes
--with-fpx=yes
--with-fontconfig=yes
--with-freetype=yes
--with-gslib=no
--with-gvc=yes
--with-jbig=yes
--with-jpeg=yes
--with-lcms=yes
--with-lqr=yes
--with-ltdl=yes
--with-lzma=yes
--with-magick-plus-plus=yes
--with-openexr=yes
--with-openjp2=yes
--with-pango=yes
--with-perl=no
--with-png=yes
--with-raqm=yes
--with-raw=yes
--with-rsvg=no
--with-tiff=yes
--with-webp=yes
--with-wmf=yes
--with-x=
--with-xml=yes
--with-zlib=yes
安装mysql
- cd /opt
- wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
- tar zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
- mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/webserver/mysql
- cd /usr/local/webserver/mysql
- groupadd -r mysql
- useradd -s /sbin/nologin -g mysql -r mysql
- mv /etc/my.cnf ./ #移动默认my.cnf配置
- vim my.cnf #设置基本配置basedir、datadir等,参考一下案例
- cd support-files/
- vim mysql.server #修改basedir、datadir与my.cnf保持一致
- cd /usr/local/webserver
- chown mysql.mysql ./mysql -R
- mkdir -p /data/mysql3306/data
- chown mysql.mysql /data/mysql3306/ -R
- mysql/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/ --datadir=/data/mysql3306/data
- (注:这时候会显示出root的默认密码,需要记录下来)
- #记录初始化root密码
- /usr/local/webserver/mysql/support-files/mysql.server start
- /usr/local/webserver/mysql/bin/mysql -uroot -p -S/data/mysql3306/mysql.sock --default-character-set=utf8
- mysql> set password for root@localhost = password('root'); #初始化root密码
- mysql> grant select,update,delete,insert on erp_doraemon.* to erp_doraemon@localhost identified by 'qz0OYN5ANiZuT7aV#c';
- mysql> flush privileges;
- mysql> q
- /usr/local/webserver/mysql/support-files/mysql.server restart
#创建有所有权限的用户(慎用)
- mysql> CREATE USER 'yuzhenque'@'%'IDENTIFIED BY '88888888'; //添加用户
- mysql> GRANT ALL ON . TO 'yuzhenque'@'%'; //赋值权限
- mysql> GRANT ALL ON . TO 'yuzhenque'@'%'; GRANT ALL ON . TO 'yuzhenque'@'%'; GRANT ALL ON . TO 'yuzhenque'@'%'; //刷新权限
- mysql> SHOW GRANTS FOR 'yuzhenque'@'%'; //验证用户权限是否赋值成功
- 附:my.cnf 配置如下
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
basedir = /usr/local/webserver/mysql
datadir = /data/mysql3306/data
port = 3306
# server_id = .....
#socket = /data/mysql3306/mysql3306.sock
pid-file = /data/mysql3306/mysql.pid
max_connections=200
key_buffer_size=200M
low_priority_updates=1
table_open_cache = 8000
back_log=1500
query_cache_type=0
table_open_cache_instances=16
innodb_buffer_pool_size=4000M
innodb_buffer_pool_instances=32
innodb_log_buffer_size=64M
join_buffer_size=32K
sort_buffer_size=32K
innodb_file_per_table=1
innodb_checksums=0
innodb_doublewrite=0
innodb_support_xa=0
innodb_thread_concurrency=0
innodb_flush_log_at_trx_commit=2
innodb_max_dirty_pages_pct=50
innodb_use_native_aio=1
innodb_stats_persistent=1
slow_query_log = 1
slow_query_log_file = /data/logs/mysql3306_slow_query.log
long_query_time = 5
log_queries_not_using_indexes = ON
server-id = 1
log-bin=mysql-bin
expire_logs_days=15
sql_mode=NO_ENGINE_SUBSTITUTION
安装libmcrypt
- cd /opt
- wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
- tar zxvf libmcrypt-2.5.7.tar.gz
- cd libmcrypt-2.5.7
- ./configure
- make && make install
安装php5.6
- cd /opt
- wget http://cn.php.net/distributions/php-5.6.31.tar.gz
- wget http://downloads.zend.com/guard/7.0.0/zend-loader-php5.6-linux-x86_64_update1.tar.gz
- tar zxvf zend-loader-php5.6-linux-x86_64_update1.tar.gz
- tar -zxvf php-5.6.31.tar.gz
- groupadd -r www
- useradd -s /sbin/nologin -g www -r www
vi /etc/ld.so.conf.d/local.conf # 编辑库文件
/usr/local/lib # 添加该行
/usr/local/lib64 # 添加该行
:wq # 保存退出
ldconfig -v
- cd php-5.6.31
./configure
--prefix=/usr/local/webserver/php5.6
--with-config-file-path=/usr/local/webserver/php5.6/etc
--enable-fpm
--with-fpm-user=www
--with-fpm-group=www
--enable-soap
--enable-gd-native-ttf
--enable-ftp
--enable-mbstring
--enable-exif
--enable-pdo
--enable-mbstring
--enable-opcache
--enable-sockets
--enable-pcntl
--enable-zip
--enable-calendar
--enable-bcmath
--enable-intl
--with-pdo-mysql
--with-mysql
--with-mysqli
--with-libxml-dir
--with-pcre-dir
--with-gd
--with-vpx-dir
--with-jpeg-dir
--with-png-dir
--with-freetype-dir
--with-xpm-dir
--with-iconv-dir
--with-zlib-dir
--with-mcrypt
--with-zlib
--with-curl
--with-openssl
--with-gettext
--with-mhash
--with-ldap
--with-libdir=lib64
--without-pear
--disable-phar
- make && make install
- cd /usr/local/webserver/php5.6/etc
- cp /opt/zend-loader-php5.6-linux-x86_64/ZendGuardLoader.so ../lib/php/extensions/no-debug-non-zts-20131226/
- ###cp /opt/zend-loader-php5.6-linux-x86_64/opcache.so ./lib/php/extensions/no-debug-non-zts-20131226/
- cp /opt/php-5.6.37/php.ini-development php.ini
- cp php-fpm.conf.default php-fpm.conf
- 编辑php.ini,在末尾加入
zend_extension= /usr/local/webserver/php5.6/lib/php/extensions/no-debug-non-zts-20131226/ZendGuardLoader.so
zend_loader.enable=3
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
部署应用
- mkdir -p /data/www/erp_doraemon/sitedata
相关文件路径
- nginx
- 安装路径/usr/local/webserver/nginx
- 配置文件/usr/local/webserver/nginx/conf
- 启动/usr/local/webserver/nginx/sbin/nginx
- 强制关闭 pkill -9 nginx
- mysql
- 安装路径/opt/mysql/
- 配置文件/opt/mysql/my.cnf
- 启动/opt/mysql/support-files/mysql.server start
- 帐号密码:
- root/root@isnosafe
- op/t1234567(程序使用)
- php&php-fpm
- 安装路径/usr/local/webserver/php5.6/
- 配置文件/usr/local/webserver/php5.6/etc
- 启动 /usr/local/webserver/php5.6/sbin/php-fpm start
- 开机启动
- /usr/local/webserver/auto_start
root防护
- useradd tripdc
- passwd tripdc
- vi /etc/ssh/sshd_config
- port/PermitRootLogin
- service sshd restart
附:配置笔记
nginx配置
- 文件/usr/local/webserver/nginx/conf/nginx.conf 末添加
include /usr/local/webserver/nginx/conf/vhost/*.conf;
- 文件/usr/local/webserver/nginx/conf/nginx.conf参考配置
- 其中 worker_processes 根据cpu核数配置,多少核就配置多少,可通过命令top,按1查看
user www www;
worker_processes 8;
#worker_cpu_affinity auto;
error_log /data/logs/nginx_error.log;
pid /usr/local/webserver/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 16m;
sendfile on;
tcp_nopush on;
keepalive_timeout 10;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 8 128k;
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 6;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
log_format combined_hx '$remote_addr - $server_addr [$time_local] $request_method $http_host $request_uri $request_time $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';
log_not_found off;
#access_log off;
access_log /data/logs/nginx_access.log combined_hx;
#server{
# listen 80;
# root /data/www/test/;
# index index.php index.html;
# include php_ci.conf;
#}
include vhosts/*.conf;
}
-创建配置文件目录/usr/local/webserver/nginx/conf/vhosts
mkdir /usr/local/webserver/nginx/conf/vhosts
- 目录/usr/local/webserver/nginx/conf添加文件php_ci.conf
location ~ ^(.*)/.svn/
{
deny all;
}
location ~ .*.php?
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
if ($request_filename ~* (.*).php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
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_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
}
- 目录/usr/local/webserver/nginx/conf添加文件extra.conf
location ~ .*.(gif|jpg|ico|png)$
{
expires 7d;
access_log off;
}
location ~ .*.(js|css)?$
{
expires 6h;
access_log off;
}
- 目录/usr/local/webserver/nginx/conf/vhost添加文件erp.conf
server
{
listen 80;
server_name erp.domain.com;
index index.html index.php;
root /data/www/erp_doraemon/webapp;
include php_ci.conf;
include extra.conf;
location /static/ {
location ~ .*.(php)?$
{
deny all;
}
}
location /static_m/ {
location ~ .*.(php)?$
{
deny all;
}
}
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
access_log /data/logs/web/erp_doraemon.log combined_hx;
}
- ASP.NET MVC下的四种验证编程方式[续篇]
- 如何把业务问题变成机器学习的问题?
- 这算是ASP.NET MVC的一个大BUG吗?
- 【Scikit-Learn 中文文档】分解成分中的信号(矩阵分解问题) - 无监督学习 - 用户指南 | ApacheCN
- 区块链技术在非能源领域的应用场景
- Python读书笔记8
- How to debug .NET Core RC2 app with Visual Studio Code on Windows?
- 难道.NET Core到R2连中文编码都不支持吗?
- .NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序
- matplotlib的基本用法(四)——设置legend图例
- TensorFlow深度学习笔记 文本与序列的深度模型
- 究竟哪里安全?加拿大VS中国治安大数据起底!意料之中还是之外?
- muduo网络库学习之EventLoop(四):EventLoopThread 类、EventLoopThreadPool 类
- 从小程序游戏开放可以看出,微信已经开始转移小程序战场了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 微信小程序引用自定义组件
- 听说Mysql你很豪横?-------------搭建MySQL MHA实现数据库高可用( MySQL MHA概述、 搭建 MySQL MHA、 MySQL MHA 故障切换)
- jQuery点击click()事件
- 大点干!早点散----------深入剖析LVS负载均衡群集原理
- javascript中元素的scrollLeft和scrollTop属性说明
- 大点干!早点散----------LVS负载均衡之LVS-NAT部署实战
- 大点干!早点散----------负载均衡LVS-DR群集部署
- 大点干!早点散----------群集负载均衡LVS DR+keepalived部署实战
- Java字符串所占字节数的小总结
- Java类加载机制详解
- 详解Java注解(Annotation)
- 你不知道的Synchronized
- 从Java并发集合看锁优化策略
- Java常用并发容器总结(二)
- Java常用并发容器总结(一)