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,540张图片 - 验证集:377张图片 - 测试集:316张图片 分类类别: Brown-bear(棕熊)、Chicken(鸡)、Fox(狐狸)、Hedgehog(刺猬)、Horse(马)、Mouse(老鼠)、Sheep(绵羊)、Snake(蛇)、Turtle(龟)、Rabbit(兔)及通用object(物体)共11个类别 标注格式: YOLO格式标注,包含归一化坐标与类别索引,支持目标检测模型训练 数据特性: 涵盖航拍与地面视角,包含动物个体及群体场景,适用于复杂环境下的多目标识别 农业智能化管理: 通过检测家畜(鸡/马/绵羊等)数量及活动状态,辅助畜牧场自动化管理 生态监测系统: 支持野生动物(棕熊/狐狸/刺猬等)识别与追踪,用于自然保护区生物多样性研究 智能安防应用: 检测农场周边危险动物(蛇/狐狸),构建入侵预警系统 动物行为研究: 提供多物种共存场景数据,支持动物群体交互行为分析 高实用性标注体系: - 精细标注包含动物完整轮廓的边界框 - 特别区分野生动物与家畜类别,支持跨场景迁移学习 多维度覆盖: - 包含昼间/复杂背景/遮挡场景 - 涵盖陆地常见中小型动物与禽类 - 提供通用object类别适配扩展需求 工程适配性强: - 原生YOLO格式适配主流检测框架(YOLOv5/v7/v8等) - 验证集与测试集比例科学,支持可靠模型评估 生态价值突出: - 同步覆盖濒危物种(龟类)与常见物种 - 支持生物多样性保护与农业生产的双重应用场景
内容概要:本文档详细介绍了Python实现TSO-ELM(金枪鱼群优化算法优化极限学习机)多输入单输出回归预测的项目实例。极限学习机(ELM)作为一种快速训练的前馈神经网络算法,虽然具有训练速度快、计算简单等优点,但也存在局部最优解和参数敏感性的问题。金枪鱼群优化算法(TSO)通过模拟金枪鱼群体觅食行为,具有较强的全局搜索能力。将TSO与ELM结合形成的TSO-ELM模型,可以优化ELM的输入层和隐藏层之间的权重,提高回归预测的准确性。项目包括数据预处理、TSO优化、ELM回归模型训练和预测输出四个主要步骤,并提供了详细的代码示例。; 适合人群:对机器学习、优化算法有一定了解的数据科学家、算法工程师和研究人员,特别是那些希望深入理解智能优化算法在回归预测任务中的应用的人群。; 使用场景及目标:① 提升ELM在多输入单输出回归预测中的性能,特别是在处理非线性问题时的预测精度;② 解决ELM中的局部最优解和参数敏感性问题;③ 优化ELM的隐层权重和偏置值,提高模型的表达能力和预测能力;④ 在金融、气象、能源、医疗、交通等领域提供更准确的预测模型。; 阅读建议:本文档不仅提供了理论解释,还包含详细的代码实现,建议读者在阅读过程中结合代码进行实践,理解TSO-ELM模型的工作原理,并尝试调整参数以优化预测效果。同时,读者应关注TSO算法在高维复杂问题中的应用挑战,思考如何改进优化策略。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值