LNMPR

搭建L(Ubuntu-server 16.04)N(Nginx)M(mysql)P(PHP)R(Redis)

安装虚拟机或开启Win10 Linux 子系统并安装Ubuntu(16.04.1)系统

安装虚拟机并安装Ubuntu

  1. 虚拟机
    • VMware-workstation For Win 资源地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.1.0-13591040.exe
  2. Ubuntu-server 16.04.1 资源地址:http://old-releases.ubuntu.com/releases/16.04.0/ubuntu-16.04.1-server-arm64.iso
  3. 配置虚拟机
    • 配置网络
      • 选择语宿主机共享网络
    • 挂载宿主机共享目录
      • 右键【设置】-> 选择上方【选项】-> 【共享文件夹】->
        【总是启用】 -> 【添加】(选择宿主机共享的文件夹)
      • 虚拟机中挂载的共享文件位置 cd /mnt/hgfs/
    • 安装VMWare Tools
    虚拟机 -> 安装VMware Tools
    
    sudo su                     #切换为管理员账户
    
    mkdir /mnt/vmtools          #创建挂载的目录
    mount -t iso9660 /dev/cdrom /mnt/vmtools        #将文件挂载到创建的目录
    mkdir /mnt/vmtools_install_file     #创建新目录,用于存放挂载目录中拷贝出来的文件
    
    #将挂载文件夹下的文件拷贝到新创建的目录
    cp  /mnt/vmtools/VMwareTools-10.1.15-6627299.tar.gz  /mnt/vmtools_install_file/     
    
    umount /dev/cdrom       #取消挂载
    rm -rf /mnt/vmtools     #删除挂载目录
    
    chmod 777 VMwareTools-10.1.15-6627299.tar.gz        #修改文件权限为读写执行
    
    #解压安装文件包到当前目录下
    tar zxf /mnt/vmtools_install_file/VMwareTools-10.***.tar.gz     
    
    #跳转到解压后的vmware-tools-distrib文件夹
    cd /mnt/vmtools-install_file/vmware-tools-distrib        
    
    sudo chmod 777 vmware-install.pl        #修改文件权限为读写执行
    sudo ./vmware-install.pl
    
    #输入密码,一路回车
    
    sudo reboot        #重启系统
    

开启Win10 Linux子系统并安装Ubuntu

  1. 设置 -> 更新和安全 -> 开发者选项 -> 针对开发人员 -> 开发人员模式 -> 启用开发者模式
  2. 控制面板 -> 程序 -> 启用或关闭 Windows 功能 -> 勾选[适用于 Linux 的 Windows 子系统]
  3. 下载安装 Ubuntu 子系统(ubuntu-server)
    • Win键 输入 Microsoft Store 打开应用商店 -> 在打开的页面头部搜索 Ubuntu -> 选择对应版本的Ubuntu系统下载
  4. 安装完成后在页面左下方搜索处输入 ubuntu 可搜索已安装的系统
  5. 进入系统后
    • sudo apt-get update 更新软件包
    • sudo ufw dia 关闭防火墙
Ubuntu 系统安装完成后常用命令
# 修改用户密码
sudo su         #转为root用户
sudo passwd [username]
#输入新密码,确认密码  
sudo shutdown -r now


lsb_release -a              查看安装版本信息
sudo apt-get update         更新软件包

# 下列命令只针对虚拟机安装的系统有效,对Win10 子系统无效
sudo poweroff               关机
sudo shutdown -r now        立即重启
sudo shutdown -h now        立刻关机


一分钟后重启:shutdown -r +1
定时关机:shutdown -h 20:30

安装常用软件
  • 更新软件包 sudo apt-get update
  • 安装 vim 编辑器 sudo apt-get install vim -y
  • 安装 curl sudo apt-get install curl -y
  • 安装 wget sudo apt-get install wget -y
  • 安装 ssh
    安装 SSH 服务:	sudo apt-get install openssh-server -y
    
    查看状态:	ps -e|grep ssh
    启动服务:	sudo /etc/init.d/ssh start
    停止服务:	sudo /etc/init.d/ssh stop
    重启服务:   service ssh --full-restart
    
    ssh配置文件
    vim /etc/ssh/sshd_config
    Port 22 //默认开启22端口
    PasswordAuthentication yes //开启允许密码登录
    
    远程登录SSH:	ssh username@IP 		
    username:目标机器的用户名  IP:目标机器IP
    
    相关问题:
    在window CMD 中ping ubuntu 能ping通,但登录SSH(ssh username@ip) 报 Connection closed by 【IP】 port 22
    检查ubuntu的sshd服务是否启动
    检查sshd_config 配置是否开启 22 端口和允许密码登录
    检查windows系统防火墙是否关闭
    开启window的防火墙22端口
    开启ubuntu的防火墙
    使用telnet [IP] [22] 测试端口是否通
    

