Linux基础(day42)

Stella981
• 阅读 630

11.14/11.15 Apache和PHP结合

配置httpd支持php目录概要

  • httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
  • vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方
    • ServerName
    • Require all denied
    • AddType application/x-httpd-php .php
    • DirectoryIndex index.html index.php /usr/local/apache2.4/bin/apachectl -t //测试语法 /usr/local/apache2.4/bin/apachectl start //启动服务 netstat -lntp curl localhost vim /usr/local/apache2.4/htodcs/test.php //增加如下内容
  • curl localhost/test.php

编辑httpd的配置文件

  • 在安装好Apache、mysql、httpd,但是还未结合在一起,虽然apche调用了php作为它的模块,但是还不知道是否能解析php,所以现在还是需要编辑Apache的配置文件
  • httpd主配置文件,在/usr/local/apache2.4/conf/httpd.conf下
    • 编辑四个地方
      • 定义ServerName,去除 # 号
        • 在/usr/local/apache2.4/bin/apachectl restart 乍一看是报错信息,其实只是一个警告信息,并不是错误,若想不看到这个提示,可以在 /usr/local/apache2.4/conf/httpd.conf 取消掉
        • 方法:在/usr/local/apache2.4/conf/httpd.conf 中搜索 /ServerName ,然后将 # ServerName www.example.com:80 前的# 去除掉,保存退出即可
      • 把Require all denied 改成
        • 若是不更改,那么访问会是 403

第一处:取消警告信息

  1. 在运行/usr/local/apache2.4/bin/apachectl start 会跳出警告信息

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf //ctrtl+z退出下

    [1]+ 已停止 vim /usr/local/apache2.4/conf/httpd.conf [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl restart //会看到警告信息 AH00557: httpd: apr_sockaddr_info_get() failed for hanfeng AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message [root@hf-01 ~]# fg //回到刚暂停的任务中——>vim /usr/local/apache2.4/conf/httpd.conf

    在文件中搜索 /ServerName 然后将 # ServerName www.example.com:80 前的# 去除掉保存退出即可

  2. 在去除# 号之后,运行apache,会提示79行错误

    • 原因:是因为在最后调用了两个PHP,加载了两个PHP,导致冲突
    • 解决方法:只需要注释掉一个PHP即可

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl restart httpd not running, trying to start /usr/local/apache2.4/bin/apachectl: 行 79: 2348 段错误 $HTTPD -k $ARGV [root@hf-01 ~]#

  3. 在注释掉一个PHP,就会发现不提示警告信息了

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl start [root@hf-01 ~]#

  4. 查看httpd进程

    [root@hf-01 ~]# ps aux |grep httpd root 2453 0.0 0.8 254072 8820 ? Ss 23:52 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 2454 0.0 0.8 540900 8972 ? Sl 23:52 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 2455 0.0 0.8 540900 8972 ? Sl 23:52 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 2456 0.0 0.8 540900 8972 ? Sl 23:52 0:00 /usr/local/apache2.4/bin/httpd -k start root 2541 0.0 0.0 112676 980 pts/0 R+ 23:54 0:00 grep --color=auto httpd [root@hf-01 ~]#

  5. 因为在打开了ServerName,就不在提示警告信息了

第二处:更改Require all denied

  1. 首先,我们可以用浏览器访问自己虚拟机的IP,会发现无法访问
    • 则会提示检查代理服务器和防火墙
  2. 在遇到这种问题,排查方法
  3. 先查看IP是否是通的,用物理机去ping 虚拟机的 IP

Linux基础(day42)

  1. 若IP是通的,再去判断80端口是否是通的——>用物理机去ping80端口

Linux基础(day42)

  1. 因为windows 并没有打开telnet 客户端,所以会提示并没有这个命令
  2. 打开telnet客户端——>注意:不要打开Telnet服务端,否则会监听23端口,不安全
      1. 打开物理机的控制面板
      1. 然后选择程序
      1. 再选择打开或关闭Windows功能
      1. 选择Telnet客户端,并打开

Linux基础(day42) 7. 若是可以运行 telnet 命令,那出来的则是一个结果,显示80并不通

  • 因为在linux虚拟机上,并没有打开80端口
  1. 在虚拟机上,使用iptables -nvL 命令,会查看到80端口并没有打开

    [root@hf-01 ~]# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
    347 32935 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
    266 26673 INPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
    266 26673 INPUT_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
    266 26673 INPUT_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
    0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
    262 26469 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 等等,只截取了一部分,会发现80端口并没有打开

  2. 若想要windows机器去访问它,还需要加上一个操作

  • 单独一条命令,临时加上80端口——> iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    [root@hf-01 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@hf-01 ~]#

  1. 这时再用物理机去访问虚拟机IP,则会显示 It works!

Linux基础(day42)

  1. 之前不能正常访问,就是由于防火墙的规则,没有加上80端口,不能正常访问
  2. 这时打开windows来查看80端口,这样的界面表示80端口通了

Linux基础(day42)

  1. 在物理机中按 ctrl+] 退出来,然后在按 quit 字符退出

