php单例怎么设计,PHP项目如何上传到服务器?
用FTP上传工具上传即可。
这里以8UFTP软件为例:1、下载安装FTP软件,输入服务器IP地址,FTP的用户名和密码进行连接。
2、连接FTP后,找到要上传的PHP项目文件,上传到服务器即可。
服务器怎么搭建?
你是要搭什么服务器?这里分享个linux的web服务器搭建,大概步骤就是下载服务器软件,安装-----启动服务器,修改配置文件-----修改相关路径-----定义服务器属性---测试,收工,
Nginx web服务器
1、下载nginx
命令:wget http://nginx.org/download/nginx-0.8.54.tar.gz
2、解压
命令:tar zxvf nginx-0.8.54.tar.gz
3、进入目录
命令:cd nginx-0.8.54
4、安装依赖包
命令:yum -y install gcc pcre-devel openssl openssl-devel (没有网络可在centos中找相关rpm)
5、执行 ./configure
命令:./configure
6、继续安装
命令:
make
和
make install
7、启动nginx服务
命令:/usr/local/nginx/sbin/nginx
8、重启nginx服务
命令:/usr/local/nginx/sbin/nginx -s reload
9、修改站点的配置文件
命令:vi /usr/local/nginx/conf/nginx.conf
10、多站点设置
⑴、在 /usr/local/nginx/conf/ 下创建 vhost 目录
命令:mkdir /usr/local/nginx/conf/vhost
⑵、在 /usr/local/nginx/conf/vhost 里创建一个名字为 linlik.conf 的文件,把站点配置文件写入(请查看最下面的站点内容)
命令:vi /usr/local/nginx/conf/vhost/linlik.conf
⑶、打开 /usr/local/nginx/conf/nginx.conf 文件,在相应位置加入 include 把以上2个文件包含进来
在页尾后括号上面加入一句:include vhost/*.conf; 然后保存退出并重启nginx服务
11、多站点的站点配置文档内容
如下:
server
{
listen 80;
#listen [::]:80;
server_name jiahaolin.com www.111cn.net;
index index.html index.htm index.php default.html default.htm default.php;
root /www/jiahaolin;
include emlog.conf;
#error_page 404 /404.html;
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/jiahaolin.com.log access;
}
NGINX下如何自定义404页面
IIS和APACHE下自定义404页面的经验介绍文章已经非常多了,NGINX的目前还比较少,为了解决自家的问题特地对此作了深入的研究。研究结果表明,NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步:
1.创建自己的404.html页面
2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on;
3.更改nginx.conf(或单独网站配置文件,例如在nginx -> sites-enabled下的站点配置文件 )
中在server 区域加入: error_page 404 /404.html 或者 error_page 404 =http://www.xxx.com/404.html
4.更改后重启nginx,,测试nginx.conf正确性: /opt/nginx/sbin/nginx –t
#502 等错误可以用同样的方法来配置。
error_page 500 502 503 504 /50x.html;
注意事项:
1.必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。fastcgi_intercept_errors 语法: fastcgi_intercept_errors on|off 默认: fastcgi_intercept_errors off 添加位置: http, server, location 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)
2.不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。
3.自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误)。
Nginx 配置安装以及一些常遇到的错误
nginx 编译安装 一、安装nginx时必须先安装相应的编译工具
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
建立nginx 组
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
id nginx
zlib:nginx提供gzip模块,需要zlib库支持
openssl:nginx提供ssl功能
pcre:支持地址重写rewrite功能
Nginx 官网下载地址: http://nginx.org/ 最新版 http://nginx.org/download/nginx-1.5.2.tar.gz
二、tar -zxvf nginx-1.2.8.tar.gz
三、cd nginx-1.2.8
配置
四、./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx/nginx.pid \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--with-http_stub_status_module
或者使用默认的 直接 ./configure
编译并且安装
五、make && make install
编译完成后 make install 进行安装 安转后就大功告成拉
小结:centos没有安装make编译器
解决:yum -y install gcc automake autoconf libtool make
重启动命令 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 更多参考 nginx --help
nginx 的配置以及常见小问题 如下:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 错误解决
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
问题描述:地址已被使用。可能nginx服务卡死了,导致端口占用,出现此错误。
解决方法:首先用lsof:80看下80端口被什么程序占用。lsof返回结果如下:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 3274 root 6u IPv4 10664 0t0 TCP *:http (LISTEN)
nginx 3547 nginx 6u IPv4 10664 0t0 TCP *:http (LISTEN)
发现是nginx程序,所以我们把nginx服务k掉,重新启动服务。。命令如下:
kill -9 3274
kill -9 3547
或者 killall -9 nginx
从新载入配置文件启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
启动成功了但是发现一个错误信息
[warn]: 51200 worker_connections are more than open file resource limit: 51200
虽然不是致命的问题 不影响nginx运行 但是看起来很烦人 我们来解决一下
nginx.conf 配置问题
events {
use epoll;
worker_connections 51200; // 这里出的问题
}
问题原因是 Linux的最大文件数限制。修改Linux 文件数限制 ulimit -n 51200
[root@localhost ~]# ulimit -n
[root@localhost ~]#
接下来从新载入配置文件重启动Ok了....
nginx error_log 错误日志配置说明
nginx的error_log类型如下(从左到右:debug最详细 crit最少):
[ debug | info | notice | warn | error | crit ]
例如:error_log logs/nginx_error.log crit;
解释:日志文件存储在nginx安装目录下的 logs/nginx_error.log ,错误类型为 crit ,也就是记录最少错误信息;
注意error_log off并不能关闭日志记录功能,它将日志文件写入一个文件名为off的文件中,如果你想关闭错误日志记录功能,应使用以下配置:
error_log /dev/null crit;
把存储位置设置到Linux的黑洞中去
同样注意0.7.53版本,nginx在读取配置文件指定的错误日志路径前将使用编译的默认日志位置,如果运行nginx的用户对该位置没有写入权限,nginx将输出如下错误:
[alert]: could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) log_not_found 语法:log_not_found on | off
默认值:on
使用字段:location
这个参数指定了是否记录客户端的请求出现404错误的日志,通常用于不存在的robots.txt和favicon.ico文件,例如: location = /robots.txt { log_not_found off; }
最后:所有nginx配置发生改变时,最好都使用如下命令测试配置是否错误后再使用 -s reload 重载
# /usr/local/nginx/sbin/nginx –t
说明:
1、# 代表root权限,不用输入
2、以上是nginx的默认安装路径,如果改变了要相应的修改哦,例如 wdcp 的 lanmp 一键安装包 则如需要用如下命令
# /www/wdlinux/nginx/sbin/nginx -s reload
输入后如果提示如下,则表示配置无误:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
这时再使用重载命令让Nginx平滑的重新加载配置即可,而不会影响正常访问:
# /usr/local/nginx/sbin/nginx -s reload
有没有人通过自学某种技能而找到一份工作或者兼职?
有的,我目前的自媒体运营相关硬技能都是自学的,是我后面吃饭的一点本钱。自学了写作、剪辑、P图,也自学了自媒体运营的相关知识。现就以互联网写作为例吧,把我自学的一点心得和方法分享给你:
我是怎么写作的2个月之前,我每次写作字数还很少,通常一篇在800字左右,现在我往往写了2000字,甚至到3000字,还嫌自己收尾太急。这中间我都经历了什么?现在就来告诉你。
1、不断输入写作素材
不知道你是否有过这样的时刻?想写点东西出来,但是觉得有点难,总是对自己写的内容无法满意。
福娃当初写文章就是这样,在公开课的文章体裁里面交作业,总是打不到满分,有好几次系统给到的回复都是:论证不充分,可丰富案例或分析。
其实追究起来,要想获得写作方面的提升,跟自己输入写作素材有很大关系,之所以写的少,或者写不出来,往往都是因为素材少的原因。如果没有写作素材,通常会觉得脑子里面空荡荡的,不知道要写点什么。
找到了原因之后,后面我就开始注意写作素材的搜集。因为我在互联网上主要做职场提升和自媒体创业心得方面的写作,为了保证自己能够在自媒体平台上不断提升、努力输出优秀地作品,我会要求自己做源源不断地输入,也就是你说的自学。
跟读书时候的自学不同,我的自学是从了解职场相关热门事件、查看有代表性的职场人物新闻、视频和综艺节目开始的,这些看起来似是在网上闲逛,其实都是我搜集写作素材的途径。另外通过读书、看电影、自身经历,以及观察日常生活也能找到不少写作素材出来。
比较懒的时候我会把这些素材记在脑子里,比较勤快的时候我会把这些素材按照主题分门别类放置在印象笔记(一款多功能笔记类应用)里面。如此下来,在有写作需要的时候,去脑袋里面或者是文件里面搜索拿来用就可以了。
2、做深度思考
但是有写作素材还远远不够,我们把素材比作食材,要想做出一顿可口的饭菜,还需要有点手艺才行。而好手艺,通常是从思考怎么做才会好吃开始的。
写作是一个思考的过程,我之所以愿意在悟空问答上回答问题,跟我有意识提升自己的思考能力也有很大的关系。
通常我们的思考都会浮于表面。他不爱我了。好,那我也不爱他。思考到为什么不爱了,探求真相和原因的这一步骤,往往会被我们忽略掉。其实写作也是一样,当我们多问自己为什么的时候,思路、灵感、解决办法、路径、往往会井喷式的涌现出来。所以要想写好一篇文章,往往是从探究一个为什么开始的。
当我们了解了为什么,探究到了原因,往往我们就知道怎么做了。比如我们探究这道鱼为什么做的不好吃?往下深度思考,就可能会追踪到,这条鱼做之前没有用料酒去腥。那之后怎么办,自然是先用料酒去腥的鱼,做出来比较好吃了。
推到写作也是一样。例如要写一篇有关于热门事件的文章,我们也可以先思索一下,为什么?就拿今天的热门事件来说:前中国外交部发言人耿爽,履新中国常驻联合国副代表,这件事受到了很多网友的关注,大家也都为他送上了祝福。为什么他会受到这么多人的喜欢呢?如果你探究了这个为什么,也许你就能写出一篇好文章。
想就此写出一篇文章,除了要事前对耿爽做一些了解,准备一些写作素材之外,还要加上一段针对耿爽的深度思考。思考他为什么会受这么多人的喜欢。答案可能会是你从他的语言风格中找到的,例如“总以微笑回应尖锐”。也可能是你从他的对事观点中找到的:“如果有人说“中国制造有毒”,那么请说这种话的人面对新冠肺炎疫情肆虐,不要戴中国制造的口罩,不要穿中国生产的防护服,不要用中国出口的呼吸机,以免染上病毒。”
找到了大家喜欢他的这些原因,那喜欢他的人接下来会怎么样呢?针对于耿爽在中国常驻联合国副代表职位上的履新,自然是继续投以期待和关注,一如既往的支持他呗。
好,如此一来,文章的结构框架,基本思路,也就都出来了。
写作是自媒体运营的常用硬技能自学写作的人,可能在从前来讲,并不是非常多,但在互联网如此发达的今天,自媒体平台兴起的时代,加入自媒体写作浪潮的人已经越来越多了。
就拿我自己来说吧,我自小爱好写作,写作使我的内心充满能量,如今能够遵从自己的意愿写作,我会感受到前所未有的舒适和安宁。
如若你也想通过自学获得写作技能,希望我的回答对你具有借鉴意义,感谢聆听。
webshell穿透原理?
WebShell是黑客经常使用的一种恶意脚本,原理就是利用Web服务器自身的环境运行的恶意代码。从名字来看Web指的是网页服务,Shell指的是计算机程序运行的指令命令。这也揭示了WebShell的攻击方法,就是通过WebShell脚本的上传,利用网页服务程序实现操控服务器的一种方式。
以PHP语言为例,只需要编写一个简单的PHP代码文件,上传到网站目录中,就可以对网站服务器进行操控,包括读取数据库、删除文件、修改主页等都可以做到。这么一个简单的语句就可以为黑客入侵打开一扇大门,让黑客可以随意地执行任意代码。
现在转java还来得及嘛?
学习什么都没有晚的时候,什么时候开始都来的及。91年还很年轻,肯定来的及啊,转行之前,以下几点是我给你的建议,仅供参考哦。
为什么要转Java? 弄明白这个问题很重要从一个熟悉的领域进入一个新的领域,意味着你要付出更多的学习成本,毕竟时间对每个人都是很珍贵的,既然你想转入Java 这个行业,你首先问自己想清楚没?为什么要改行Java? 以下几个原因可能是我猜的,公司技术业务转型,需要转JAVA;想换工作,发现PHP工作岗位需求低且工资没有同等的JAVA高;觉得 JAVA 以后的发展会比 PHP 好;突然对 JAVA 很感兴趣,认为自己很想学,等等。不管出自那种原因,一定要是发自内心的,从内心认同的,这样你才会有决心有信心的去转行,从事 JAVA 这个行业。
掌握学习方法,提升幸福感学习一样新的东西,就意味着新挑战,语言这类东西还好,基本上是相同的触类旁通,跨度不算大。比如 PHP 的新版本里也有了类,模块引用的概念,如果你熟练laravel、ThinkPHP等优秀的 PHP 框架就更好了,那你转行 JAVA 是很轻松的。通过举一反三,进行对比,你会很快熟悉JAVA的语法结构了。语法熟悉后剩下的你就要学习一些 JAVA 特有的概念和框架了,比如Spring、Spring MVC、Spring Boot、MyBatis等。建议你制定个计划,每天不要贪多,买些基础的书籍从基础语法学起,边看便练习书上的例子,切记光看不动手,按照计划学习,如果按照计划完成,建议给自己一个小小的奖励,出去转转买下自己喜欢的东西,吃顿好吃的对自己犒赏下。不管怎么样,生活学习还是要有仪式感的,小小的奖励,会激发你学习的动力,会有意想不到的收获哦。
贵在坚持,克服内心的孤独感,保持学习激情,加强自律性学习新知识是日积月累才能见成效的,不要被短期没啥效果,从而影响自己继续学习的决心,你要清楚的认识到,学习一个新的东西,本身就是一个很孤独的事情,尤其离开校园,自学的那种感觉我也深有感受,那种孤独的感觉想必人人都会有那种体会,唯有目标和学习激情才能战胜这种感觉,当你有这种感觉了建议休息调整下,用目标和激情来提醒自己,不要三天打鱼两天晒网的,一定要按照自己的学习计划严格执行,千万不要放弃,自律性才是保证你是否能够顺利完成转行JAVA。
一定要进行实战练习,熟练掌握所学知识知识学完了,一定要拿来运用,要不学完了还会忘记,你可以将以前用 PHP 做的项目用 JAVA 的方式在进行实践一遍,在实践的过程中能加强你对JAVA的认知,查漏补缺,熟练自己掌握的技能,这样也为你能在未来的 JAVA 工作中做好铺垫。
好了,今天我的分享就到这里,其实我也是各种技术转来转去,虽然我目前专注前端,也经历过你这种情况,主要是公司业务转型,我最开始是做C#的,然后公司统一转JAVA ,有一段时间移动端很火,公司需要发展移动端,我就带着团队研究IOS、安卓、前端混合的开发方式做APP,同时又深入学习了微服务的一些概念。最近大数据人工智能很多,又学习一些AI、NLP自然语义分析方面的东西,工作本来就是一个不断提升自我的过程,一切服务于工作目标。从我的经验来说,没有最晚的开始,只有自己是最难战胜的,人天生就是畏惧新事物的,只有你从内心接受它,你就能掌控它。如果各位觉得我的分享对你有所帮助,欢迎大家分享、留言、点赞,谢谢大家。