搭建阿里云服务器(lnmp)及其常用命令整理

  1. 服务器购买:购买没有什么好说的,有钱就好了,建议双十一或者年初年尾有活动时候购买,此时会便宜许多,至于阿里云还是其他云视情况而定吧,活动基本差不多,腾讯华为等可能优惠一些,但是我前端出身加上公司是阿里云可以降低学习成本所以最终选择阿里云。
    • 购买成功后阿里云服务器会提供对应的系统镜像linux,windows,center os等,当前结合社区支持和维护通常会选择阿里云优化和ecs深度定制的阿里云linux系统,通常提供当前版本和上一个版本两个系统镜像,注意不建议直接使用最新的系统镜像,不知道阿里云有意为之还是lnmp等环境部署还没有兼容阿里云的最新系统(倾向于前者,毕竟阿里云提供了lnmp的一键安装服务,但是它收费啊,唉刚开始不了解啊花了不小的代价在最新系统版本上都不能成功安装php,自己安装也不行最终还是降了版本才安装上)。
    • 购买成功后会有公网ip,没有域名前需要记录这个ip,访问测试都需要通过这个ip访问。
  2. 服务器的通常设置:通常包括重置服务器用户密码,添加端口号包括入和出,还有就是设置防火墙和SELinux的状态(结合下面要安装lnmp通常需要关闭防火墙)
    • 重置服务器用户密码:
      • 实例与镜像->实例
      • 单击更多按钮->实例属性->重置实例密码
    • 添加端口号包括入和出:添加到安全组后的端口号才能够正常的访问
      • 网络安全->安全组
      • 单击实例id进入当前实例的安全组详情
      • 在入方向可以快速添加常用的端口号也可以手动添加对应的端口号,通常添加的SSH默认22端口、Nginx默认8080端口、HTTPS默认443端口、远程连接MySQL数据库时,需要放行MySQL默认占用的3306端口等。
    • 通过上面两部就可以通过Workbench登录阿里服务器终端进行环境的部署和文件的查看等,注意进行此操作前阿里云会自动创建一个服务账号,包括进入阿里云的云监控也会创建一个云监控账号,建议截屏保留毕竟后续说不好会用到对应的某些信息。
    • 设置防火墙和SELinux的状态:服务上线后建议打开防火墙和selinux(此为linux系统的安全子组件)对服务器的安全稳定都有作用,但是在部署服务器环境的时候有可能阻挡配置和下载等需要先将其关闭。
      systemctl status firewalld //查看防火墙状态 active:开启 inactive:禁止
      sudo systemctl stop firewalld //临时关闭防火墙
      sudo systemctl stop firewalld  +
      sudo systemctl disable firewalld //禁止服务器启动自启防火墙
      getenforce // 查询selinux是否启动 disable:禁止 enforcing:启动
      开启防火墙+关闭selinux //参考服务器的控制台的预览界面的lnmp部署教程
      
    • 此处仅整理对应的操作位置,主要为了节省篇幅,对应的详细操作及其截图可以去服务器的控制台的预览界面的lnmp部署教程中去查看。
  3. WorkBench控制后台常用的工具及其对应的常用命令
    • yum:linux仓库管理及其常用的命令,类似于mac的brew,针对软件的安装,卸载和更新,及其软件安装时候的软件依赖的安装等。
    yum update:升级系统中所有已安装的软件包到最新版本。
    yum install <package_name>:安装指定的软件包。例如,yum install vim
    yum remove <package_name>:删除指定的软件包。例如,yum remove vim
    yum search <keyword>:搜索与关键字匹配的软件包。例如,yum search vim
    yum list:列出所有可安装的软件包
    yum list installed:列出所有已安装的软件包
    yum list updates:列出所有可更新的软件包
    yum info <package_name>:显示指定软件包的详细信息。例如,yum info vim
    yum clean all:清除所有的缓存文件。
    yum clean packages:清除缓存目录下的软件包
    yum clean headers:清除缓存目录下的headers
    yum clean oldheaders:清除缓存目录下旧的headers
    yum repolist:显示配置的软件仓库列表
    yum searchall:搜索所有可用的软件包
    yum deplist <package_name>:列出软件包的依赖关系。例如,yum deplist vim
    
    • wget:linux系统的下载工具,wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定的网络中有很强的适应性,如果由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次连到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用(下面整理几个常见的wget命令,详细命令参考阿里wget
    wget url //下载对应url的数据包
    wget -0 文件名 url //下载对应url的数据包并以给定的文件名进行保存
    wget --limit-rate=300k url //限速下载
    wget -c url// 断点续传下载对应的url
    wget -b url //后台下载对应的url
    
    • ftp文件上传工具:FileZilla 有对应的mac版本和windows版本,下载安装后可以通过ip,用户名,密码,端口号(通常是22)连接服务器,连接成功后就可以直接上传下载对应的文件了。
  4. lnmp搭建:linux,nginx,mysql,php环境的搭建,搭建完成就可以启动服务运行php项目对外提供api接口等。lnmp服务的搭建可以自己安装并配置(这个可以参考阿里云服务器的lnmp环境部署的教程,参考了恭喜你玩吧,反正我是玩了两天都没有部署成功,他的教程还是首页中提供的那是一个随意,参考下面的吐槽)和通过lnmp一键安装包进行安装配置(不存在系统包冲突的情况下真的安装顺利),安装完成后就可以直接运行,太方便了。
    • 根据阿里云教程自行安装配置lnmp环境:此处主要吐槽没有实质的内容可以略过,那教程写的可是一个随意奥,lnmp教程中php的安装前是没问题的都很顺利,但是php的安装那就问题大了,安装php和php的扩展源前需要添加yum的源,epel插件的版本冲突也不知道写教程的时候在阿里云的3.2系统试没试,ius是基于epel的8.15版本的也是系统安装的版本,但是下面的epel则是需要8.21版本,也就是说这两个根本不可能同时安装上,继续后面的流程安装php闹呢根本就装不上php的pecl扩展,同时网上有说需要切换remi的yum源,切换这个源需要8.10的系统,这玩意最高才到8.05 也就是切换还得切center os stream 才行,反正很麻烦。主要是center的os也基本不维护升级了,没有再继续处理。
    • lnmp一键安装包直接安装,非常方便,不过在阿里云的最新系统镜像(3.2)上也是一直安装失败,nginx和mysql都没有问题,php也是死活安装不上(应该是3.2的存在包冲突,和自行安装应该差不多),由于刚入门搞不明白就没有去研究,将系统降级后一键安装非常方便的就安装成功了,具体参考lnmp一键安装包安装
      • 安装命令解析:
      wget https://soft.lnmp.com/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz && tar zxf lnmp2.1.tar.gz && cd lnmp2.1 && ./install.sh lnmp
      wget https://soft.lnmp.com/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz:下载lnmp一键安装包到服务器并设置名字为指定名字。
      tar zxf lnmp2.1.tar.gz :解压缩下载后的文件
      cd lnmp2.1:cd进入目录
      ./install.sh lnmp:以lnmp命令方式执行安装脚本
      wget https://soft.lnmp.com/lnmp/lnmp2.1-full.tar.gz -O lnmp2.1-full.tar.gz && tar zxf lnmp2.1-full.tar.gz && cd lnmp2.1-full && ./install.sh lnmp
      下载lnmp 2.1的完整包并进行安装
       和上面的区别是:上面只是下载一个shell文件然后根据配置动态下载需要的版本安装配置,后面是将一个1.6g的完整包下载到服务器离线安装,不需要的版本安装包也会下载,占用的资源多。
      
  5. lnmp安装后常见的路径位置整理:lnmp安装成功后记录对应的lnmp对应的目录。
    • lnmp:linux操作系统,nginx服务器提供服务,mysql数据库提供数据支持,php提供逻辑服务支持。
    • lnmp核心路径整理,其他参考lnmp官方目录整理
      Nginx 目录: /usr/local/nginx/
      MySQL 目录 : /usr/local/mysql/
      MySQL数据库所在目录:/usr/local/mysql/var/
      MariaDB 目录 : /usr/local/mariadb/
      MariaDB数据库所在目录:/usr/local/mariadb/var/
      PHP目录 : /usr/local/php/
      多PHP版本目录 : /usr/local/php5.5/ 其他版本前面5.5的版本号换成其他即可
      PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
      默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
      Nginx日志目录:/home/wwwlogs/
      
      LNMP相关配置文件位置:
      Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
      添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
      MySQL配置文件:/etc/my.cnf
      PHP配置文件:/usr/local/php/etc/php.ini
      php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
      PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf 1.3及更高版本:/usr/local/pureftpd/etc/pure-ftpd.conf
      PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
      Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
      Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
      Redis 配置文件:/usr/local/redis/etc/redis.conf
      
    • 默认网站目录 : 0.9版本为 /home/wwwroot/,查询方法:通过上面的目录找到nginx的配置文件,输入root就能找到这个路径,这个是网站或者php api服务项目的入口地址,可以放多个文件,外面通过http://ip/文件名字可以访问这个文件。部署服务将开发测试完成的php项目上传到这个位置即可。
  6. phpmyadmin:数据库管理工具的基本使用
    • phpMyAdmin 是一个基于Web的数据库管理工具,它允许用户通过互联网方便地管理MySQL和MariaDB数据库。它支持各种数据库操作,从创建和删除数据库、表格到运行SQL语句等。phpMyAdmin为管理员和开发者提供了一种直观、用户友好的界面,这使得复杂的数据库管理工作变得简单快捷。
    • 通过lnmp的安装配置后,一键安装也同时安装了phpmyadmin软件,通过http://ip/phpmyadmin 就可以打开对应的web页面通过安装lnmp时配置的mysql用户名root和密码就可以登录对mysql数据库进行管理了
    • 建库,建表,增删改查,删库,删表都可以很方便的通过这个工具操作
    • 创建对应的数据库的时候需要指定对应的列的字段的编码格式,latin1和utf8_general_ci都是其编码格式,通常服务器的使用过程中都是以utf8_general_ci编码格式的,包括开发工具也是以utf-8编码的,所以创建数据库的时候需要指定这个为utf8_general_ci,不然在数据的处理过程中可能出现乱码的情况。
    • mysql数据库的管理工具很多找到适合自己的就行,所以这个简单操作后简单做个记录即可。后面也不一定使用这个。
  7. linux、nmp等常用命令整理
    • linux常用的命令整理
      文件和目录操作命令:
      cd:切换当前工作目录。例如,cd /home进入/home目录,cd ..返回上一级目录。
      ls:列出目录内容。例如,ls -l显示文件和目录的详细信息,ls -a列出所有文件,包括隐藏文件。
      mkdir:创建新目录。例如,mkdir dir1 dir2同时创建两个目录。
      rm:删除文件或目录。例如,rm -rf dir1删除目录及其内容。
      cp:复制文件或目录。例如,cp -a dir1 dir2复制目录。
      mv:移动或重命名文件或目录。例如,mv file1 newname重命名文件。
      pwd:显示当前工作目录的绝对路径。
      
      系统管理命令:
      shutdown、reboot:分别用于关闭和重启系统。
      systemctl:用于管理系统服务。
      top:实时显示系统资源使用情况。
      free:查看系统内存使用情况。
      df、du:分别用于报告和计算文件系统的磁盘空间使用情况。
      
      网络管理命令:
      
      ping:测试主机连通性。
      ifconfig、netstat:分别用于显示网络接口信息和网络连接状态。
      ssh、scp、rsync:用于安全远程登录、复制文件和远程同步备份。
      
      文本处理命令:
      grep、sed、awk:分别用于在文件中查找字符串、执行基本文本转换和处理文本文件。
      cut、sort、uniq:用于按指定分隔符分割文件内容、排序和去除重复行。
      
      用户和权限管理命令:
      useradd、userdel:用于添加和删除用户。
      chown、chmod:用于更改文件的所有者和权限。
      passwd:用于更改用户密码。
      
    • linux中常见的nginx命令:
    1. 启动nginx
    在大多数Linux发行版中,你可以使用以下命令来启动nginx:
    sudo systemctl start nginx
    或者使用:
    sudo service nginx start
    
    2. 停止nginx
    要停止nginx服务,可以使用:
    sudo systemctl stop nginx
    或者使用:
    sudo service nginx stop
    
    3. 重新启动nginx
    如果需要重新启动nginx以应用配置更改,可以使用:
    sudo systemctl restart nginx
    或者使用:
    sudo service nginx restart
    
    4. 重载配置
    当修改了nginx的配置文件(通常位于/etc/nginx/nginx.conf或特定的站点配置文件),需要重载配置以使更改生效,可以使用:
    sudo systemctl reload nginx
    或者使用:
    sudo service nginx reload
    或者你也可以使用:
    sudo nginx -s reload
    这种方法不需要重启服务,仅重载配置。
    
    5. 查看nginx状态
    要检查nginx服务的状态,可以使用:
    sudo systemctl status nginx
    或者使用:
    sudo service nginx status
    这将显示nginx服务的当前状态,包括是否正在运行。
    
    6. 查看nginx版本
    要查看安装的nginx版本,可以使用:
    nginx -v
    
    7. 测试配置文件
    在重载配置之前,你可以使用以下命令来测试nginx配置文件的语法是否正确,以避免因配置错误导致的服务启动失败:
    sudo nginx -t
    如果配置文件有错误,该命令会指出问题所在;如果没有错误,会显示“syntax is ok”和“test is successful”。
    
    8. 停止并禁用nginx(在某些情况下可能需要)
    要停止并禁用nginx服务,可以使用:
    sudo systemctl disable nginx && sudo systemctl stop nginx
    这将禁用nginx服务,使其在系统启动时不会自动启动。再次启用时,使用sudo systemctl enable nginx。
    通过这些命令,你可以轻松地管理Linux上的nginx服务器。记得在进行任何更改后使用sudo nginx -t来测试配置文件
      的有效性,以确保你的更改不会导致服务无法启动。
    
    • linux中的mysql中的命令:针对mysql的操作和查询通常使用三方工具,此处仅整理基础命令,数据库表的操作命令不在整理。
    sudo systemctl start mysqld :启动mysql
    sudo systemctl stop mysqld:停止mysql
    sudo systemctl restart mysqld: 重启mysql
    mysql -u username -p: 登录mysql 执行后会让输入对应的密码
    
    • linux中常用的php命令:
    1. 运行PHP脚本:使用php命令后跟脚本文件名来运行PHP脚本,例如php my_script.php。
    2. 查看PHP版本:使用php -v命令来查看已安装的PHP版本。
    3. 列出已安装的扩展模块:使用php -m命令可以列出已安装的PHP扩展模块。
    4. 显示PHP配置信息:使用php -i命令可以显示PHP的配置信息。
    5. 在命令行中直接执行PHP代码:使用php -r 'code'命令可以在命令行中直接执行一行PHP代码,例如php -r 'echo "Hello, World!"'。
    6. 启动本地开发服务器:使用php -S localhost:8000命令可以在本地启动一个简单的PHP开发服务器。
    7. 检查PHP文件的语法错误:使用php -l 文件名命令可以检查PHP文件的语法错误。
    8. 进入PHP交互模式:使用php -a命令可以进入PHP交互模式,直接在命令行中输入PHP代码进行交互。
    9. 运行PHPUnit测试:使用phpunit命令可以运行PHPUnit测试。例如,phpunit --coverage-text可以生成代码覆盖率报告,phpunit --filter 方法名可以运行指定名称的测试方法。
    10. 生成PHP文档:使用phpdoc命令可以用于生成PHP文档。
    这些命令可以帮助开发者在Linux环境下更高效地进行PHP开发和系统管理任务。
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容