龙空技术网

好了,你马上要成为一名合格的PHP开发工程师了

代码加工厂 271

前言:

此时你们对“yii20nginx配置域名”大概比较关切,兄弟们都需要学习一些“yii20nginx配置域名”的相关内容。那么小编在网上汇集了一些有关“yii20nginx配置域名””的相关内容,希望我们能喜欢,看官们快快来学习一下吧!

PHP是世界上最好的语言

实在忍不住用这句话来刺激一下各位同学,虽然星球中有隐藏的.NET大神 。

各位同学在毕业前后将面临找工作的阶段,想要入职一家心仪的公司,成为一名新晋PHP工程师,我们要掌握哪些技能呢?我们来说一说。

NO.1果断抛弃你的phpStudy

不得不承认,phpStudy是一款非常优秀的PHP集成环境,版本一键切换,可视化配置,简单粗暴,直接上手。

但是问题来了,单独安装PHP不会了吧?单独安装Nginx不会了吧?单独安装PHP扩展更不会了吧?一切好用的工具都是一把双刃剑。但是在实际工作中,往往我们会被要求独立配置各种环境,并且通过命令行启动、停止、重启各种服务,尤其是在Linux下,有时候我们不得不通过Shell脚本来组合命令来实现一些功能,所以必要的命令行我们是需要掌握的,比如:

启动Nginx服务service nginx start;停止服务service nginx stop;平滑重启service nginx reload;监测nginx配置nginx -t;启动PHPservcie php-fpm start;停止PHPservice php-fpm stop;

刚开始可能会很不习惯,当熟练了以后,很方便的能创建一个虚拟主机,跑不同的应用。

能够独立配置各种服务,目的是让我们更加熟悉PHP应用的运行机制。

NO.2 一定要熟悉Linux下开发

在学习阶段,在windows下开发没有任何问题,但是我要说的是,找工作前,一定要学会Linux下开发,性能和兼容性上不说了,自行百度即可;基本上99%的PHP代码都运行在Liunx服务器上,当然CentOS/FreeBSD/Linux也一样,只是血统稍有区别。

Linux与Windows下开发需要注意的是:

Linux对大小来写很敏感,对文件、文件夹是否可写、可修改有严格的限制;最大程度上可以拒绝后门木马,因为压根不进去 在Linux调试PHP能使开发的自PHP代码有更好的适用性 在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符,在Linux上路径的分隔符是/Linux在部署发布过程中也有天然的优势,比如Git专门为Linux而生还有文件字符集的问题,容易出现BOM字符的情况当然还有更多的不同,需要同学自行了解

NO.3学会Composer包依赖管理器

Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。

安装Composer需要完成以下两步:

第一:下载Composer到你的项目目录。使用以下命令:

curl -s (Composer web site)/installer | php

记着要设置一下国内镜像,比如阿里云镜像,否则,你懂的。

简单说下它的作用(支持Windows和Linux),GitHub上有很多优秀的开发者发开的轮子,如发送邮件,公众号开发等,我们可以composer加载这些轮子而无需关系引入的问题,如include,require,Composer帮我们完成这些事情,我们可以更专心关注业务层面的开发。

比如我们使用EasyWechat包

composer require overtrue/wechat:~4.0 -vvv

NO.4熟练使用Mysql数据库

这个阶段对Mysql的要求是,创建数据库,删除数据库,表创建,表删除,表修改,数据的新增,删除,查询,修改,这些基本语句必须要熟练运用,面试过程中如果不会,我会直接pass。

了解一下索引,有基础的优化方案就够了。实际使用中,熟练运用如何使用客户端连接数据库,我遇到过个别的同学,能熟练连接自己电脑上的数据库,但是不会连接云数据库,如阿里云的RDS,其实没区别,数据库地址,用户,密码搞定。

大型的项目或者产品,公司往往会配置DBA这个角色来负责数据库维护,专业的事交给专业的人来做。

NO.5 服务器Nginx

没有这个服务器,将无法通过外网访问我们的应用。对Nginx的要求是,能够熟练配置虚拟主机即可。我们先简单的了解一下,后续我会专门写一篇关于Nginx的文章

events {      use epoll;      worker_connections 51200;      multi_accept on;}http {      server {}      server {}      ...}

