Linux学习记录——端口转发&克隆网站&搭建website

一.服务管理

管理服务的方式有三种,分别是init、service、systemctl
init
历史上,Linux 的启动一直采用init 进程。
在Linux 的计算机操作系统中,init(初始化的简称)是在启动计算机系统期间启动的第一个进程。
init 是一个守护进程,它将持续运行,直到系统关闭。它是所有其他进程的直接或间接的父进程
pid为零,进程为零
因为init 的参数全在/etc/init.d目录下,所以使用 init 启动一个服务,应该这样做:

$ sudo /etc/init.d/nginx start

Service
service是一个运行System V init的脚本命令
System V init 也就是 /etc/init.d 目录下的参数。
所以分析可知service 是去/etc/init.d目录下执行相关程序,服务配置文件的存放目录就是/etc/init.d.
使用 service 启动一个服务

$ service nginx start

可以理解成 service 就是init.d 的一种实现方式。
所以这两者启动方式(或者是停止、重启)并没有什么区别。

$ sudo /etc/init.d/nginx start
// 等价于
$ service nginx start

但是这两种方式均有如下缺点

1.启动时间长。init 进程是串行启动,只有前一个进程 启动完,才会启动下一个进程。
2.启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

systemd
Systemd 就是为了解决这些问题而诞生的。它包括 System and Service Manager,为系统的启动和管理提供一套完整的解决方案。
Systemd 是Linux 系统中最新的初始化系统(init),它主要的设计目的是克服 System V init固有的缺点,提高系统的启动速度。
根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。
使用了 Systemd,就不需要再用init 了。Systemd 取代了initd(Initd 的PID 是0) ,成为系统的第一个进程(Systemd 的PID 等于 1),其他进程都是它的子进程。
Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。
systemd 不仅管理服务也管理系统,兼容service
扩展说明
Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。
systemctl是 Systemd 的主命令,用于管理系统服务。
// 重启系统

$ sudo systemctl reboot

// 启动进入救援状态(单用户状态)

$ sudo systemctl rescue

// 管理服务

$ sudo systemctl start nginx

systemctl 和 service对比
1、管理服务的启动、重启、停止、重载、查看状态等常用命令区分

  service foo start	systemctl start foo.service	启动服务
  service foo restart	systemctl restart foo.service	重启服务
  service foo stop	systemctl stop foo.service	停止服务
  service foo reload	systemctl reload foo.service	重新加载配置文件(不终止服务)
  service foo status	systemctl status foo.service	查看服务状态

2、设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

chkconfig foo on	systemctl enable foo.service	开机自启动
chkconfig foo off	systemctl disenable foo.service	开机不自启动
chkconfig foo	systemctl is-enabled foo.service	特定服务是否为开机自启动
chkconfig --list	systemctl list-unit-files --type=service	看各个级别下服务的启动与禁用情况

总结

•init 是最初的进程管理方式
•service 是init 的另一种实现
•systemd 则是一种取代 initd 的解决方案

二.LAMP

WAMP: Apache+Mysql/MariaDB+Perl/PHP/Python
LAMP: Linux+Apache+Mysql/MariaDB+Perl/PHP/Python
能提供web服务的程序:asp,iis,apache,nginx

1.Apache

Apache HTTP Server,简称Apache, 它是 Apache 软件基金会的一个开放源码的网页服务器,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器程序之一。
支持平台:linux、unix、windows
Apache软件基金会其他开源项目:Struts,Tomcat、Hadoop、HTTP Server(即现在说的apache)等等。
程序名称:httpd
在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。 所以有时候听到apache服务器和httpd服务器指得是一个意思。

安装等命令:

yum install -y httpd
rpm -qa|grep httpd
systemctl start httpd
systemctl status httpd
curl http://localhost
systemctl stop firewalld(关闭防火墙)
设置防火墙开机不自启
systemctl disable firewalld
设置httpd开机自启
systemctl enable httpd
reboot

配置服务文件
apache服务目录
/etc/httpd
主配置文件
/etc/httpd/conf/httpd.conf
网站数据目录
/var/www/html
访问日志
/var/log/httpd/access_log
错误日志
/var/log/httpd/error_log

三.80端口转发:

要先将防火墙关闭
systemctl stop firewalld
在防火墙入站规则中新建规则

在这里插入图片描述
在虚拟网络编辑器中设置映射传入端口

在这里插入图片描述

在浏览器上访问虚拟机IP+端口号80

在这里插入图片描述

四.克隆网站:

cd /var/www/html
wget www.baidu.com(wget+想要克隆的网站)

五.apache版本说明:

查看命令:httpd -v
–说明:后续试验基于 httpd的2.2版本完成,2.4版本测试了修改主页,禁用列目录功能

实验一:
使界面出现Test123…(welcome.conf中的内容)

cd /var/www/html/
ll
-rw-r--r--. 1 root root 2381 729 11:18 index.html
-rw-r--r--. 1 root root 2381 729 11:24 index.html.1
rm -rf index.html.1

实验二:
使界面出现(index of)

mv welcome.conf welcome.conf.bak(重命名)
systemctl restart httpd(保存重启配置文件)

实验三:
使界面出现(hello)

echo "hello" > index.html

实验四:
使界面出现(Forbidden)

vi ../conf/httpd.conf(进入配置文件)
Options Indexes FollowSymLinks(注释掉)

MariaDB

安装命令
yum -y install mariadb mariadb-server
安装完成MariaDB,首先启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
MariaDB的相关简单配置
mysql_secure_installation
登录
mysql -uroot -p  #回车后 输入密码
设置远程连接

PHP

yum -y install php php-devel#安装
安装php的扩展
yum -y install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
systemctl restart httpd.service #生效
/var/www/html #下建立一个phpinfo.php文件 
cd /var/www/html/
echo '<?php phpinfo(); ?>' > phpinfo.php
http://192.168.17.131/phpinfo.php   #浏览器查看php信息

搭建Website

站点压缩文件:disuz.zip
类型:论坛
环境要求及说明:
操作系统:不限制 本次使用:Linux
PHP 版本: 5.3 本次使用:5.4.16

问题一: 网站检查文件没有权限

在这里插入图片描述

解决方法:
① 给网站文件赋权
进入网站根目录使用命令: chmod -R 777 *
②关闭selinux
getenforce #查看selinux状态
setenforce 0 #临时关闭

####永久关闭方法
打开配置文件 vim /etc/selinux/config
将配置项改成 SELINUX=disabled
然后重启虚拟机,即可生效。
问题二:报错mysqliconnect()不支持advicemysqli_connect解决办法

在这里插入图片描述

解决方案:
可能是因为缺少php-mysql组件
执行yum install php-mysql 会安装php-pdo和php-mysql两个组件
编辑/etc/php.ini
找到; extensiondir = "./"修改为extensiondir = "/usr/lib64/php/modules"(记得去掉分号)
然后重启apache,刷新安装Discuz的页面。

LAMP工作流程

在这里插入图片描述

Web服务起的工作模式和端口 ?
工作模式:B/S 模式 工作端口 80/http 默认
注意:

apache和php相互配合是使用 libphp5.so
find / -name libphp5.so
/usr/lib64/httpd/modules/libphp5.so
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值