Linux基础(day42)

  1. 这时删除之前加的那条规则,再来物理机查看虚拟机的80端口,会发现不通了
[root@hf-01 ~]# iptables -D INPUT -p tcp --dport 80 -j ACCEPT
[root@hf-01 ~]# 

Linux基础(day42)

  1. 这时在把规则添加上,会发现又可以正常访问了
  2. 有时浏览器去访问虚拟机的IP,会显示 403Forbidden 错误界面
  • 这是因为在/usr/local/apache2.4/conf/httpd.conf配置文件中,有一个Require all denied
    • 然后搜索 /denied ,
  1. 打开/usr/local/apache2.4/conf/httpd.conf配置文件
[root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

然后搜索 /denied ,会看到
<Directory />
    AllowOverride none
    Require all denied
</Directory>
把 denied 改成 granted 
  1. 之前可以在浏览器正常访问虚拟机ip,是因为
[root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

是因为DocumentRoot指定了Directory,即如下:
DocumentRoot "/usr/local/apache2.4/htdocs"        
<Directory "/usr/local/apache2.4/htdocs">


还有后面的
Require all granted

若是将这里的Require all granted改成Require all denied ,那肯定无法浏览
  1. 在更改完配置文件,需要重新加载配置
  • /usr/local/apache2.4/bin/apachectl -t //检查你修改的配置文件是否存在错误

    • -t参数,会检查你修改的配置文件是否存在语法错误
      • 若语法不对,则会报错

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@hf-01 ~]#

  • 重新加载配置文件

    • graceful 只会重新加载配置文件,而不会重启你的服务
      • 就是说即使你的配置文件有问题,它最多加载不成功,而不会把你的进程杀掉

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl graceful [root@hf-01 ~]#

  1. 在配置文件中的,两处位置都应该改成granted,这是为了防止你在打开虚拟主机配置文件的时候,显示403Forbidden(403是它的状态码,正常情况下,状态码都是200)

第三处:因为要支持php,所以要增加一行php相关的配置

  • 如果不增加这一行,那么php就无法解析

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

    搜索 /AddType,然后 AddType application/x-compress .Z AddType application/x-gzip .gz .tgz 在这两行下面,增加php一行 AddType application/x-httpd-php .php

第四部分,增加一个索引页

  • 索引页作用:在打开一个网站,为什么不输入index.php就可以直接访问呢

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

    搜索 /Index ,找到

    DirectoryIndex index.html

    在index.html后加 index.php 显示为

    DirectoryIndex index.html index.php
  • 然后检查配置文件是否有错误

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@hf-01 ~]#

  • 然后重新加载配置文件

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl graceful [root@hf-01 ~]#

检查Apache是否支持解析php5

  1. 验证

    • 写一个测试php脚本
      • 在访问的时候,访问的是htdocs下的文件
    • phpinfo,可以把php的相关信息打印出来

    [root@hf-01 ~]# vi /usr/local/apache2.4/htdocs/1.php

    在文件中写入

    然后保存退出

  2. 然后在浏览器访问虚拟机ip地址并添加页面地址(IP/index.php),然后会看到显示出内容——>增加一个文件是不需要重启php的

    http://192.168.74.129/1.php