这是Nginx的基本结构,往往我们创建站点的时候,更关注server{}

server {      listen 80;        //监听80端口,重要!!!      listen [::]:80;      server_name ;    //要使用域名,重要!!!      access_log /data/wwwlogs/nginx.log combined;      index index.html index.htm index.php;      root /data/wwwroot;  //站点根目录,重要!!!      include /usr/local/nginx/conf/rewrite/laravel.conf;      #error_page 404 /404.html;    #error_page 502 /502.html;  location ~ [^/]\.php(/|$) {                      #fastcgi_pass remote_php_ip:9000;                      fastcgi_pass unix:/dev/shm/php-cgi.sock; //连接PHP,重要!!!                      fastcgi_index index.php;        include fastcgi.conf;                  }    

所以,我们在部署一个PHP站点的时候,必须知道域名,端口号,网站根目录,连接PHP的方式!!!配置完毕后,别忘了执行

nginx -t;

监测配置是否正确。

NO.6 域名解析

一个站点是如何展示到用户面前的?如果域名解析不熟悉,抱歉放弃软件开发吧。我们可以不需要知道域名是如何解析的,但是我们必须知道如何设置域名解析。通常情况下,对一个站点我们要做A记录或者CNAME。

A记录:这个最容易理解,把某个域名指到某个IP即可,再通过上面的Nginx配置好的域名,就可以访问了。配置完域名后,我们通常需要执行 ping命令或者dig命令来观察是否已经解析。

CNAME记录:通常在部署CDN(自行百度)的时候会用的到,意思是把我们的域名如 解析到 CDN服务商提供的另一个域名如 cdn.test.baidu.com,这样,用户在访问我们应用的时候,无法拿到我们真实服务器IP,也是一种保护机制。

NO.7 熟练使用一种框架,如Laravel,ThinkPHP,Yii

一定要记住,框架是提升我们效率的工具,不要过度依赖任何一种框架,原生的代码一定要掌握,才能熟练使用框架。

框架是工具!!!是工具!!!是工具!!!

用多了连基本的SQL都不会写了,因为框架基本都是ORM封装到了极致,在这里PHP的基础就体现出来了。

前期用一个最容易上手的框架,如ThinkPHP,国人开发,符合国内编码习惯,简单易学。但是在这里我本人推荐使用Laravel框架,难度稍大,但你一定会爱上它的。

适合自己的才是最好的,不要过分追求框架的性能对比指标。框架之间区别不大,学会一种,新框架学起来会非常快的。

框架最最最基础的4要素,路由,控制器,模型,视图,一定要熟练掌握,其他的如队列,事件,异步,命令行都是在为我们的业务服务。

NO.8 版本控制,如Git,SVN

这也是任何一家公司必须掌握的工具,完全当做一个软件去学习即可,更高级的用法如钩子,工作流,后期可以再掌握,这里推荐在码云中进行练习。

NO.9 前端技能如 jQuery、VUE、Html、Ajax

作为后端程序员,现阶段,这些前端知识作为熟知,其中AJAX必要掌握,要熟悉AJAX的同步和异步的区别,这才是AJAX的本质。如果是产品采用VUE技术栈,那么要求我们后端熟悉的是API开发流程,如果是JQuery,DOM元素选择器,Ajax是必要的,Html是所有Web开发的根本,这个不必多说了。

进阶的技术栈,如队列,分为Redis驱动,Database驱动等;负载均衡,集群,分布式等等,这些技术储备是你入职的加分项,这些技术栈了解即可,无需深入,工作过程中会接触的到,对于初次入职的程序员,用人企业不会作为绝对指标。

总之,对于毕业前后的这个阶段,用人企业更关注的是候选人的沟通能力,学习能力和可塑性,所以除了技能上的硬件指标,软性实力是必不可少的,因此,在平时的学习中一定要多想,想想它是怎么实现的?一定要做练习,想了以后要实践一下,不管结果如何,毕竟实际操作过,印象会更深刻。

以上是初入PHP开发行业最基础的技能要求,不要求精通,熟悉,熟知,会用即可,面试过程中有问就有答,再综合你的软性实力,相信一定会找到心仪的工作。

标签: #yii20nginx配置域名