但是問題來了,單獨(dú)安裝PHP不會(huì)了吧?單獨(dú)安裝Nginx不會(huì)了吧?單獨(dú)安裝PHP擴(kuò)展更不會(huì)了吧?一切好用的工具都是一把雙刃劍。但是在實(shí)際中,往往我們會(huì)被要求獨(dú)立配置各種環(huán)境,并且通過命令行啟動(dòng)、停止、重啟各種服務(wù),尤其是在Linux下,有時(shí)候我們不得不通過Shell腳本來組合命令來實(shí)現(xiàn)一些功能,所以必要的命令行我們是需要掌握的,比如:
啟動(dòng)Nginx服務(wù)
service nginx start;
停止服務(wù)
service nginx stop;
平滑重啟
service nginx reload;
監(jiān)測nginx配置
nginx-t;
啟動(dòng)PHP
servcie php-fpm start;
停止
PHPservice php-fpm stop;
剛開始可能會(huì)很不習(xí)慣,當(dāng)熟練了以后,很方便的能創(chuàng)建一個(gè)虛擬主機(jī),跑不同的應(yīng)用。
能夠獨(dú)立配置各種服務(wù),目的是讓我們更加熟悉PHP應(yīng)用的運(yùn)行機(jī)制。
Linux與Windows下開發(fā)需要注意的是:
?Linux對(duì)大小來寫很敏感,對(duì)文件、文件夾是否可寫、可修改有嚴(yán)格的限制;程度上可以拒絕后門木馬,因?yàn)閴焊贿M(jìn)去
?在Linux調(diào)試PHP能使開發(fā)的自PHP代碼有更好的適用性
?在Windows中,斜線(/)和反斜線()都可以用作目錄分隔符,在Linux上路徑的分隔符是/
?Linux在部署發(fā)布過程中也有天然的優(yōu)勢,比如Git專門為Linux而生
?還有文件字符集的問題,容易出現(xiàn)BOM字符的情況
?當(dāng)然還有更多的不同,需要同學(xué)自行了解
安裝Composer需要完成以下兩步:
:下載Composer到你的項(xiàng)目目錄。使用以下命令:
curl-s(Composer web site)/installer|php
記著要設(shè)置一下國內(nèi)鏡像,比如阿里云鏡像,否則,你懂的。
簡單說下它的作用(支持Windows和Linux),GitHub上有很多優(yōu)秀的開發(fā)者發(fā)開的輪子,如發(fā)送郵件,公眾號(hào)開發(fā)等,我們可以composer加載這些輪子而無需關(guān)系引入的問題,如include,require,Composer幫我們完成這些事情,我們可以更專心關(guān)注業(yè)務(wù)層面的開發(fā)。
比如我們使用EasyWechat
composer require overtrue/wechat:~4.0-vvv
了解一下索引,有基礎(chǔ)的優(yōu)化方案就夠了。實(shí)際使用中,熟練運(yùn)用如何使用客戶端連接數(shù)據(jù)庫,我遇到過個(gè)別的同學(xué),能熟練連接自己電腦上的數(shù)據(jù)庫,但是不會(huì)連接云數(shù)據(jù)庫,如阿里云的RDS,其實(shí)沒區(qū)別,數(shù)據(jù)庫地址,用戶,密碼搞定。
大型的項(xiàng)目或者產(chǎn)品,公司往往會(huì)配置DBA這個(gè)角色來負(fù)責(zé)數(shù)據(jù)庫維護(hù),專業(yè)的事交給專業(yè)的人來做。
events{
use epoll;
worker_connections 51200;
multi_accept on;
}
http{
server{}
server{}
...
}
這是Nginx的基本結(jié)構(gòu),往往我們創(chuàng)建站點(diǎn)的時(shí)候,更關(guān)注server{}
server{
listen 80;//監(jiān)聽80端口,重要!??!
listen[::]:80;
server_name www.lingj.net;//要使用域名,重要?。?!
access_log/data/wwwlogs/nginx.log combined;
index index.html index.htm index.php;
root/data/wwwroot;//站點(diǎn)根目錄,重要?。?!
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_passunix:/dev/shm/php-cgi.sock;//連接PHP,重要!??!
fastcgi_indexindex.php;include fastcgi.conf;
}
所以,我們在部署一個(gè)PHP站點(diǎn)的時(shí)候,必須知道域名,端口號(hào),網(wǎng)站根目錄,連接PHP的方式!??!配置完畢后,別忘了執(zhí)行
nginx-t;
監(jiān)測配置是否正確。
A記錄:這個(gè)最容易理解,把某個(gè)域名指到某個(gè)IP即可,再通過上面的Nginx配置好的域名,就可以訪問了。配置完域名后,我們通常需要執(zhí)行ping命令或者dig命令來觀察是否已經(jīng)解析。
CNAME記錄:通常在部署CDN(自行百度)的時(shí)候會(huì)用的到,意思是把我們的域名如www.test.com解析到CDN服務(wù)商提供的另一個(gè)域名如cdn.test.baidu.com,這樣,用戶在訪問我們應(yīng)用的時(shí)候,無法拿到我們真實(shí)服務(wù)器IP,也是一種保護(hù)機(jī)制。
框架是工具!??!是工具!??!是工具?。?!
用多了連基本的SQL都不會(huì)寫了,因?yàn)榭蚣芑径际荗RM封裝到了極致,在這里PHP的基礎(chǔ)就體現(xiàn)出來了。
前期用一個(gè)最容易上手的框架,如ThinkPHP,國人開發(fā),符合國內(nèi)編碼習(xí)慣,簡單易學(xué)。但是在這里我本人推薦使用Laravel框架,難度稍大,但你一定會(huì)愛上它的。
適合自己的才是的,不要過分追求框架的性能對(duì)比指標(biāo)??蚣苤g區(qū)別不大,一種,新框架學(xué)起來會(huì)非常快的。
框架最最最基礎(chǔ)的4要素,路由,控制器,模型,視圖,一定要熟練掌握,其他的如隊(duì)列,事件,異步,命令行都是在為我們的業(yè)務(wù)服務(wù)。
進(jìn)階的技術(shù)棧,如隊(duì)列,分為Redis驅(qū)動(dòng),Database驅(qū)動(dòng)等;負(fù)載均衡,集群,分布式等等,這些技術(shù)儲(chǔ)備是你入職的加分項(xiàng),這些技術(shù)棧了解即可,無需深入,過程中會(huì)接觸的到,對(duì)于初次入職的程序員,用人企業(yè)不會(huì)作為絕對(duì)指標(biāo)。
總之,對(duì)于畢業(yè)前后的這個(gè)階段,用人企業(yè)更關(guān)注的是候選人的溝通能力,學(xué)習(xí)能力和可塑性,所以除了技能上的硬件指標(biāo),軟性實(shí)力是必不可少的,因此,在平時(shí)的學(xué)習(xí)中一定要多想,想想它是怎么實(shí)現(xiàn)的?一定要做練習(xí),想了以后要實(shí)踐一下,不管結(jié)果如何,畢竟實(shí)際操作過,印象會(huì)更深刻。
以上是初入PHP開發(fā)行業(yè)最基礎(chǔ)的技能要求,不要求精通,熟悉,熟知,會(huì)用即可,面試過程中有問就有答,再綜合你的軟性實(shí)力,相信一定會(huì)找到心儀的。