Linux基础(day42)

  1. 当看到php正常显示,如上图,那说明php支持支持解析

  2. 如果php不支持解析(以上四步骤错误一处),那么刷新页面显示出来的则是源代码(就是 1.php 文件中的代码)

  3. 如果遇到php无法解析,则去检查Apache的配置文件

    1. 第一项,查看是否加载php5模块,使用/usr/local/apache2.4/bin/apachectl -M命令
      • 如果没有加载这个模块,查看这个模块是否存在。使用 ls /usr/local/apache2.4/modules/libphp5.so查看文件是否存在,若是文件都没有,那么肯定不会加载这个模块

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (static) authn_file_module (shared) authn_core_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_core_module (shared) access_compat_module (shared) auth_basic_module (shared) reqtimeout_module (shared) filter_module (shared) mime_module (shared) log_config_module (shared) env_module (shared) headers_module (shared) setenvif_module (shared) version_module (shared) unixd_module (shared) status_module (shared) autoindex_module (shared) dir_module (shared) alias_module (shared) php5_module (shared) [root@hf-01 ~]# ls /usr/local/apache2.4/modules/libphp5.so /usr/local/apache2.4/modules/libphp5.so

    1. 第二项,如果有文件,则没有显示php模块,那么就要去看apache的配置文件中有没有加载 libphp5 这一行配置,在文件中搜索/libphp5 ,如果没有这一行配置,那么肯定也是无法解析的

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

    在文件中搜索/libphp5,看是否加载了这一行配置 LoadModule php5_module modules/libphp5.so

    1. 第三项,检查配置文件中是否加载了 AddType application/x-httpd-php .php 这一行
      • 在 .php 前面有一行空格,需要注意下!不能遗忘!!!——>使用 /usr/local/apache2.4/bin/apachectl -t 可以检查出配置写错了

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

    在文件搜索/AddType中关于php这一行配置是否存在 AddType application/x-httpd-php .php

    1. 第四项,检查是否加了 index.php

    [root@hf-01 ~]# ls /usr/local/apache2.4/htdocs/ 1.php index.html [root@hf-01 ~]#

检查Apache是否支持解析php7

  1. 在配置文件中,注释掉php5,打开php7

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

    在文件中搜索 /libphp7,然后注释掉php5打开php7

    LoadModule php5_module modules/libphp5.so

    LoadModule php7_module modules/libphp7.so

  2. 快捷键 ctrl+r ,可以快速执行命令历史中所用过的一些命令

    • 在快捷键 ctrl+r 之后,然后输入命令的一些字母,就会显示出你使用过的命令
  3. 然后检查配置文件是否存在语法错误,并重新加载配置文件

    [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl graceful [root@hf-01 ~]#

  4. 会看到更换了php7之后,用物理机访问虚拟机的ip,也会正常显示

Linux基础(day42)

  1. 在浏览器打开看到的phpinfo,和/usr/local/php7/bin/php -i |less看到的结果基本是一致的,只不过一个是文本形式,一个是图形化,图形化看起来更加直观,清晰明了

    [root@hf-01 ~]# /usr/local/php7/bin/php -i |less phpinfo() PHP Version => 7.1.6

    System => Linux hf-01 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 Build Date => Dec 18 2017 22:25:37 Configure Command => './configure' '--prefix=/usr/local/php7' '--with-apxs2=/usr/local/apache2.4/bin/apxs' '--with-config-file-path=/usr/local/php7/etc' '--with-pdo-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--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' Server API => Command Line Interface Virtual Directory Support => enabled Configuration File (php.ini) Path => /usr/local/php7/etc Loaded Configuration File => (none) Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none) PHP API => 20160303 PHP Extension => 20160303 Zend Extension => 320160303 Zend Extension Build => API320160303,TS

    等等等,只截取了一部分

