总体步骤:
lnmp1.3特点:可选择安装PHP7.0>
可自己上传压缩包(tar.gz格式) 解压命令:
第一步:tar -zxvf lnmp1.3-full.tar.gz
第二步:cd lnmp1.3-full
第三步:./install.sh lnmp
一键下载安装LNMP 执行命令:
wget -c http://lnmporg.duapp.com/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp
备注:如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。
需要设置MySQL的root密码(不输入直接回车将会设置为root),输入后回车进入下一步
这里需要确认是否启用MySQL InnoDB,如果不确定是否启用可以输入 y ,输入 y 表示启用,输入 n 表示不启用。默认为y 启用,输入后回车进入下一步,选择MySQL版本:
这里需要确认是否启用MySQL InnoDB,如果不确定是否启用可以输入 y ,输入 y 表示启用,输入 n 表示不启用。默认为y 启用,输入后回车进入下一步,选择MySQL版本:
输入PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车。
如果是LNMPA或LAMP的话还需要设置管理员邮箱
再选择Apache版本
提示”Press any key to install…or Press Ctrl+c to cancel”后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并Install lnmp V1.2 completed! enjoy it.的话,说明已经安装成功。
如果出现类似上图的提示,则表明安装失败,说明没有安装成功!!
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : /home/wwwroot/default/phpmyadmin/
默认网站目录 : /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
LNMP 状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
vi /usr/local/nginx/conf/nginx.conf
user www www;
worker_processes auto;
启动进程
error_log /home/wwwlogs/nginx_error.log crit;
错误日志
pid /usr/local/nginx/logs/nginx.pid;
主进程PID保存文件
Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
文件描述符数量
events
{
use epoll;
#网络I/O模型,建议linux使用epoll,FreeBSD使用kqueue
#epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以 上内 核,可以大大提高nginx的性能
worker_connections 51200;
如果需要外部连接数据库(如navicat),则需要关闭防火墙,并在MySQL里设置外部访问权限,例:
2.1 删除防火墙
apt-get remove iptables
2.2 设置数据库访问权限
2.2.1 进入数据库
mysql -u root -proot (第一个root是用户名,第二个是登录密码)
2.2.2 授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;(root是用户名,123456是外部访问密码)
2.2.3 刷新权限
FLUSH PRIVILEGES;
2.2.4 退出数据库
EXIT;
2.3 建立外部连接
multi_accept on;
}
http
{
include mime.types;
default_type application/octet-stream;
#设定mime类型,文件传送类型由mime.type文件定义
server_names_hash_bucket_size 128; #保存服务器名字的hash表大小
client_header_buffer_size 32k; #客户端请求头部缓冲区大小
large_client_header_buffers 4 32k; #最大客户端头缓冲大小
client_max_body_size 50m; #客户端最大上传文件大小(M)
sendfile on;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文 件,对于普通应用,必须设为 on。如果用来进行下载等应用磁盘IO重负载应用,可 设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
#高效文件传输
tcp_nopush on;
#这个是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的 传输出去,这样有助于解决网络堵塞。(只在sendfile on时有效)
keepalive_timeout 60;
#连接超时时间
tcp_nodelay on;
#禁用nagle算法,也即不缓存数据。有效解决网络阻塞
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 256k;
#fastcgi设置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
server_tokens off;
#隐藏nginx版本号(curl -I 192.168.4.154可以查看,更加安全)
#log format
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#定义日志格式
server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
#监听80端口
server_name www.lnmp.org;
#服务器名
index index.html index.htm index.php;
#默认网页文件
root /home/wwwroot/default;
#网页主目录
include enable-php.conf;
location /nginx_status
{
stub_status on;
access_log off;
}
#在ngnix配置文件中添加
location / {
try_files uri uri/ /index.php?$query_string;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*.(js|css)?$
{
expires 12h;
}
location ~ /.
{
deny all;
}
access_log /home/wwwlogs/access.log access;
}
include vhost/*.conf;
}