前言
這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡書記錄下自己的學(xué)習(xí)歷程.
個人學(xué)習(xí)方法分享
整體學(xué)習(xí)路線分享
全棧開發(fā)自學(xué)筆記 已開源
上文:深入淺出學(xué)習(xí)前端開發(fā)(入門篇)
本文閱讀建議
1.一定要辯證的看待本文.
2.準(zhǔn)備進(jìn)行基礎(chǔ)的后臺環(huán)境搭建學(xué)習(xí).
3.本文是基于前端學(xué)習(xí)的后臺環(huán)境搭建(AMP方向)
4.本文只闡述學(xué)習(xí)路線和學(xué)習(xí)當(dāng)中的重點(diǎn)問題.需要讀者自己使用百度進(jìn)行拓展學(xué)習(xí).
5.覺得哪里不妥請在評論留下建議~
6.覺得還行的話就點(diǎn)個小心心鼓勵下我吧~
目錄
1.概念
2.完整流程
3.Apache服務(wù)器
4.PHP腳本語言
5.MySQL數(shù)據(jù)庫
推薦書籍 & 網(wǎng)站推薦
Head First PHP&MySQL
網(wǎng)站:在線文檔API查詢
概念
開發(fā)環(huán)境是指搭建后端數(shù)據(jù)庫環(huán)境以及服務(wù)器腳本語言支持環(huán)境.沒有這個環(huán)境就無法運(yùn)行服務(wù)器腳本語言,操作數(shù)據(jù)庫里的數(shù)據(jù).
靜態(tài)網(wǎng)頁&動態(tài)網(wǎng)頁
靜態(tài)網(wǎng)頁一般是指由純HTML&CSS構(gòu)建的網(wǎng)頁,不涉及數(shù)據(jù)存儲,不涉及JavaScript,只有一些基礎(chǔ)的布局.
沒有交互的網(wǎng)頁是沒有靈魂的,交互的網(wǎng)站一般都要存儲數(shù)據(jù),那么我們?nèi)粘I钪薪?jīng)常瀏覽的網(wǎng)頁,都是怎么開發(fā)的呢.
完整流程
一個網(wǎng)站的流程,由前端工程師 使用 HTML+CSS+JavaScript 進(jìn)行開發(fā)靜態(tài)頁面+交互效果,由后端工程師 創(chuàng)建并維護(hù) SQL數(shù)據(jù)庫,然后進(jìn)行本地聯(lián)調(diào),數(shù)據(jù)測試.測試完畢后由后端工程師使用Apache 發(fā)布網(wǎng)頁,并配置相應(yīng)站點(diǎn)以及域名.
其中根據(jù)前端工程師的水平不同,項目需求不同,會使用各種不同的JS庫:VueJS,NodeJS,AngularJS,ReactJS,jQuery等,以及框架.
根據(jù)后端工程師的水平不同,項目需求不同,會使用MySQL,NoSQL,Oracle等.
服務(wù)器與網(wǎng)頁交互也因水平不同,可以使用PHP,Java,Python等多種語言進(jìn)行服務(wù)器腳本開發(fā),進(jìn)行傳遞數(shù)據(jù),數(shù)據(jù)處理,增刪改查.
角色具體分為 網(wǎng)頁 服務(wù)器 數(shù)據(jù)庫.
技能由淺到深分為各個知識點(diǎn)和技能,詳細(xì)知識點(diǎn)可以看我的這篇文章<全棧開發(fā)學(xué)習(xí)路線>
服務(wù)器
服務(wù)器扒腕,也稱伺服器瘾腰,是提供計算服務(wù)的設(shè)備蹋盆。由于服務(wù)器需要響應(yīng)服務(wù)請求硝全,并進(jìn)行處理伟众,因此一般來說服務(wù)器應(yīng)具備承擔(dān)服務(wù)并且保障服務(wù)的能力。
上面是百度查的,下面說一下個人理解,服務(wù)器就是負(fù)責(zé)承載你網(wǎng)頁和數(shù)據(jù)庫以及發(fā)布網(wǎng)頁發(fā)布數(shù)據(jù)的角色,本質(zhì)是一臺遠(yuǎn)程計算機(jī).但是想要做到發(fā)布網(wǎng)頁怎么辦,需要用到服務(wù)器軟件.
服務(wù)器軟件簡介
服務(wù)器軟件概念請自行百度學(xué)習(xí),目前知名的有Nginx噪径、Apache数初、IIS,因為本人目前學(xué)習(xí)的事Apache所以暫時不講其他兩個,請自行學(xué)習(xí).
Apache
Apache是世界使用排名第一的Web服務(wù)器軟件泡孩。它可以運(yùn)行在幾乎所有廣泛使用的計算機(jī)平臺上,由于其跨平臺和安全性被廣泛使用吮播,是最流行的Web服務(wù)器端軟件之一。
角色說明
Apache不是服務(wù)器,是一款服務(wù)器應(yīng)用軟件,還有Nginx也是同類軟件,Apache不僅用來承載網(wǎng)頁,更為PHP等服務(wù)器腳本語言提供了運(yùn)行環(huán)境.
在本文主要為PHP提供了運(yùn)行環(huán)境,可以運(yùn)行后綴為PHP的腳本文件,如果沒有Apache,計算機(jī)/服務(wù)器講不識別PHP文件.
Windows安裝
windows用戶請自行百度Apache下載以及安裝教程.在此不贅述.
因為windows有用戶圖形界面,則下面指令均是在Mac環(huán)境下使用.
流程:安裝包=>修改配置文件=>配置環(huán)境變量=>每次修改配置文件記得重啟Apache
Mac安裝
Mac用戶是自帶Apache的,打開終端,輸入apachectl -v回車.確認(rèn)版本.
然后終端運(yùn)行
sudo apachectl start
輸入密碼,然后訪問localhost 顯示It works!即為開啟成功.
網(wǎng)頁目錄默認(rèn)在/Library/WebServer/Documents中
httpd.conf配置
當(dāng)安裝Apache以后,怎么進(jìn)行使用,httpd.conf就是重點(diǎn)了.
httpd.conf不僅是Apache的主配置文件,還是終端調(diào)用的指令.
open /private/etc/apache2/httpd.conf
可以使用編譯器SublimeText3或者Vim編輯,我使用的是VSCode進(jìn)行修改.
解注釋以下代碼 使apache可以解析php
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule php5_module libexec/apache2/libphp5.so
Include /private/etc/apache2/extra/httpd-userdir.conf
自定義本地服務(wù)器目錄
但是每次向默認(rèn)文件夾拷貝都需要權(quán)限,那么可以進(jìn)行自定義目錄.
首先是前往/private/etc/apache2/extra/目錄 修改 httpd-userdir.conf
解注釋 Include /private/etc/apache2/users/*.conf
前往/private/etc/apache2/users/目錄
添加以你的用戶名命名的conf
文件內(nèi)容如下:
<Directory "/Users/dream/Sites/"> // username需要修改
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
然后就可以實現(xiàn)瀏覽器訪問localhost/~yourname/這個地址訪問/Users/dream/Sites/這個文件夾下的網(wǎng)頁文件.
httpd_vhost.conf配置
這個文件是用來配置多站點(diǎn)虛擬主機(jī)的.
多站點(diǎn)虛擬主機(jī)是用來配置不同站點(diǎn)解析到不同IP地址,從而達(dá)到一臺服務(wù)器多個網(wǎng)站,一般在工作中用來綁定子域名等.
首先前往/private/etc/apache2/目錄下修改httpd.conf
解注釋Include /private/etc/apache2/extra/httpd-vhosts.conf
然后前往/private/etc/apache2/extra/目錄下打開httpd-vhosts.conf進(jìn)行配置
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
<Directory "/路徑/路徑/路徑">
Options indexes
order Deny,Allow
Allow From All.
</Directory>
</VirtualHost>
1.配置域名(服務(wù)器名)
ServerName ....com
2.配置站點(diǎn)實際路徑
DocumentRoot "目錄"
3.設(shè)置訪問權(quán)限
<Directory "路徑">
Options indexes
order Deny,Allow
Allow From All.
</Directory>
4.配置郵件地址.(可選)
ServerAdmin 設(shè)置一個郵件地址环戈,如果服務(wù)器有任何問題將發(fā)信到這個地址, 這個地址會在服務(wù)器產(chǎn)生的某些頁面中出現(xiàn)遮晚。
5.ErrorLog.(可選)
錯誤日志存儲地址
6.CustomLog.(可選)
自定義日志存儲地址
權(quán)限說明
Options:選項县遣,Indexes用于設(shè)定當(dāng)沒有網(wǎng)頁顯示時汹族,是否列出當(dāng)前目錄
AllowOverride:允許覆蓋的特性忌警,none表示不允許覆蓋,All表示可以覆蓋徙赢。
Order:表示權(quán)限控制順序,只有兩個:
allow, deny 先允許,后拒絕
deny, allow 先拒絕卷玉,后允許
Allow from: 允許誰(ip)訪問
deny from : 拒絕誰(ip)訪問
服務(wù)器腳本語言
服務(wù)器腳本語言,是運(yùn)行在服務(wù)器環(huán)境下,對服務(wù)器以及數(shù)據(jù)庫進(jìn)行操作的語言,是一個網(wǎng)頁環(huán)境中必不可少的角色.
其中有PHP,Java,Python,Node.js這里目前使用PHP.
PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開源腳本語言缭黔。語法吸收了C語言、Java和Perl的特點(diǎn)喊儡,利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域。PHP 獨(dú)特的語法混合了C囱淋、Java、Perl以及PHP自創(chuàng)的語法。它可以比CGI或者Perl更快速地執(zhí)行動態(tài)網(wǎng)頁闺属。
角色說明
PHP在這里當(dāng)做一門服務(wù)器腳本語言使用,其環(huán)境需要更改Apache配置文件才可以支持.
其角色為,在Apache環(huán)境下,處理從Apache掛載過來的客戶端請求,PHP內(nèi)置了對MySQL數(shù)據(jù)庫的操作模塊,解鎖以后,可以根據(jù)請求,對數(shù)據(jù)庫進(jìn)行增刪改查操作.
Windows安裝
windows用戶請自行百度PHP官網(wǎng)下載以及安裝教程.在此不贅述.
流程:部署安裝包=>在httpd.conf掛載PHP模塊=>配置PHP.ini文件=>測試運(yùn)行php文件
Mac安裝
1.前往/private/etc/apache2目錄下尋找httpd.conf
2.解注釋#LoadModule php7_module libexec/apache2/libphp7.so
注意:php版本根據(jù)系統(tǒng)不同而不同.
3.終端執(zhí)行'sudo cp /etc/php.ini.default /etc/php.ini'
4.終端執(zhí)行'sudo apachectl restart'
5.將'<?php phpinfo() ?>'內(nèi)容的php文件放在Apache服務(wù)器目錄下,測試運(yùn)行,輸出phpinfo界面,php安裝成功.
數(shù)據(jù)庫
數(shù)據(jù)庫,是網(wǎng)頁應(yīng)用以及移動端應(yīng)用,俗稱"后端"開發(fā),是一個應(yīng)用的靈魂,一個應(yīng)用是否強(qiáng)大,和這個應(yīng)用的后臺開發(fā)工程師水平有關(guān).后端開發(fā)工程師越強(qiáng)大,應(yīng)用就越強(qiáng)大.
其中有NoSQL,MogoDB,Oracle,SQLServer,這里目前使用MySQL.
MySQL簡介
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng)乃摹,由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品磷支。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一抵皱,在 WEB 應(yīng)用方面咒循,MySQL是最好的 RDBMS (Relational Database Management System裆蒸,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件辙谜。
角色說明
MySQL是數(shù)據(jù)庫的一種,他擁有增刪改查的操作指令,其角色為服務(wù)器交互與業(yè)務(wù)數(shù)據(jù)的存儲.
一個項目是否健壯,功能是否強(qiáng)大都與后端數(shù)據(jù)庫有著緊密的聯(lián)系.
Windows安裝
windows用戶請自行百度MySQL官網(wǎng)下載以及安裝教程.在此不贅述.
流程:安裝MySQL(配置選項較多)=>PHP.ini解鎖MySQL.dll文件擴(kuò)展=>測試使用PHP聯(lián)結(jié)數(shù)據(jù)庫.
Mac安裝
兩種安裝方式:
本文推薦使用brew包管理工具進(jìn)行安裝.
1.終端運(yùn)行brew install mysql
2.Error 2002報錯:終端運(yùn)行'mysql.server start'顯示Starting MySQL SUCCESS!
3.第一次安裝成功后終端執(zhí)行:'mysql_secure_installation'進(jìn)行初始配置
/*
I.為root用戶設(shè)置密碼
New password:
Re-enter new password:
2.刪除匿名賬號
Remove anonymous users? [Y/n]
3.取消root用戶遠(yuǎn)程登錄
Disallow root login remotely? [Y/n]
4.刪除test庫和對test庫的訪問權(quán)限
Remove test database and access to it? [Y/n]
5.刷新授權(quán)表使修改生效
Reload privilege tables now? [Y/n]
*/
4.終端運(yùn)行'mysql -u root -p'回車 輸入密碼.登錄成功
目前正在進(jìn)行MySQL數(shù)據(jù)庫的學(xué)習(xí)中,在詳細(xì)學(xué)習(xí)以后,我會更新并總結(jié)此處.
結(jié)束語
如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點(diǎn)個喜歡鼓勵我哦.
如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~
介個是我的個人博客,歡迎參觀哦~