• 默认虚拟主机1.png
    6.用户认证
    vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成如下内容

    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com

    AllowOverride AuthConfig
    AuthName “abc.com user auth”
    AuthType Basic
    AuthUserFile /usr/local/apache2.4/docs/.htpasswd
    require valid-user


    /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd ytl
    重新加载配置-t , graceful
    image.png
    image.png
    7.域名跳转

    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com
    ServerAlias 111.com

    RewriteEngine on
    RewriteCond %{HTTPHOST} !^.111.com$
    RewriteRule ^/(.)$
    http://111.com/$1 [R=301,L]


    /usr/local/apache2/bin/apachectl -M|grep -i rewrite
    image.png
    8.访问日志
    vim /usr/local/apache2.4/conf/httpd.conf
    搜索LogFormat
    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
    LogFormat “%h %l %u %t \”%r\” %>s %b” common
    <VirtualHost
    :80>
    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com
    ServerAlias 111.com
    CustomLog “logs/123.com-access_log” combined

    重新加载配置文件 -t,graceful
    curl -xlocalhost-I 111.com
    image.png
    9.访问日志不记录指定类型文件
    SetEnvIf Request_URI “..gif$” image-request
    SetEnvIf Request_URI “.
    .jpg$” image-request
    SetEnvIf Request_URI “..png$” image-request
    SetEnvIf Request_URI “.
    .bmp$” image-request
    SetEnvIf Request_URI “..swf$” image-request
    SetEnvIf Request_URI “.
    .js$” image- request
    SetEnvIf Request_URI “..css$” image- request
    CustomLog “logs/www.111.com-access_log” combined env=!image-request
    重新加载配置文件 -t, graceful
    mkdir /data/wwwroot/www.111.com/images 创建目录,并在这目录下上传一个图片
    image.png
    10.访问日志切割
    SetEnvIf Request_URI “.
    .gif$” image-request
    SetEnvIf Request_URI “..jpg$” image-request
    SetEnvIf Request_URI “.
    .png$” image-request
    SetEnvIf Request_URI “..bmp$” image-request
    SetEnvIf Request_URI “.
    .swf$” image-request
    SetEnvIf Request_URI “..js$” image- request
    SetEnvIf Request_URI “.
    .css$” image- request
    CustomLog “|/usr/local/apache2.4/bin/rotatelogs -l logs/www.111.com-access
    %Y%m%d.1og 86400”combined env=!image-request
    重新加载配置文件 -t, graceful
    ls /usr/local/apache2.4/logs
    image.png
    11.设置静态元素过期时间

    # ExpiresActive on
    # ExpiresByType image/gif “access plus 1 days”
    # ExpiresByType image/jpeg “access plus 24 hours”
    # ExpiresByType image/png “access plus 24 hours”
    # ExpiresByType text/css “now plus 2 hour”
    # ExpiresByType application/x-javascript “now plus 2 hours”
    # ExpiresByType application/javascript “now plus 2 hours”
    # ExpiresByType application/x-shockwave-flash “now plus 2 hours”
    # ExpiresDefault “now plus 0 min”
    #

    需要expires_module
    curl测试,看cache-control: max-age
    image.png
    12.配置防盗链

    # SetEnvIfNoCase Referer “http://www.111.com“ local_ref
    # SetEnvIfNoCase Referer “http://111.com“ local_ref
    # SetEnvIfNoCase Referer “^$” local_ref
    #
    # Order Allow,Deny
    # Allow from env=local_ref
    #

    #

    curl -e “http://www.ytlinux.com/123.html“ 自定义referer
    image.png
    image.png
    13.访问控制-directory

    # php_admin_flag engine off
    #
    # Order deny,allow
    # Deny from all
    # Allow from 127.0.0.1
    #

    #

    image.png">mkdir -p /usr/local/apache2.4/docs/www.111.com
    #/usr/local/apache2.4/bin/apachectl -t
    #/usr/local/apache2.4/bin/apachectl graceful
    (3)配置验证
    默认虚拟主机.png默认虚拟主机1.png
    6.用户认证
    vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成如下内容

    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com

    AllowOverride AuthConfig
    AuthName “abc.com user auth”
    AuthType Basic
    AuthUserFile /usr/local/apache2.4/docs/.htpasswd
    require valid-user


    /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd ytl
    重新加载配置-t , graceful
    image.png
    image.png
    7.域名跳转

    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com
    ServerAlias 111.com

    RewriteEngine on
    RewriteCond %{HTTPHOST} !^.111.com$
    RewriteRule ^/(.)$ http://111.com/$1 [R=301,L]


    /usr/local/apache2/bin/apachectl -M|grep -i rewrite
    image.png
    8.访问日志
    vim /usr/local/apache2.4/conf/httpd.conf
    搜索LogFormat
    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
    LogFormat “%h %l %u %t \”%r\” %>s %b” common
    <VirtualHost
    :80>
    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com
    ServerAlias 111.com
    CustomLog “logs/123.com-access_log” combined

    重新加载配置文件 -t,graceful
    curl -xlocalhost-I 111.com
    image.png
    9.访问日志不记录指定类型文件
    SetEnvIf Request_URI “..gif$” image-request
    SetEnvIf Request_URI “.
    .jpg$” image-request
    SetEnvIf Request_URI “..png$” image-request
    SetEnvIf Request_URI “.
    .bmp$” image-request
    SetEnvIf Request_URI “..swf$” image-request
    SetEnvIf Request_URI “.
    .js$” image- request
    SetEnvIf Request_URI “..css$” image- request
    CustomLog “logs/www.111.com-access_log” combined env=!image-request
    重新加载配置文件 -t, graceful
    mkdir /data/wwwroot/www.111.com/images 创建目录,并在这目录下上传一个图片
    image.png
    10.访问日志切割
    SetEnvIf Request_URI “.
    .gif$” image-request
    SetEnvIf Request_URI “..jpg$” image-request
    SetEnvIf Request_URI “.
    .png$” image-request
    SetEnvIf Request_URI “..bmp$” image-request
    SetEnvIf Request_URI “.
    .swf$” image-request
    SetEnvIf Request_URI “..js$” image- request
    SetEnvIf Request_URI “.
    .css$” image- request
    CustomLog “|/usr/local/apache2.4/bin/rotatelogs -l logs/www.111.com-access
    %Y%m%d.1og 86400”combined env=!image-request
    重新加载配置文件 -t, graceful
    ls /usr/local/apache2.4/logs
    image.png
    11.设置静态元素过期时间

    # ExpiresActive on
    # ExpiresByType image/gif “access plus 1 days”
    # ExpiresByType image/jpeg “access plus 24 hours”
    # ExpiresByType image/png “access plus 24 hours”
    # ExpiresByType text/css “now plus 2 hour”
    # ExpiresByType application/x-javascript “now plus 2 hours”
    # ExpiresByType application/javascript “now plus 2 hours”
    # ExpiresByType application/x-shockwave-flash “now plus 2 hours”
    # ExpiresDefault “now plus 0 min”
    #

    需要expires_module
    curl测试,看cache-control: max-age
    image.png
    12.配置防盗链

    # SetEnvIfNoCase Referer “http://www.111.com“ local_ref
    # SetEnvIfNoCase Referer “http://111.com“ local_ref
    # SetEnvIfNoCase Referer “^$” local_ref
    #
    # Order Allow,Deny
    # Allow from env=local_ref
    #

    #

    curl -e “http://www.ytlinux.com/123.html“ 自定义referer
    image.png
    image.png
    13.访问控制-directory

    # php_admin_flag engine off
    #
    # Order deny,allow
    # Deny from all
    # Allow from 127.0.0.1
    #

    #

    image.png
    1. 安装mysql

      1. useradd -s /sbin/nologin mysql<br /> 建立MySQL用户,因为启动MySQL需要该用户<br />mkdir -p /data/mysql<br /> 创建datadir,数据库文件会放到这里面<br />chown -R mysql:mysql /data/mysql <br /> 更改权限<br />mv mysql-5.6.35-linux-glibc2.12-x86_64 /usr/local/mysql<br /> 挪动位置<br />cd /usr/local/mysql<br /> ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql<br /> --user表示定义数据库的以哪个用户的身份运<br /> --datadir表示定义数据库的安装目录<br />cp support-file/my-default.cnf /etc/my.cnf<br />vi my-default.cnf <br />修改配置文件<br /> These are commonly set ,remove the # and set as required<br /> Basedir=/usr/local/mysql <br /> basedir表示MySQL包所在路径<br /> Datadir=/data/mysql/datadir <br /> 表示定义存放数据的位置<br /> Port=3306 <br /> port表示定义MySQL服务监听的端口号<br /> Server_id=128 <br /> 表示该MySQL服务的ID号<br /> socket = /tmp/mysql.sock <br /> 定义MySQL服务监听的套接字地址<br />cp support-files/mysql.server /etc/init.d/mysql<br /> 复制启动脚本文件<br />chmod 755 /etc/init.d/mysql <br /> 修改启动脚本文件的属性<br />Vim /etc/init.d/mysql<br /> 修改启动脚本<br />chkconfig --add mysql<br /> 把mysql服务加到系统服务列表中<br />chkconfig mysql on<br /> 开机就启动<br />service mysql start<br />启动服务<br />![mysql.png](https://cdn.nlark.com/yuque/0/2021/png/22160968/1627033040225-33488d50-1b23-4ad2-8c47-b8a445e55a16.png#align=left&display=inline&height=66&margin=%5Bobject%20Object%5D&name=mysql.png&originHeight=66&originWidth=554&size=32847&status=done&style=none&width=554)<br />遇到的问题<br /> 安装Perl组件时出现问题<br /> yum install -y perl perl-devel<br /> yum install libaio* -y<br />2.安装Apache<br /> (1)解压资源包<br />tar -zxvf http-2.4.39.tar<br /> tar -zxvf apr-1.6.5.tar<br /> tar -zxvf apr-util-1.6.1.tar<br />(2)安装和配置<br /> cd /usr/local/src/apr-1.6.5<br /> ./configure --prefix=/usr/local/apr<br /> make &&make install<br /> cd /usr/local/src/apr-util-1.6.1. <br /> ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr<br /> make &&make install<br /> cd /usr/local/src/http-2.4.39<br /> ./configure --prefix=/usr/1ocal/apache2.4 --perefix指定安装目录<br />--with-apr=/usr/local/apr <br />--with-apr-util=/usr/local/apr-util <br />--enable-so --enable-so表示启用DSO<br />--enable-mods-shared=most --enable -mods- shared表示以共享形式安装模块<br />yum install -y pcre pcre-devel 为避免make时出错提前安装库文件 <br />make && make install<br />/usr/local/apache2.4/bin/apachectl -M<br />安装成功<br /> ![安装apache.png](https://cdn.nlark.com/yuque/0/2021/png/22160968/1627033624341-2f5b5109-4ee4-4790-ad61-4078a86de06c.png#align=left&display=inline&height=350&margin=%5Bobject%20Object%5D&name=%E5%AE%89%E8%A3%85apache.png&originHeight=350&originWidth=539&size=29654&status=done&style=none&width=539)<br />3.安装PHP<br /> (2)解压

      (3)安装和配置
      yum install -y libxml2-devel
      yum install -y openssl openssl -devel
      yum install -y bzip2 bzip2-devel
      yum install -y libpng libpng-devel
      yum install -y freetype freetype-devel
      yum install -y epel-release
      yum install -y libmcrypt-devel
      cd php-5.6.30
      ./configure —prefix=/usr/local/php —with-apxs2=/usr/local/apache2.4/bin/apxs —with-config-file-path=/usr/local/php/etc —with-mysql=/usr/local/mysql —with-libxml-dir—with-gd —with-jpeg-dir —with-png-dir—with-freetype-dir —with-iconv-dir—with-zlib-dir —with-bz2 —with-openssl—with-mcrypt —enable-soap—enable-gd-native-ttf —enable-mbstring—enable-sockets —enable-exif
      make && make install
      安装php.png
      4.httpd解析PHP
      vim /usr/local/apache2.4/conf/httpd.conf
      编辑配置文件
      搜ServerName,把ServerName www.example.com:80前#去掉;

      AllowOverride none
      Require all granted
      允许所有请求访问
      搜索AddType application/x-gzip .gz .tgz,在下面添加一行 AddType application/x-httpd-php .php

      DirectoryIndex index.html index.php

      测试安装
      测试配置文件是否正确
      /usr/local/apache2.4/bin/apachectl -t
      检验配置文件是否正确:Syntax OK
      /usr/local/apache2.4/bin/apachectl start
      启动httpd命令
      netstat -lnp |grep httpd
      查看是否启动
      curl localhost

      It works!


      使用curl命令简单测试,,显示了就是成功
      ② 测试是否正确解析PHP
      vim /usr/local/apache2.4/htdocs/1.php

    5.默认虚拟主机

    ServerAdmin admin@wang.com
    DocumentRoot “/usr/local/apache2.4/docs/www.111.com.com”
    ServerName www.111.com
    ServerAlias 111.com
    ErrorLog “logs/www.111.com-error_log”
    CustomLog “logs/www.111.com-access_log” combined



    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com

    mkdir -p /usr/local/apache2.4/docs/www.111.com
    #/usr/local/apache2.4/bin/apachectl -t
    #/usr/local/apache2.4/bin/apachectl graceful
    (3)配置验证
    默认虚拟主机.png默认虚拟主机1.png
    6.用户认证
    vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成如下内容

    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com

    AllowOverride AuthConfig
    AuthName “abc.com user auth”
    AuthType Basic
    AuthUserFile /usr/local/apache2.4/docs/.htpasswd
    require valid-user


    /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd ytl
    重新加载配置-t , graceful
    image.png
    image.png
    7.域名跳转

    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com
    ServerAlias 111.com

    RewriteEngine on
    RewriteCond %{HTTPHOST} !^.111.com$
    RewriteRule ^/(.)$ http://111.com/$1 [R=301,L]


    /usr/local/apache2/bin/apachectl -M|grep -i rewrite
    image.png
    8.访问日志
    vim /usr/local/apache2.4/conf/httpd.conf
    搜索LogFormat
    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
    LogFormat “%h %l %u %t \”%r\” %>s %b” common
    <VirtualHost
    :80>
    DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
    ServerName www.111.com
    ServerAlias 111.com
    CustomLog “logs/123.com-access_log” combined

    重新加载配置文件 -t,graceful
    curl -xlocalhost-I 111.com
    image.png
    9.访问日志不记录指定类型文件
    SetEnvIf Request_URI “..gif$” image-request
    SetEnvIf Request_URI “.
    .jpg$” image-request
    SetEnvIf Request_URI “..png$” image-request
    SetEnvIf Request_URI “.
    .bmp$” image-request
    SetEnvIf Request_URI “..swf$” image-request
    SetEnvIf Request_URI “.
    .js$” image- request
    SetEnvIf Request_URI “..css$” image- request
    CustomLog “logs/www.111.com-access_log” combined env=!image-request
    重新加载配置文件 -t, graceful
    mkdir /data/wwwroot/www.111.com/images 创建目录,并在这目录下上传一个图片
    image.png
    10.访问日志切割
    SetEnvIf Request_URI “.
    .gif$” image-request
    SetEnvIf Request_URI “..jpg$” image-request
    SetEnvIf Request_URI “.
    .png$” image-request
    SetEnvIf Request_URI “..bmp$” image-request
    SetEnvIf Request_URI “.
    .swf$” image-request
    SetEnvIf Request_URI “..js$” image- request
    SetEnvIf Request_URI “.
    .css$” image- request
    CustomLog “|/usr/local/apache2.4/bin/rotatelogs -l logs/www.111.com-access
    %Y%m%d.1og 86400”combined env=!image-request
    重新加载配置文件 -t, graceful
    ls /usr/local/apache2.4/logs
    image.png
    11.设置静态元素过期时间

    # ExpiresActive on
    # ExpiresByType image/gif “access plus 1 days”
    # ExpiresByType image/jpeg “access plus 24 hours”
    # ExpiresByType image/png “access plus 24 hours”
    # ExpiresByType text/css “now plus 2 hour”
    # ExpiresByType application/x-javascript “now plus 2 hours”
    # ExpiresByType application/javascript “now plus 2 hours”
    # ExpiresByType application/x-shockwave-flash “now plus 2 hours”
    # ExpiresDefault “now plus 0 min”
    #

    需要expires_module
    curl测试,看cache-control: max-age
    image.png
    12.配置防盗链

    # SetEnvIfNoCase Referer “http://www.111.com“ local_ref
    # SetEnvIfNoCase Referer “http://111.com“ local_ref
    # SetEnvIfNoCase Referer “^$” local_ref
    #
    # Order Allow,Deny
    # Allow from env=local_ref
    #

    #

    curl -e “http://www.ytlinux.com/123.html“ 自定义referer
    image.png
    image.png
    13.访问控制-directory

    # php_admin_flag engine off
    #
    # Order deny,allow
    # Deny from all
    # Allow from 127.0.0.1
    #

    #

    image.png

    14.禁止解析PHP

    php_admin_flag engine off

    image.png
    15.访问控制-user—agent

    # RewriteEngine on
    # RewriteCond %{HTTP_USER_AGENT} .curl. [NC,OR]
    # RewriteCond %{HTTP_USER_AGENT} .baidu.com. [NC]
    # RewriteRule . - [F]
    #

    测试
    image.png
    16.PHP基础配置
    eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close phpinfo
    error_log, log_errors, display_errors, error_reporting
    open_basedir
    image.png
    image.png
    image.png
    *image.png

    image.pngimage.pngimage.pngimage.pngimage.pngimage.png
    image.png
    PHP动态扩展模块
    解压
    tar -xzvf redis-2.2.3.tgz
    cd redis-2.2.3
    解析配置文件
    ./configure —with-php-config=/usr/local/php/bin/php-config
    安装make
    make && make install

    image.png
    image.png