Composer 安装、配置

  1. cd ~
  2. 由于网络原因,推荐大家,先在本地下载好:composer.phar, 通过ftp上传至服务器,或者 curl -O https://getcomposer.org/composer.phar
  3. mv composer.phar /usr/local/bin/composer Composer 全局使用
  4. chmod +x composer 添加执行权限
  5. 使用root,更换中国镜像
    composer config -g repo.packagist composer https://packagist.phpcomposer.com
  6. 添加用户操作composer命令。Ubuntu下建议使用
    adduser xinhaonaner                     #根据提示 创建用户即可
    su xinhaonaner                          #切换到新创建用户
    composer config -g repo.packagist composer
    https://packagist.phpcomposer.com       #设置国内镜像源composer
    self-update                             #记得常回来更新
    

搭建 LNMPR 环境

安装 Nginx

  1. 安装命令 sudo apt-get install nginx

  2. 安装完成后访问 127.0.0.1 查看是否安装成功 curl 127.0.0.1 ,出现 Welcome to nginx! 证明安装成功

  3. Nginx 常用信息

    描述命令
    查看相关文件dpkg -S nginx
    查看Nginx 版本nginx -v
    www 目录位置/usr/share/nginx/html/
    默认配置文件/etc/nginx/sites-available/default
    查看80端口状态sudo lsof -i :80
    开启服务命令sudo /etc/init.d/nginx start 或 sudo service nginx start
    停止服务命令sudo /etc/init.d/nginx stop
    重启服务命令sudo /etc/init.d/nginx restart
    修改nginx配置文件后测试是否正切命令nginx -t

    Nginx服务的运行日志在 /var/log/nginx/ 目录下

安装 Mysql

  1. 安装 mysql-server 服务命令
    sudo apt-get install mysql-server    #执行过程中会提示输入用户名和密码
    
  2. 安装 mysql-client 客户端命令
    sudo apt-get install mysql-client
    
  3. 测试 mysql是否安装成功,登录MySQL
    mysql -h root -p
    
  4. 查看端口监控信息
    netstat -anp
    
  5. 修改mysql默认密码
    • 查看mysql配置文件
    sudo cat /etc/mysql/debian.cnf
    
    [client]
    host     = localhost
    user     = debian-sys-maint //默认用户名
    password = iUYKxmfL7V7kEChV //默认密码
    socket   = /var/run/mysqld/mysqld.sock
    [mysql_upgrade]
    host     = localhost
    user     = debian-sys-maint
    password = iUYKxmfL7V7kEChV
    socket   = /var/run/mysqld/mysqld.sock
    
    • 修改账号密码
    mysql -udebian-sys-maint -piUYKxmfL7V7kEChV
    show databases;
    use mysql;
    update user set authentication_string=PASSWORD(123) where user='root';
    update user set plugin="mysql_native_password";
    flush privileges;
    quit;
    
  6. 如果数据库需要被远程访问
    vim /etc/mysql/mysql.conf.d/mysqld.cnf 
    注掉 "bind-address = 127.0.0.1"
    
    mysql -uroot -p
    update mysql.user set Host='%' where HOST='localhost' and User='root'     #任何主机都可访问
    FLUSH PRIVILEGES    #刷新权限
    

Redis

  1. 安装 Redis-server

    sudo apt-get install redis-server -y        #安装redis服务
    sudo apt-get install redis-cli -y           #安装redis-cli 客户端
    
    ps -aux|grep redis                          #检查Redis服务器系统进程
    netstat -nlt|grep 6379                      #检查Redis端口状态
    sudo /etc/init.d/redis-server status        #检查Redis运行状态	
    redis-cli                                   #访问Redis 客户端
    dpkg -L redis-server                        #查看redis安装目录
    
  2. 开启允许外部链接

    # redis在ubuntu安装后默认是只有本地访问,需要别的ip访问我们需要修改redis的配置文件
    
    sudo vim /etc/redis/redis.conf 
    将 bind 127.0.0.1 改为 bind 0.0.0.0 任意Ip都能访问
    
    sudo /etc/init.d/redis-server restart       #重启 Redis 
    

安装 PHP 及相关扩展

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt-get update

#php 5.6 版本
sudo apt-get install php5.6  php5.6-fpm php5.6-mysql php5.6-gd php5.6-common php5.6-curl php5.6-cli php5.6-mcrypt php5.6-mbstring php5.6-dom php5.6-dev php5.6-json php5.6-zip php5.6-cgi php5.6-bcmath php5.6-enchant php5.6-xml php5.6-xmlrpc php5.6-bz2 php5.6-redis php5.6-xdebug -y

