标签: Apache

  • htdigest命令 – 管理用户摘要认证文件

    htdigest命令是Apache的Web服务器内置工具,用于创建和更新存储用户名、域和用于摘要认证的密码文件。

    使用htdigest命令和“.htaccess”文件可以在apache的Web服务器中实现,访问目录时输入密码认证的效果。

    语法格式: htdigest [参数] [密码文件、域、用户名]

    常用参数:

    -c创建密码文件

    参考实例

    生成用户的摘要认证文件:

    [root@jiloc ~]# htdigest -c /var/www/html/.htdigest test- realmtest 
    Adding password for realmtest in realm test-.
    New password:
    Re-type new password:
  • Linux Apache Nginx SSL证书安装配置图文教程

    Linux Apache Nginx SSL证书安装配置图文教程

    下载得到的 www.domain.com.zip 文件,解压获得3个文件夹,分别是Apache、IIS、Nginx 服务器的证书文件,
    下面提供了4类服务器证书安装方法的示例:

    Apache 2.x 证书部署

    获取证书

    Apache文件夹内获得证书文件 1_root_bundle.crt,2_www.domain.com_cert.crt 和私钥文件 3_www.domain.com.key,
    1_root_bundle.crt 文件包括一段证书代码 “—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”,
    2_www.domain.com_cert.crt 文件包括一段证书代码 “—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”,
    3_www.domain.com.key 文件包括一段私钥代码“—–BEGIN RSA PRIVATE KEY—–”和“—–END RSA PRIVATE KEY—–”。

    证书安装

    编辑Apache根目录下 conf/httpd.conf 文件,
    找到 #LoadModule ssl_module modules/mod_ssl.so 和 #Include conf/extra/httpd-ssl.conf,去掉前面的#号注释;
    编辑Apache根目录下 conf/extra/httpd-ssl.conf 文件,修改如下内容:

    <VirtualHost www.domain.com:443>
        DocumentRoot "/var/www/html"
        ServerName www.domain.com
        SSLEngine on
        SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt
        SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key
        SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt
    </VirtualHost>
    

    配置完成后,重新启动 Apache 就可以使用https://www.domain.com来访问了。

    注:

    配置文件参数说明
    SSLEngine on启用SSL功能
    SSLCertificateFile证书文件
    SSLCertificateKeyFile私钥文件
    SSLCertificateChainFile证书链文件

    Nginx 证书部署

    获取证书

    Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,
    1_www.domain.com_bundle.crt 文件包括两段证书代码 “—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”,
    2_www.domain.com.key 文件包括一段私钥代码“—–BEGIN RSA PRIVATE KEY—–”和“—–END RSA PRIVATE KEY—–”。

    证书安装

    将域名 www.domain.com 的证书文件1_www.domain.com_bundle.crt 、私钥文件2_www.domain.com.key保存到同一个目录,例如/usr/local/nginx/conf目录下。
    更新Nginx根目录下 conf/nginx.conf 文件如下:

    server {
            listen 443;
            server_name www.domain.com; #填写绑定证书的域名
            ssl on;
            ssl_certificate 1_www.domain.com_bundle.crt;
            ssl_certificate_key 2_www.domain.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
            location / {
                root   html; #站点目录
                index  index.html index.htm;
            }
        }
    

    配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,重启nginx。就可以使 https://www.domain.com 来访问了。

    注:

    配置文件参数说明
    listen 443SSL访问端口号为443
    ssl on启用SSL功能
    ssl_certificate证书文件
    ssl_certificate_key私钥文件
    ssl_protocols使用的协议
    ssl_ciphers配置加密套件,写法遵循openssl标准

    使用全站加密,http自动跳转https(可选)

    对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
    在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
    在http的server里增加rewrite ^(.*) https://$host$1 permanent;
    这样就可以实现80进来的请求,重定向为https了。

  • 解决WordPress网站被利用xmlrpc.php文件攻击问题

    解决WordPress网站被利用xmlrpc.php文件攻击问题

    问题描述

    这几天博客经常有出现监控报警VPS宕机的问题,开始我还认为是VPS不稳定造成的(目前用的VPS也有遇到不稳定问题),然后通过日志看到应该是由于有被攻击利用导致的WEB卡死导致的。原因在于使用的WORDPRESS程序默认xmlrpc.php开启,而被用来DDOS攻击导致占用资源过高。

    通过日志我们可以看到如下的内容:

    解决办法

    方法一:利用Nginx直接返回,在对应的主机配置文件中添加

    location ~* /xmlrpc.php {
        deny all;
    }

    方法二:屏蔽 XML-RPC (pingback) 的功能

    在主题对应的 functions.php 中添加如下代码:

    add_filter('xmlrpc_enabled', '__return_false');

    方法三:Apache通过.htaccess屏蔽xmlrpc.php文件的访问

    # protect xmlrpc
    <Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
    </Files>

  • 如何在Docker容器中安装 apache php7.3配置环境?

    如何在Docker容器中安装 apache php7.3配置环境?

    前面我们写了 公司OA项目服务器配置注意点 ,迫于公司的系统只有现成apache的rewirte规则,而且我对apache并不熟而且使用得很少,所以这里我们记录一下如何在Docker容器中配置apache+php7.3的环境,废话不多说直接看配置。

    在powershell终端中部署容器

    docker run -d -p 8081:80 --name japache --link jmysql -v D:\wwwroot:/data/wwwroot -v D:\DockerConfig\apache2\sites-enabled\:/etc/apache2/sites-enabled/ --restart=always php:7.3-apache

    网站文件跟目录在 D:\wwwroot

    请注意容器与主机之间映射文件的对应关系

    进入Docker容器

    docker exec -it japache /bin/bash

    在容器中安装php扩展mysqli,启用rewrite功能

    docker-php-ext-install mysqli
    a2enmod rewrite

    配置apache文件

    D:\DockerConfig\apache2\sites-enabled\ 目录下配置一个名为 poweridc.conf 的文件,内容如下:

    <VirtualHost *:80>
    	ServerName poweridc
    	ServerAdmin webmaster@localhost
    	DocumentRoot /data/wwwroot/POWER_IDC
    	<Directory /data/wwwroot/POWER_IDC>
    		Options Indexes FollowSymLinks
    		AllowOverride All
    		Require all granted
    	</Directory>
    	RewriteEngine on
    	RewriteCond %{REQUEST_METHOD} ^TRACE
    	RewriteRule .* - [F]
    	RewriteRule !(^/static|\.(gif|swf|exe|png|jpg|js|css)$) /index.php [L]
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    	CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

    修改hosts(可选)

    Linux Windows MacOS 等系统中hosts的原理及作用

    浏览器访问

  • 公司OA项目服务器配置注意点

    公司OA项目服务器配置注意点

    公司OA项目中需要注意的配置,这里做一下记录。

    MySQL部分

    [mysql] 区域下添加配置:

    innodb_page_size=32k 
    sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    具体出现问题如下:

    .sql 文件修改

    搜索一下2个部分,将如下部分删除:

    • /*!50013 DEFINER=admin‘@’localhost SQL SECURITY DEFINER */
    • /*!50013 DEFINER=xiaohai@% SQL SECURITY DEFINER */

    否则 /xz_sqxg/gong_index 将会报错。

    具体错误请检查 .sql 文件中的视图部分sql代码

    Apache配置

    以下配置需写在 .conf 文件中,否则不能正常运行。

    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* - [F]
    RewriteRule !(^/static|\.(gif|swf|exe|png|jpg|js|css)$) /index.php [L]

    Nginx

    或使用nginx配置

    location ~* ^/(?![static])  {
        rewrite ^(.*)$ /index.php last;
    }
    location ~ \.php$ {
        #root           html;
        fastcgi_pass   jphp-fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /data/wwwroot/POWER_IDC$fastcgi_script_name;
        fastcgi_param  SCRIPT_URL $request_uri;
        include        fastcgi_params;
    }
  • Vultr VPS 宝塔面板中 安装WordPress后更改“固定链接”后 页面404解决方法 图文教程

    Vultr VPS 宝塔面板中 安装WordPress后更改“固定链接”后 页面404解决方法 图文教程

    WordPress中的『固定链接』

    前面WordPress采集插件介绍了WordPress在修改了『固定链接』之后页面出现了404之后直接修改Nginx以及Apache的方法,不过这个对于一些新手来说显得十分复杂。下面我们就说一下在宝塔面板中如何来支持rewrite模块。

    Vultr VPS 如何安装宝塔面板?

    宝塔面板中如何设置『伪静态』?

    登录bt宝塔面板后台后,点击左侧『网站』

    点击对应网站行的『设置』

    选择到『伪静态』菜单,然后点击『0.当前』,选择到『WordPress』

    点击『保存』即可。

  • Amh 面板 Nginx php-fpm Thinkphp Rewrite

    Amh 面板 Nginx php-fpm Thinkphp Rewrite

    前面我们介绍了?Nginx 下 ThinkPHP URL 的 PATHINFO 与 REWRITE 重写 配置方法,那么我们说一下在Amh面板中的使用方法

    Thinkphp REWRITE模式 2:
    该URL模式和PATHINFO模式功能一样,除了可以不需要在URL里面写入口文件,和可以定义.htaccess 文件外。在开启了Apache的URL_REWRITE模块后,就可以启用REWRITE模式了,具体参考下面的URL重写部分。四、兼容模式: 设置URL_MODEL 为3
    兼容模式是普通模式和PATHINFO模式的结合,并且可以让应用在需要的时候直接切换到PATHINFO模式而不需要更改模板和程序,还可以和URL_WRITE模式整合。兼容模式URL可以支持任何的运行环境。
    兼容模式的效果是:
    http://serverName/appName/?s=/module/action/id/1/
    并且也可以支持参数分割符号的定义,例如在URL_PATHINFO_DEPR为~的情况下,下面的URL有效:
    http://serverName/appName/?s=module~action~id~1

    ThinkPHP提供的Nginx环境配置情况
    在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:

    location / { // …..省略部分代码
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=$1 last;
            break;
        }
    }

    其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。

    AMH面板中的操作流程:
    1、在/usr/local/nginx/conf/rewrite下面新建一个规则文件thinkphp.conf

    2、将内容修改为如下:

    location / { 
        if (!-e $request_filename) { 
            rewrite ^(.*)$ /index.php?s=$1 last; 
            break; 
        } 
    }

    3、在面板编辑主机选择Rewrite规则:thinkphp.conf 就OK啦!

  • 升级了#Windows10#系统后XAMPP #Apache#不能启动 解决方案 图文教程

    前几天刚刚升级了win10系统,折腾了一阵总算是弄利索了,用起来还是蛮好的,就是担心以后一些软件上未必能完美兼容,尤其是一些建站的朋友们,可能对环境的稳定性要求会高些。

    今天鄙人就遇到这个问题,因为弄一些网站的事情,需要用到XAMPP的建站集成包,自从升级了Win10系统后XAMPP中Apache不能启动了

    如下图所示:

    升级了Win10系统后XAMPP中Apache不能启动的解决办法

    相信很多使用win10系统的建站朋友也会遇到这个问题,其实也不算什么问题,如果的确不知道怎么解决的,那请继续看下去。本站会分享一下Win10系统XAMPP中Apache不能启动的解决办法。

    第一步:检查Apache的端口是否被占用

    因为Apache使用的是80端口,从上面的图片可以看到。所以一把思路就是想检查端口是否有占用或者冲突等。

    方法是:快捷键”win+R”,打开运行,然后进入dos窗口,接着输入“netstat -aon | findstr :80”回车运行。如图所示:

    升级了Win10系统后XAMPP中Apache不能启动的解决办法

    Win10系统80端口被System占用 造成Apache不能启动的解决办法

    从上面的dos窗口中能看出,pid是4的进程占用着80端口,这还是一个系统进程,且不好kill掉。

    第二步:修改注册表参数

    1、打开注册表:regedit。

    方法:快捷键”win+R”,打开运行输入“regedit”回车即可。如下图:

    win10打开regedit的方法

    2、找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesHTTP

    3、在右边找到Start这一项,选中后右键“修改”将“数值数据”“3”改为:0,如图所示:

    Win10系统80端口被System占用 造成Apache不能启动的解决办法

    4、重启系统,System进程不会占用80端口

    重启之后,再启动Apache,看到Running就可以了。如图所示:

    升级了Win10系统后XAMPP中Apache不能启动的解决办法

    注:本方法鄙人试过是有效的,因为win10系统尚有很多未知兼容性问题,不保证所有人的情况都绝对一样。

WeChat