11.16/11.17 Apache默认虚拟主机

httpd的默认虚拟主机目录概要

  • 一台服务器可以访问多个网站,每个网站都是一个虚拟主机
  • 概念:域名(主机名)、DNS、解析域名、hosts
  • 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
  • vim /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉#
  • vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改为如下 <VirtualHost *:80> ServerAdmin admin@aminglinux.com DocumentRoot "/data/wwwroot/aming.com" ServerName aming.com ServerAlias www.aming.com ErrorLog "logs/aming.com-error_log" CustomLog "logs/aming.com-access_log" common

<VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.123.com - /usr/local/apache2/bin/apachectl –t - /usr/local/apache2/bin/apachectl graceful ## 默认虚拟主机 - 默认虚拟主机,可以理解成Apache(也就是httpd),一个服务下面跑多了多个网站,跑了多个域名 - 例子,假如在服务器上,它既能访问百度,又能访问谷歌,这是两个不同的网站,但同时都在一台服务器运行着,就用了一个httpd的服务,这个就是一个网站多个域名,每一个域名对着一个虚拟主机 ## 更改hosts - 在windows下去写hosts 1. hostsl路径地址,这个和linux下的hosts类似 1. 打开物理机C盘 2. 然后选择Windows 3. 再选择System32 4. 选择dirvers 5. 选择etc 6. 选择hosts

Linux基础(day42)

  1. 可以在这个里面定义一个IP,定义一个域名,然后让这个域名指向到这个IP上去
  2. 打开方式选择 记事本
  3. 打开文件,会看到windows下的hosts

Linux基础(day42)

  1. 然后在hosts文件中,任何一处位置加入一行,然后保存!
  • 格式:先IP,然后空格,加域名——>域名可以写多个,一行里面可以有多个域名

    • 这个IP地址为虚拟机的IP

    192.168.202.130 www.abc.com www.123.com

  1. 然后物理机去ping 网址,能看到都能ping通

Linux基础(day42)

  1. 正常情况下,不写hosts,去ping——>将hosts中添加的一行注释掉

    192.168.202.130 www.abc.com www.123.com

  2. 然后再去物理机去ping www.abc.com,会看到IP是公网IP

Linux基础(day42)

  1. 这个就是hosts的作用,它的目的就是让你临时访问到一个服务器上去
  1. 这时候在将hosts中加入的那一行# 去掉
192.168.202.130  www.abc.com www.123.com
  1. 然后用物理机中的浏览器去访问www.abc.com或www.123.com,会看到正常访问

Linux基础(day42)

  1. 浏览器去访问www.123.com/1.php,会看到正常访问

Linux基础(day42)

  1. 或许会有一个疑问,123.com和abc.com,包括这个IP并没有在httpd的配置文件中去定义它,在配置文件中仅仅定义了 www.example.com这个域名,这个叫做Apache的默认主机 ,也就是说,任何一个域名,指向到这个 IP ,它都会访问到这个站点,这个站点就叫做默认虚拟主机——>注意:是虚拟主机
  • 如果没有做任何操作,仅仅使用了httpd.conf,它实际上就是主配置文件定义的这个ServerName,以DocumentRoot ,但这样不太好管理,毕竟一台服务器上可以跑多个域名,若不想域名都指向到这里,所以需要打开一个虚拟主机配置文件
  1. 打开虚拟主机,在/usr/local/apache2.4/conf/httpd.conf 配置文件中