#php 7.0 版本
sudo apt-get install php7.0  php7.0-fpm php7.0-mysql php7.0-gd php7.0-common php7.0-curl php7.0-cli php7.0-mcrypt php7.0-mbstring php7.0-dom php7.0-dev php7.0-json php7.0-zip php7.0-cgi php7.0-bcmath php7.0-enchant php7.0-xml php7.0-xmlrpc php7.0-bz2 php7.0-redis php7.0-xdebug -y


dpkg -S php5.6-fpm      #查看php安装信息

php.ini 文件位置:  /etc/php/*.*/fpm/php.ini

Nginx + PHP 服务

Nginx 与 PHP-FPM集成
  1. 通过修改fastcgi_pass 启用不同的PHP版本
  2. PHP-FPM 与 Nginx 通信方式有两种,一种是基于TCP的 Internet domain socket 方式,一种是 UNIX domain socket 方式。
  3. UNIX domain socket 可以使同一台操作系统上的两个或多个进程进行数据通信。
  4. UNIX domain socket 的接口和 Internet domain socket 很像,但它不使用网络底层协议来通信。
  5. 服务器压力不大的情况下,这两种方式性能差别不大,但在压力比较满的时候,用UNIX domain socket方式,效果确实比较好。

UNIX Socket 方式

sudo vim /etc/php/*.*/fpm/pool.d/www.conf

将
listen = 127.0.0.1:9000
;listen.mode = 0660 
改为
listen = /run/php/php5.6-fpm.sock   #与 Nginx监听同一 sock
listen.mode = 0666                  #设置 .sock 文件默认权限

//修改Nginx配置文件 
sudo vim /etc/nginx/sites-enabled/default	
root /var/www       #修改nginx默认项目根目录
添加  index.php  文件访问   index index.php index.html index.htm index.nginx-debian.html;
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php5.6-fpm.sock;
}

// 查看配置是否有误 sudo php5.6-fpm -t

sudo service nginx restart
sudo service php5.6-fpm restart

注意:php*.*-fpm.sock 文件默认是不存在的,需要配置好上面的路径后一定要重启nginx和php服务,否则不会自动生成sock文件

TCP 方式 (默认)

//默认情况下无需修改 www.conf 文件
sudo vi /etc/php/5.6/fpm/pool.d/www.conf
将
listen = /run/php/php5.6-fpm.sock 
改为 
listen = 127.0.0.1:9000     #与 Nginx监听同一IP端口


//修改Nginx配置文件 
sudo vim /etc/nginx/sites-enabled/default	
root /var/www       #修改nginx默认项目根目录
添加  index.php  文件访问   index index.php index.html index.htm index.nginx-debian.html;
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass 127.0.0.1:9000;
}

// 查看配置是否有误 sudo php-fpm5.6 -t

sudo service nginx restart
sudo service php5.6-fpm restart

用sock文件会比访问9000端口快些,不管哪一种方式,通信方式一定要对应

修改nginx站点配置信息

#综合后台
Host:
sudo vim /etc/hosts
添加:
127.0.0.1		localhost-test.com

sudo vim /etc/nginx/sites-available/service
sudo chmod 777 /etc/nginx/sites-available/service
sudo ln -s /etc/nginx/sites-available/service /etc/nginx/sites-enabled/service 

sudo vim /etc/nginx/sites-enabled/service
server {
		#我挂载的是E盘
        root /mnt/e/localhost-test.com/index.php;
        index index.html index.php index.htm index.nginx-debian.html;
        server_name localhost-test.com
        location ~ \.php$ {
        		# Nginx默认使用的是TCP方式通信将下面两行打开就好了
                include snippets/fastcgi-php.conf;
                fastcgi_pass 127.0.0.1:9000;
        }
}


//检查 Nginx 配置是否有误
sudo nginx -t
//重启 Nginx
sudo /etc/init.d/nginx restart

//重启 PHP
sudo /etc/init.d/php5.6-fpm restart


修改后
sudo nignx -t 检查nginx配置是否正确
sudo service nginx restart  (重启)

开启OpenSSL扩展

vim /etc/php/**/fpm/php.ini

将 ;extension=php_openssl.dll  注释打开

遇到的问题
  1. 使用windows10 子系统模式时默认的网关无法访问
    sudo vi /etc/resolvconf/resolv.conf.d/base 
    
    //添加
    nameservice 223.5.5.51. 
    nameservice 223.6.6.6
    
    sudo resolvconf -u
    sudo vi /etc/resolv.conf
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值