huawei euleros - 用宝塔面板安装nginx
在本地装好huawei euleros v2.0SP5基本系统.想装第三方软件, e.g. nginx, apache…但是都提示有好多库缺失, 应该是少装了一些库.最后, 装的是开发者选项, 将附加选项都选上.按照华为云官方说明, 将yum repo配好.现在就可以装第三方软件了, 不会显示缺什么库, 挺正常的.
文章目录
huawei euleros - 用宝塔面板安装nginx
概述
在本地装好huawei euleros v2.0SP5基本系统.
想装第三方软件, e.g. nginx, apache…
但是都提示有好多库缺失, 应该是少装了一些库.
最后, 装的是开发者选项, 将附加选项都选上.
按照华为云官方说明, 将yum repo配好.
现在就可以装第三方软件了, 不会显示缺什么库, 挺正常的.
前置准备
已经写了笔记, 基本环境配置 + yum repo 配置, 这2步必须做完.
hawei EulerOS - 安装后的基本配置操作
huawei euleros - add yum repo
安装第三方软件
初步我就想搭一个web服务器环境, nginx或者apache都行, 将网站素材丢进www根目录, 能显示静态网页就行.
看到网上大神推荐, 用宝塔面板来快速搭建web站点环境.
我也试试.
安装宝塔面板
在bing中搜索 “宝塔面板”
转到宝塔面板官网
点击免费安装
找到Linux面板, 点击安装脚本.
euleros是centos改进版, 所以这里选择centos脚本, 点击复制, 得到安装脚本.
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
因为vmware16没装vmtools, 所以无法在命令行粘贴这行脚本.
我是用SecretCRT连接主机, 然后 su - root 切到 root用户, 在SecretCRT命令窗口粘贴这行脚本.
如果不是安装的euleros开发者选项, 运行宝塔脚本也会一堆报错, 说很多库缺失了. 所以必须先将前置的2个笔记内容做了.
安装完成后如下:
因为我不是在公网华为云服务器上安装, 外网IP是活动的, 就在内网面板上运行宝塔网页环境.
如果是在公网的华为云服务器上安装宝塔面板, 有固定的公网IP, 就用宝塔提供的公网url.
将这个框框中的宝塔环境(url, username, pwd)保存好.
查询宝塔面板用的8888端口是否打开了
[root@localhost ~]# firewall-cmd --query-port=8888/tcp
yes
如果端口没打开, 官方文档上有说明, 或者直接查看 firewall-cmd --help
运行宝塔面板
先做个vmware的快照(将宝塔面板的访问信息写入快照的备注), 如果有幺蛾子, 还可以重来.
在chrome浏览器中运行宝塔内网url, 输入在命令行安装完宝塔完成时得到的用户名和口令. 绑定宝塔账号(用手机注册的宝塔账户)
在弹出的安装对话框中, 选择LNMP或LAMP的环境, 挑一个, 点击"一键安装".
装好后, 如果nginx或apache正常运行, 就得到了一个web网站的可用容器.
先试试LNMP(装的是nginx)
等着安装列表中的任务完事, 大概10分钟.
如果宝塔对话框没动静了, 点击一下对话框左边的按钮(任务列表, 消息列表), 切换一下按钮.
最后任务列表为0, 就是安装完了.叉掉安装对话框.
在宝塔面板添加新网站
添加完网站后, 可以看到网站的根目录为 /www/wwwroot/192.168.236.60, 往这个目录中放web网站素材就行了.
现在访问一下 http://192.168.236.60, 看看有没有反应.
有反应, 说明已经访问到nginx的web服务了. 只是下一步要去配置nginx.
现在关机, 做vmware镜像, 如果在调整时出了幺蛾子, 还可以后悔.
重新启动虚拟机.
去/www/wwwroot/192.168.236.60看看有啥东西.
直接运行 http://192.168.236.60/index.html, 还显示403
那下一步, 就是去配置nginx或者去配置erleros
查看端口开了么?
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client
ports: 20/tcp 21/tcp 22/tcp 80/tcp 443/tcp 8888/tcp 39000-40000/tcp 888/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
可以看到端口80, 443 都开了.
查看nginx配置文件
[root@localhost ~]# nginx -t
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful
打开配置文件, 查看日志位置
error_log /www/wwwlogs/nginx_error.log
access_log /www/wwwlogs/access.log;
access_log off;
可以看到访问日志关了.
去看看错误日志, 错误日志中没东西
重启nginx
service nginx restart
动态查看nginx日志
tail -f /www/wwwlogs/nginx_error.log
重新访问 http://192.168.236.60
还是403, 且日志中没东西.
打开访问日志(将 /www/server/nginx/conf/nginx.conf 中的 access_log on;)
重启nginx (service nginx restart)
实时查看访问日志
tail -f /www/wwwlogs/access.log
重新访问 http://192.168.236.60
还是403, 且日志中没东西.
(复原 /www/server/nginx/conf/nginx.conf 中的 access_log off;)
修改配置文件中的 user
vi /www/server/nginx/conf/nginx.conf
# user www www; # 修改为下面这行
user root www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
重启nginx
service nginx restart
再访问网页
这回行了
再做个虚拟机快照, 想后悔时还来得及.
重新启动虚拟机
修改web素材, 试试效果, 确定web素材目录
查了资料, 直接用SecretCRT来传文件也行, 是命令行的, 不方便.
正好SecretCRT便携版中还有一个SecureFXPortable.exe, 是可视化的SFTP工具.
以noroot用户登录
上面实验已经知道, 网站的根目录为 /www/wwwroot/192.168.236.60
看看noroot用户是否能访问?
访问不到
将noroot用户加入网站目录所有者的组
查看noroot用户现在, 在哪些组中
[noroot@localhost ~]$ groups noroot
noroot : noroot wheel
可以看到noroot用户属于noroot(加用户时的同名默认组), wheel(修改sudo时加入的组)
看看网站根目录属于哪个组?
切到root用户下操作
[root@localhost ~]# ls -l /www/wwwroot
总用量 4
drwxr-xr-x 2 www www 4096 10月 2 13:27 192.168.236.60
那将www组加进noroot用户就好了.
sudo usermod -a -G www noroot
再次查看noroot用户现在在哪些组中?
切回noroot用户
su - noroot
[noroot@localhost ~]$ groups noroot
noroot : noroot wheel www
行了, noroot用户已经对 www组有权限了
运行 SecureFX, 用noroot用户登录, 由/WWW目录切到/WWW/wwwroot目录时, 报错, 访问拒绝.
i SEND : Stat /www/wwwroot
i SEND : RealPath, base=/www/wwwroot
i Resolved RealPath: /www/wwwroot
! Open directory failed: /www/wwwroot (Access is denied.)
那可能是目录的组权限不够, 再看一眼目录权限
drwxr-xr-x. 7 root root 4096 10月 2 12:19 www
# noroot可以 cd /www
[noroot@localhost www]$ pwd
/www
[noroot@localhost www]$ ls -l
总用量 20
drw-------. 6 root root 4096 10月 2 12:19 backup
-rw-------. 1 root root 5 10月 2 12:16 disk.pl
drwxr-xr-x. 14 root root 4096 10月 2 17:19 server
drwx------. 3 www www 4096 10月 2 17:25 wwwlogs
drwx------. 3 root root 4096 10月 2 17:25 wwwroot
[noroot@localhost www]$ cd wwwlogs
-bash: cd: wwwlogs: 权限不够
[noroot@localhost www]$ cd wwwroot
-bash: cd: wwwroot: 权限不够
发现这2个目录(/www/wwwlogs, /www/wwwroot)只有所有者有权限, 组和其他人都没有权限, 所以进不去目录.
这就是SFTP工具切不到这2个目录的原因. 为了传文件, 只需要/www/wwwroot/IP目录的权限
将这个目录的其他人权限改为可读可执行
chmod o+rx-w /www/wwwroot
[root@localhost www]# ls -l
总用量 20
drw-------. 6 root root 4096 10月 2 12:19 backup
-rw-------. 1 root root 5 10月 2 12:16 disk.pl
drwxr-xr-x. 14 root root 4096 10月 2 17:19 server
drwx------. 3 www www 4096 10月 2 17:25 wwwlogs
drwx---r-x. 3 root root 4096 10月 2 17:25 wwwroot
可以看到 wwwroot目录, 是root用户所有, 组没有权限, 其他人权限为读和执行.
切回noroot用户, 试试操作这个目录
[root@localhost www]# su - noroot
上一次登录:2022年 10月 2日 18:28:25 星期日 CSTpts/0 上
[noroot@localhost ~]$ cd /
[noroot@localhost /]$ ls -l
总用量 76
...
drwxr-xr-x. 7 root root 4096 10月 2 12:19 www
[noroot@localhost /]$ cd /www
[noroot@localhost www]$ ls -l
总用量 20
drw-------. 6 root root 4096 10月 2 12:19 backup
-rw-------. 1 root root 5 10月 2 12:16 disk.pl
drwxr-xr-x. 14 root root 4096 10月 2 17:19 server
drwx------. 3 www www 4096 10月 2 17:25 wwwlogs
drwx---r-x. 3 root root 4096 10月 2 17:25 wwwroot
[noroot@localhost www]$ cd wwwroot
[noroot@localhost wwwroot]$ ls -l
总用量 4
drwxr-xr-x 2 www www 4096 10月 2 17:25 192.168.236.60
[noroot@localhost wwwroot]$ cd 192.168.236.60/
[noroot@localhost 192.168.236.60]$ ls -l
总用量 8
-rwxr-xr-x 1 www www 138 10月 2 17:25 404.html
-rwxr-xr-x 1 www www 917 10月 2 17:25 index.html
可以看到, 将root用户所有的目录的其他人权限, 改为r-x就行了, 就可以让noroot用户通过命令行进入这些目录.
现在用SFTP工具试试.
可以看到, 可以将web素材拷贝出来.
现在将web素材改改, 看看能不能拷贝覆盖回去.
SFTP工具的日志如下, 打不开同名的目标文件
i Transfer(0x000D4C2000000005): Attempted to transfer 1 files.
i Transfer(0x000D4C2000000005): Transferred 0 files successfully.
i Transfer(0x000D4C2000000005): index.html: Unable to open destination file.
运行网页, 还是原来没改过的网页内容.
[noroot@localhost wwwroot]$ cd 192.168.236.60/
[noroot@localhost 192.168.236.60]$ ls -l
总用量 8
-rwxr-xr-x 1 www www 138 10月 2 17:25 404.html
-rwxr-xr-x 1 www www 917 10月 2 17:25 index.html
可以看到目标文件都是www用户和用户组的, 其他用户只有执行的权限.
试试用www用户登录SFTP工具, 然后换文件.
passwd www
service nginx restart
www用户不能用来登SFTP
试试在命令行中, 删掉/www/wwwroot/192.168.236.60目录中的内容.
用noroot用户登录sftp工具, 将修改过的web素材丢到/www/wwwroot/192.168.236.60目录中.
也丢不进去.
看192.168.236.60目录权限
[root@localhost wwwroot]# pwd
/www/wwwroot
[root@localhost wwwroot]# ls -l
总用量 4
drwxr-xr-x 2 www www 4096 10月 2 19:16 192.168.236.60
发现这个目录的组是没有写权限的.
尝试将写权限给组, 因为noroot用户属于组www, 试试.
[root@localhost wwwroot]# chmod g+rxw /www/wwwroot/192.168.236.60
[root@localhost wwwroot]# ls -l
总用量 4
drwxrwxr-x 2 www www 4096 10月 2 19:16 192.168.236.60
再试试用noroot用户登录SFTP工具, 看看能不能替换web素材.
替换成功了!
现在运行一下网页试试
备注
这次实验目的(搭建一个可用的web环境)就成功了.
下一步, 将参加活动买的华为服务器上的环境重新搭建一次.
那么本地和远程就有了同样的环境, 在本地修改测试完, 再丢到远程服务器上正式跑.
END
更多推荐
所有评论(0)