[root@hf-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

搜索/extra 关键词,这一行就做虚拟主机
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

把#Include conf/extra/httpd-vhosts.conf前面的 #号 去掉 Include conf/extra/httpd-vhosts.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
  1. 因为配置文件仅仅能定义一个ServerName,所以现在打开一个二级配置文件
  • 二级配置文件就是虚拟主机配置文件

    • 在这个配置文件里,是可以定义多个ServerName的

    [root@hf-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //虚拟主机配置文件

    在打开配置文件,会发现有两个<VirtualHost *:80> ,每一个都是一对出现的,每一个都代表着一个主机,一个主机就是一个网站

    <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com //定义管理员的邮箱——>可删除 DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com" //定义网站的根目录在哪里 ServerName dummy-host.example.com //服务器名字 ServerAlias www.dummy-host.example.com //定义别名,别名就是一个网站可以有多个域名访问,比如可以是abc.com访问,也可以是www.abc.com访问,访问的内容是一致的 ErrorLog "logs/dummy-host.example.com-error_log" //错误日志 CustomLog "logs/dummy-host.example.com-access_log" common //访问日志

    <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common

  1. 在打开虚拟主机配置文件后,做一个更改
  • 更改后

    <VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com ServerAlias www.abc.com www.123.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common

    <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com //验证 ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common

    然后保存退出
  1. 更改完配置文件,就去创建对应的目录
[root@hf-01 ~]# mkdir /data/wwwroot/
[root@hf-01 ~]# mkdir /data/wwwroot/abc.com
[root@hf-01 ~]# mkdir /data/wwwroot/111.com
[root@hf-01 ~]# 
  1. 在对应的站点根目录下创建,定义一个php
[root@hf-01 ~]# vim /data/wwwroot/abc.com/index.php

在文件中写入
<?php
echo "abc.com";

并保存退出
  1. 然后在/data/wwwroot/111.com/index.php中也定义一个php
[root@hf-01 ~]# vim /data/wwwroot/111.com/index.php

在文件中写入
<?php
echo "111.com";

并保存退出
  1. 在定义完之后,去检查服务是否有错误
[root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@hf-01 ~]# 
  1. 然后重新加载配置文件
[root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@hf-01 ~]# 
  1. 定义一个网站最核心的参数就是网站的根目录在哪里,访问的域名是什么,ServerName只能写一个,而ServerAlias可以写多个域名

虚拟主机常识

测试虚拟主机

  • curl -x命令
  1. 比如说,现在要访问abc,com,若不去绑定hosts,那么在虚拟机中ping www.abc.com会ping到外网上去,并没有在这台机器上。若想要访问abc.com在在这台机器上,可以编辑/etc/hosts文件去指定下,或者使用curl -x选项

    [root@hf-01 ~]# curl -x192.168.74.129:80 abc.com abc.com[root@hf-01 ~]# curl -x192.168.74.129:80 www.abcd.com abc.com[root@hf-01 ~]# curl -x192.168.74.129:80 www.abcde.com abc.com[root@hf-01 ~]#

  • 在访问abcd.com,会发现访问的还是abc.com,这个之前无论把任何域名指向到192.168.74.129这台机器上,都会访问到htdocs目录下面去,但现在发生了转变,无论什么域名指向过来,它都会访问到abc.com,abc.com是我们虚拟主机配置文件里边的第一个虚拟主机,它就是默认虚拟主机。
    • 默认虚拟主机,就是无论访问什么域名,只要解析到192.168.74.129IP上,它都会访问这个网站对应的虚拟主机配置(这个默认虚拟主机就是abc.com)
  1. 这时再来访问www.example.com

    abc.com[root@hf-01 ~]# curl -x192.168.74.129:80 www.example.com 111.com[root@hf-01 ~]#

  • 在httpd主配置文件中有定义,在Virtual hosts虚拟主机中也有定义,结果访问到了111.com

总结

  1. 在主配置文件中,httpd.conf里面,打开了虚拟主机配置文件,也就是删除到 # 号,那虚拟主机配置就生效了,一旦虚拟主机配置文件生效,那主配置文件里面所定义的DocumentRoot以及ServerName失效
  2. 虚拟主机配置文件一旦打开,可以定义很多个VirtualHost,每一个VirtualHost都都有一个对应的 DocumentRoot 和 ServerName ,每一个VirtualHost都代表着一个站点,都是一个虚拟主机。在虚拟主机里面有一个特殊的默认虚拟主机,所谓默认虚拟主机就是无论任何域名解析到这个IP上,都会去访问默认虚拟主机
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这