解决Thinkphp3.1不支持PHP7
服务器重装了系统。PHP版本升级为PHP7,结果发现以前用Thinkphp写的一个项目无法运行了。thinkphp版本使用3.1版。切换为PHP5.6版本时,可以正常使用。切换为PHP7时,页面显示空白。追踪框架核心代码,找到核心的模板文件,最终发现是preg_replace函数错误。
查找原因先打开错误提示编辑index.php
12345ini_set('display_errors', '1');error_reporting(E_ALL);define('APP_DEBUG', true); //修改define('APP_ERROR_HANDLE',false);
多处提示
1NOTIC: [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
但这些都不是致命错误。一步一步断点调试,发现最终现象是页面变空白查看模板缓存,只显示如下信息
1<?php if ( ...
安装piwik访问统计工具
Piwik是一个PHP和MySQL的开放源代码的Web统计软件,可以代替Google Analytics。而且支持多语言。通过这个开源产品,可以搭建自己的私有统计平台。其统计基于javaScript的脚本,将该脚本插入到 里头的页面,就可以获取到数据。
Piwik 的安装方式超级简单,可以通过页面指示,一键安装。
百度百科
相关资料官网: https://piwik.org/
在线Demo: demo.piwik.org
Github地址: https://github.com/piwik/piwik
环境要求
PHP5.5.9以上
Mysql 5.5以上
PHP需要安装PDO或者Mysqli扩展
获取代码123git clone https://github.com/piwik/piwik.gitcd piwikcomposer update
composer时可能会出错,需要修改php.iniphp.ini文件中disable_functions去除proc_open,proc_get_status,shell_exec重启php服务service php-fpm restar ...
服务器设置计划任务,定时访问网页
安装crontab123456789101112# 查询是否安装sudo service crond status# yum安装sudo yum install vixie-cronsudo yum install crontabssudo service crond startsudo service crond status# 设置开机启动sudo chkconfig --level 35 crond on
设置计划任务1sudo crontab -e
添加
123# 半小时一次*/30 * * * * /usr/bin/curl http://pangxieke.com/script.php
测试新建script.php
12345<? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n"); fclose($fp);
监控,查看 script.php文件是否写入成功,写 ...
PHP使用mail函数发送邮件及安装Sendmail服务
在PHP中,常有发送邮件功能。PHP中有mail()函数,可以用来发送邮件。但在本地使用时,我们常发送邮件发送失败。这是因为使用发送邮件功能,需要服务器支持。
在linux上,我们常使用sendmail组件。
php中mail()函数
1bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
安装sendmailYum安装
1yum install sendmail
设置主机名,主机名要设置一个域名格式的,例如:jb51.net
1hostname jb51.net
设置主机名后,需要重启sendmail服务查看sendmail服务状态
12service sendmail statusservice sendmail restart
php配置修改php.ini文件
1vi /usr/local/php/etc/php.ini
配置sendmail_path
1sendmail_ ...
通过hooks实现Git自动发布
在服务器上,使用Git作为代码仓库,但是每次同步代码后,需要手动去修改Nginx对应的代码仓库,这样十分繁琐。
希望能够git push后,代码就能够直接上线。其实这可以通过git触发器实现。
建立目标仓库1234567cd /var/wwwmkdir blogchown git:git blog -Rcd bloggit initgit remote add origin /opt/git/blog.gitgit pull origin master
建立触发器在git仓库hooks目录下增加文件post-receive
1vi post-receive
增加如下内容
12345678#!/bin/shDEPLOY_PATH=/var/www/blogunset GIT_DIR #这条命令很重要cd $DEPLOY_PATHgit reset --hardgit pull origin master#chown www:www -R $DEPLOY_PATH
增加执行权限
1chmod +x post-receive
注意整个文件的用户,及用户组
测试先手动执行post-rece ...
PHP无法连接Mariadb
最近重新安装了服务器环境,单独安装了Nginx,PHP,MariaDb,但是配置好Nginx服务后,访问网站却提示错误。
故障故障表现: 网站wordpress提示建立数据库连接时出错测试发现,Mysql命令行能够登录,但PHP无法连接。
排查PHPinfo使用phpinfo(),查询是否安装Mysql扩展,查询到已经安装mysqli扩展同时使用如下php代码查询
123456789<?phpif (extension_loaded('mysqli')){ echo 'yes';}else{ echo 'no';}
返回yes,说明已经安装mysqli扩展
php 数据库链接测试使用如下代码测试
123456<?php$db = new mysqli('localhost', 'root', 'password', 'database_name'); if (mysqli_co ...
linux下tar压缩解压命令
tar命令tar命令是linux下常用压缩、解压命令。
主要有如下参数-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
可选参数下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出
-f参数是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
示例1# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
1# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
1# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
1# tar -tf all.t ...
Centos7安装MariaDB 10.1.28
重新安装了服务器,现在服务器为Centos7.4版本,选择安装MariaDB。MariaDB 是 MySQL 数据库的自由开源分支,与 MySQL 在设计思想上同出一源。命令及查询语句也基本一致。
添加 MariaDB yum库在 RHEL/CentOS 和 Fedora 操作系统中添加 MariaDB 的 YUM 配置文件 MariaDB.repo 文件
1vi /etc/yum.repos.d/MariaDB.repo
添加下列内容到文件的末尾
12345[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.1/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
Yum 安装MariaDB1yum install MariaDB-server MariaDB-client -y
启动服务启动数据库服务守护进程,并可以通过下面的操作设置,在操作系统重启后自动启动服务。
123systemctl start ma ...
搭建Git服务器
配置Git用户我们来看看如何配置服务器端的 SSH 访问。 本例中,我们将使用 authorized_keys 方法来对用户进行认证。 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 Ubuntu。 首先,创建一个操作系统用户 git,并为其建立一个 .ssh 目录。
12345$ sudo adduser git$ su git$ cd$ ssh-keygen # 或者 mkdir .ssh && chmod 700 .ssh$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
接着,我们需要为系统用户 git 的 authorized_keys 文件添加一些开发者 SSH 公钥。 假设我们已经获得了若干受信任的公钥,并将它们保存在临时文件中。 与前文类似,这些公钥看起来是这样的:
1234567$ cat /tmp/id_rsa.john.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMx ...
你知道面试的时候,面试官都在想什么吗?
在工作过程中,大家都会遇到面试。面试的时候,针对那么多面试的问题,我们往往疲于应对。担心一个问题回答不好,就影响了找工作。那么面试的时候,面试官都在想什么呢?
应聘是双向选择其实找工作是一个双向的过程。你先找一份工作,HR也想完成她的工作任务,找到一个合格的应聘者。HR也会有工作压力,有KPI考核。用人部门把招聘需求给到HR时,HR需要及时找到合适的人员。而且很多时候,急需人才时,HR压力更大。
如果你成为面试官,你会问那些问题呢?如何成功一个合格的面试官呢?
面试官的种类首先我们需要了解到,面试官也分多种,多个角色。一般情况,我们会遇到2到3类面试官
人力资源面试官,一般为HR
专业技能面试官,一般为以后的直属领导
人才委员会,主要在应聘公司高层领导时才会遇到
面试需求 4W面试官接到面试任务时候,会进行需求分析。这里有一个4W方法
Why 为啥需要招聘这个岗位?
为什么会产生这个需求?业务增加?替补离职?空白领域?现有人手不够?提前储备?
现有团队人员分配如何,能否在满足当前的业务需求?
What 需要怎样的人?
候选人画像,什么样的是OK的?
空缺岗位需要做的核心工作是什 ...