• 梦想还是要有的,万一实现了呢...
  • 区块链论坛整装待发...

Linux系统- ubuntu16.04下安装搭建 Nginx+PHP+MYSQL (LNMP环境)超详细篇

Linux Vetrue 6个月前 (04-12) 296次浏览 0个评论 二维码链接
文章目录[隐藏]

一、准备工作


1.查看内核,升级内核,删除内核,切换内核

查看发布版本号

cat /etc/issue

lsb_release -a

查看内核版本号

uname -sr

uname -a

升级内核方法

到 Ubuntu 网站 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 选择所需要的 Ubuntu 内核版本目录 比如最新的内核版本 v4.12.9 目录(发布日期 2018 年 3 月 21 日) 在介绍页面中,根据硬件的架构选择内核版本, X86 硬件架构 64 位操作系统应选择 AMD64

下载 3 个内核 deb 安装文件

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.14/linux-headers-4.15.14-041514_4.15.14-041514.201803281351_all.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.14/linux-headers-4.15.14-041514-generic_4.15.14-041514.201803281351_amd64.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.14/linux-image-4.15.14-041514-generic_4.15.14-041514.201803281351_amd64.deb

安装下载的内核文件

sudo dpkg -i *.deb

安装完成以后,reboot重新启动,验证内核的版本

uname -sr

查看内核列表

sudo dpkg --get-selections |grep linux-image

删除旧内核(可选)

sudo apt-get remove linux-image-4.4.0-105-generic linux-image-4.4.0-62-generic linux-image-extra-4.4.0-105-generic linux-image-extra-4.4.0-62-generic linux-image-generic

笔者旧内核为 linux-image-4.4.0-105-generic linux-image-4.4.0-62-generic linux-image-extra-4.4.0-105-generic linux-image-extra-4.4.0-62-generic linux-image-generic

删除下载的内核 deb 安装文件

rm linux-headers-4.15.14-041514_4.15.14-041514.201803281351_all.deb linux-headers-4.15.14-041514-generic_4.15.14-041514.201803281351_amd64.deb linux-image-4.15.14-041514-generic_4.15.14-041514.201803281351_amd64.deb

2.进行 ubuntu 系统与软件更新

sudo apt-get update

更新源,源保存的文件为:/etc/apt/sources.list

sudo apt-get upgrade

3.安装常用软件

lrzsz

sudo apt-get install lrzsz

RAR/ZIP

sudo apt-get install p7zip p7zip-full p7zip-rar

二、安装 LNMP


1.安装 Nginx

如之前安装过 nginx 再安装或卸载不干净会启动失败 参考彻底删除文章 https://www.cnblogs.com/flyDream12315/p/6062295.html

使 add-apt-repository 可用

sudo apt-get install python-software-properties -y sudo apt-get install software-properties-common -y

添加源 并下载最新 nginx

sudo add-apt-repository ppa:ondrej/nginx

sudo apt-get update sudo apt-get dist-upgrade

sudo apt-get install nginx

  1. 测试: 浏览器访问 Ubuntu 的 IP,出现”Welcome to nginx!”网页即表明安装 nginx 成功
  2. 查看状态:service ngnix status/start/stop/restart
  3. 重启 nginx:sudo /etc/init.d/nginx restart
  4. 查看 nginx 版本:nginx -v ( 安装至此本人 Ngnix 的版本为 1.12.2 )

查看 nginx 运行在什么用户下 ps aux|grep nginx

修改运行用户(nginx.conf)

创建用户组

groupadd www_users

创建用户

useradd -d /data/www -s /bin/bash www_user_qmz -g www_users

给用户设置密码

passwd www_user_qmz

网站目录权限设置

chown -R www_user_qmz.www_users /data/www chmod -R 700 /data/www

网站安全配置 Nginx 防止网站被攻击

参考 https://blog.csdn.net/u011078940/article/details/51426288

防止信息泄露

1.禁止返回 nginx 版本号 去掉 nginx.conf 中的 server_tokens off; 注释

2.不返回服务器为 nginx 或自定义

vim /etc/nginx/fastcgi.conf

fastcgi_param SERVER_SOFTWARE Microsoft-IIS/1.0;

设置后不显示 nginx 版本号,让入侵者不知道我们使用的是什么环境从而降低利用漏洞风险

忽略网址 url 大小写区分

方法自行百度,不建议加载多余模块

2.安装 PHP

安装 PHP5.6 和 PHP7.2 或更多其他版本

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php5.6-fpm php5.6-mbstring php5.6-mysql php5.6-xml php5.6-gd php5.6-curl php5.6-json php5.6-zip php5.6-mcrypt

sudo apt-get install php7.1-fpm php7.1-mbstring php7.1-mysql php7.1-xml php7.1-gd php7.1-curl php7.1-json php7.1-zip

sudo apt-get install php7.2-fpm php7.2-mbstring php7.2-mysql php7.2-xml php7.2-gd php7.2-curl php7.2-json php7.2-zip

如果安装多个版本 PHP,逐个或选择性安装以上 PHP 版本即可

修改 php-fpm 工作用户

vim /etc/php/5.6/fpm/pool.d/www.conf

    user = www_user_qmz
    group = www_users
    listen.owner = www_user_qmz
    listen.group = www_users ;开启慢执行日志
    slowlog = /etc/php/5.6/fpm/pool.d/$pool.slow.log
    request_slowlog_timeout = 2s

给系统添加 PHP 相关快捷命令(可选)

sudo vim .bashrc

    alias ng-r=’sudo /etc/init.d/nginx restart’
    alias php56-r=’sudo /etc/init.d/php5.6-fpm restart’
    alias php71-r=’sudo /etc/init.d/php7.1-fpm restart’
    alias php72-r=’sudo /etc/init.d/php7.2-fpm restart’
    alias mysql-r=’sudo /etc/init.d/mysql restart’

注:在/etc/php 目录下有对应版本号的文件夹,编辑相应的 php.ini 可配置相应的 php 版本

默认选择 PHP7.2 版本

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    #限制 PHP 目录 防止跨站
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
    }

由于某些 PHP 程序较老与最新的 PHP7.2 存在不兼容,在需要使用 PHP5.6 版本的虚拟主机中添加以下代码:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
    #限制 PHP 目录 防止跨站
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
    }

使用 FPM 方式运行 PHP 更高效,但也潜在漏洞危害 修改 php.ini 文件,将 cgi.fix_pathinfo 的值设置为 0

使用 open_basedir 验证目录会相对的降低 PHP 的高频率 I/O 性能,在安全和性能上权衡自行斟酌是否使用

防止 php 木马执行 webshell ,在跟版本 php.ini 中添加设置 disable_functions=passthru,exec,shell_exec,system

关闭/开启 PHP 详细错误信息 /etc/php/7.0/fpm/php.ini 设置 display_errors = On /etc/php/7.0/fpm/php-fpm.conf 设置 php_flag[display_errors] = on

3.安装 MySQL


下载安装包

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

  1. 安装过程中会提示设置 root 密码

测试:mysql -u root -p ( exit; 可以退出 )

查看版本:mysql -V

查看状态:service mysql status/start/stop/retart

查看监听端口的情况:netstat -tunplnetstat -tap



Vetrue , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接
原文标题:Linux 系统- ubuntu16.04 下安装搭建 Nginx+PHP+MYSQL (LNMP 环境)超详细篇
原文链接:https://vetrue.com/article/93.html
喜欢 (2)
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址