NMP(Linux + Nginx + MySQL + PHP)編譯安裝詳解
LNMP是一種常見的網(wǎng)站框架,由Linux、Nginx、MySQL和PHP組成。本指南將詳細(xì)介紹如何通過編譯安裝各組件,搭建LNMP環(huán)境。
云服務(wù)器,高防服務(wù)器就選藍(lán)易云,頭條搜索:藍(lán)易云
到這里,你已經(jīng)成功搭建了LNMP網(wǎng)站框架。你可以將網(wǎng)站文件放置在指定的網(wǎng)站根目錄中,并訪問你的域名或IP地址來查看網(wǎng)站。
步驟 | 描述 |
安裝Linux操作系統(tǒng) | 選擇并安裝適合的Linux發(fā)行版,如Ubuntu或CentOS。 |
安裝Nginx | 下載并編譯Nginx源碼,安裝所需的依賴庫,配置并安裝Nginx。 |
安裝MySQL | 使用包管理器安裝MySQL服務(wù)器,配置root用戶密碼。 |
安裝PHP | 下載并編譯PHP源碼,安裝所需的依賴庫,配置并安裝PHP及PHP-FPM。 |
配置Nginx與PHP | 修改Nginx配置文件,配置PHP解析,設(shè)置網(wǎng)站根目錄及服務(wù)器名稱,重啟Nginx服務(wù)。 |
LNMP安裝流程
安裝Linux操作系統(tǒng)
安裝Nginx
安裝MySQL
安裝PHP
安裝依賴庫
下載Nginx源碼
解壓源碼包
配置和安裝
安裝依賴庫
下載PHP源碼
解壓源碼包
配置和安裝
配置Nginx與PHP
通過上述步驟,你不僅搭建了一個基本的LNMP環(huán)境,還可以根據(jù)實際需求進(jìn)行進(jìn)一步的配置和優(yōu)化,以確保網(wǎng)站的安全性和性能。希望這篇指南能夠幫助你順利完成LNMP環(huán)境的搭建。
前一段時間,小編也收集了推薦36種免費React模板和主題「干貨」,這次又收集了22種Vue的。希望小伙們喜歡。收集不易,希望點贊+關(guān)注。
在Internet上搜索模板和主題時,很難找到免費的Vue資源。
即使您不在乎質(zhì)量,它們似乎也很難被發(fā)現(xiàn),并出于好奇而感動,我花了數(shù)小時在Google和Github上四處挖掘,結(jié)果得到了收集22種開源Vue模板和主題框架集合。我不會對此打賭,但是它們也是高質(zhì)量的資源。
現(xiàn)場演示:https://bootstrap-vue.org/
github:https://github.com/bootstrap-vue/bootstrap-vue
BootstrapVue 擁有85個以上的組件,45個以上的可用插件,多個指令和670+個圖標(biāo), 它提供了可用于Vue.js v2.6的Bootstrap v4.5組件和網(wǎng)格系統(tǒng)的最全面的實現(xiàn)之一 ,并具有廣泛的功能和自動 WAI-ARIA 可訪問性標(biāo)記。
現(xiàn)場演示:https://surmon.me/
Github: https://github.com/surmon-china/surmon.me
使用vue & nuxt 搭建建立的非常有風(fēng)味獨特的博客網(wǎng)站。
現(xiàn)場演示:https://buefy.org/
Github: https://github.com/buefy/buefy/
Buefy 是基于Bulma框架和設(shè)計的Vue.js響應(yīng)式UI組件的輕量級庫
特征
現(xiàn)場演示:https://vue.ant.design
Github: https://github.com/vueComponent/ant-design-vue
這里是 Ant Design 的 Vue 實現(xiàn),開發(fā)和服務(wù)于企業(yè)級后臺產(chǎn)品。
特性
現(xiàn)場演示:官網(wǎng):vuetifyjs.com
Github:https://github.com/vuetifyjs/vuetify
Vuetify 是一個 Vue UI 庫,包含手工制作的精美材料組件。不需要設(shè)計技能 - 創(chuàng)建令人驚嘆的應(yīng)用程序所需的一切都觸手可及。
iview官網(wǎng):https://www.iviewui.com/
Github:https://github.com/iview/iview
官方后臺示例:iview-admin:https://github.com/iview/iview-admin
iView Admin是一個前端管理后臺集成解決方案。它基于Vue.js并使用UI Toolkit iView。
Vue:http://element-cn.eleme.io/2.0/#/zh-CN/component/quickstart
React:https://eleme.github.io/element-react/#/zh-CN/quick-start
Angular:https://element-angular.faas.ele.me/guide/start
Github:https://github.com/vue-bulma/vue-admin
cd vue-admin
npm install
npm run dev
現(xiàn)場演示:http://demo.open.renren.io/renren-fast (賬號密碼:admin/admin)
Gitee:https://gitee.com/renrenio/renren-fast-vue
renren-fast-vue基于vue、element-ui構(gòu)建開發(fā),實現(xiàn)renren-fast后臺管理前端功能,提供一套更優(yōu)的前端解決方案
演示地址:http://vue.ruoyi.vip
文檔地址:http://doc.ruoyi.vip
RuoYi-Vue 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分離權(quán)限管理系統(tǒng)
現(xiàn)場演示:https://demos.creative-tim.com/vue-white-dashboard/?ref=devto
地址:https://www.creative-tim.com/product/vue-white-dashboard?ref=devto
Vue White Dashboard 是一個免費的開源Bootstrap 4和Vue.js Admin儀表板,其中包含大量的組件,這些組件可以組合在一起并看起來非常漂亮。Vue White儀表板具有16個以上的獨立組件,可讓您自由選擇和組合。這意味著有成千上萬種可能的組合。所有組件的顏色都可能不同,您可以使用SASS文件輕松進(jìn)行修改。
現(xiàn)場演示:https://gruhn.github.io/vue-qrcode-reader/?rel=nofollow
github:https://github.com/gruhn/vue-qrcode-reader?rel=nofollow
Vue QRcode Reader是一組用于檢測和解碼QR碼的VueJS組件。它使您無需離開瀏覽器即可檢測和解碼QR碼。所有組件都具有響應(yīng)能力。除此之外,它接近零樣式,因此您可以使它們適合您的布局。使用方法簡單明了。
現(xiàn)場演示:https://vuejsexpo.com/?ref=devto
VueJS Expo 使用Vue.js框架收集了許多精美的網(wǎng)站,應(yīng)用程序和實驗。如果您是VueJS框架的粉絲,那么這里可能是受到啟發(fā)的地方。展示包括基于VueJS的主題,元素,儀表板等。
現(xiàn)場演示:https://demos.creative-tim.com/bs3/vue-paper-dashboard-pro/#/admin/overview?ref=devto
地址:https://www.creative-tim.com/product/vue-material-dashboard-pro?ref=devto
Vue Paper Dashboard PRO 是建立在Bootstrap和Vue之上的漂亮資源。它將幫助您立即開始開發(fā)儀表板。Vue Paper Dashboard Pro是 Original Paper Dashboard Pro的VueJS移植版本。使用儀表板非常簡單,但是需要具備Javascript,Vue和Vue-Router的基礎(chǔ)知識。
現(xiàn)場演示:http://vue-color.surge.sh/?rel=nofollow
Github:https://github.com/xiaokaike/vue-color?rel=nofollow
Vue-Color 是來自Sketch,Photoshop,Chrome,Github,Twitter,Material Design等眾多酷炫色彩選擇器的集合。
現(xiàn)場演示:https://koel.dev/?rel=nofollow
Github:https://github.com/koel/koel?rel=nofollow
Koel 是一種簡單的基于Web的個人音頻流服務(wù),在客戶端用Vue編寫,在服務(wù)器端用Laravel編寫。針對Web開發(fā)人員,Koel采用了一些更現(xiàn)代的Web技術(shù)-CSS網(wǎng)格,音頻和拖放API等來完成其工作。
現(xiàn)場演示:https://demos.creative-tim.com/vue-argon-dashboard/?ref=devto
地址:https://www.creative-tim.com/product/vue-argon-dashboard?ref=devto
Vue Argon Dashboard 是Bootstrap 4和Vue.js的儀表板。它是開源的,免費的,并且具有許多組件,可以幫助您創(chuàng)建出色的網(wǎng)站。Vue Argon儀表板內(nèi)置了100多個單獨的組件,因此您可以選擇和組合。由于實現(xiàn)了所有元素,因此從原型制作到功能齊全的代碼,您將節(jié)省大量時間。該儀表板附帶了預(yù)先構(gòu)建的示例,因此開發(fā)過程是無縫的,從我們的頁面切換到真實的網(wǎng)站非常容易。
現(xiàn)場演示:https://pagekit.com/?rel=nofollow
github:https://github.com/pagekit/pagekit?rel=nofollow
Pagekit 是使用Symfony組件和VueJS構(gòu)建的模塊化,輕量級CMS。不管是個人博客還是公司網(wǎng)站,使用Pagekit都可以為Web創(chuàng)建功能強(qiáng)大的內(nèi)容,使其在每種設(shè)備上都能完美運行。它具有干凈直觀的界面。它也有一個很棒的內(nèi)置市場。
現(xiàn)場演示:https://demos.creative-tim.com/vue-material-dashboard-pro/?ref=devto#/dashboard
地址:https://www.creative-tim.com/product/vue-material-dashboard-pro?ref=devto
Vue Material Dashboard PRO 是基于Vue Material和VueJS構(gòu)建的超棒高級管理模板。它是通過考慮您在儀表板中實際需要的東西而創(chuàng)建的。Vue Material Dashboard PRO包含精選和優(yōu)化的VueJS插件。一切都旨在相互配合。使用儀表板非常簡單,但是需要具備Javascript,VueJS和Vue Router的基礎(chǔ)知識。
現(xiàn)場演示:https://demos.creative-tim.com/vue-material-kit/?ref=devto#/
地址:https://www.creative-tim.com/product/vue-material-kit?ref=devto
Vue Material Kit 是基于Vue Material和VueJS構(gòu)建的驚人的免費開源資源。這將幫助您立即開始開發(fā)UI Kit。Vue材料工具包是原始材料工具包的官方VueJS版本。使用UI Kit非常簡單,但是需要Javascript,VueJS和Vue Router的基礎(chǔ)知識。
現(xiàn)場演示:http://pepf.nl/retrospective/?rel=nofollow
github :https://www.creative-tim.com/product/vue-material-kit?ref=devto
Retrospectify 是用Vue編寫的出色工具,用于數(shù)字化敏捷團(tuán)隊回顧。當(dāng)與遠(yuǎn)程團(tuán)隊進(jìn)行回顧時,或者當(dāng)您希望隨時間跟蹤回顧結(jié)果時,這將很有用。它具有三種注釋類型,您可以在注釋周圍移動或?qū)Ⅻc添加到各個注釋中。
現(xiàn)場演示:https://lauthieb.github.io/code-notes/?rel=nofollow
github :https://github.com/lauthieb/code-notes?rel=nofollow
如果您尚未使用VueJS,則應(yīng)該知道它在Github上擁有超過164k的星星和88.7k的星星。很多!同樣,Vue是一種開源產(chǎn)品,這意味著任何人都可以為它做貢獻(xiàn)或從貢獻(xiàn)者那里學(xué)到新東西。
我希望這個清單可以在您的下一個開發(fā)項目中為您提供幫助
《如何寫出優(yōu)秀后臺管理系統(tǒng)?11個經(jīng)典模版拿去不謝「干貨」》
頭條創(chuàng)作挑戰(zhàn)賽#
前文已經(jīng)初始化了 workspace-root,從本文開始就需要依次搭建組件庫、example、文檔、cli。本文內(nèi)容是搭建 組件庫的開發(fā)環(huán)境。
前面在項目根目錄下創(chuàng)建了 packages 目錄,該目錄存放組件庫的所有組件及組件庫的入口。該目錄中已經(jīng)創(chuàng)建了兩個子目錄 foo 和 yyg-demo-ui。這兩個目錄是干嘛用的呢?
foo 目錄代表一個示例組件,后面咱們會使用該組件來測試組件庫在 example 和組件庫文檔中是否能正常運行。后續(xù)要開發(fā)的所有組件(如高級卡片組件、JSON Schema 表單組件等)都與 foo 組件的文件目錄結(jié)構(gòu)保持一致。
該目錄與整個組件庫工程的名稱相同,所以你本地的這個目錄不一定叫這個名稱。該目錄是組件庫的入口模塊,該模塊會安裝組件庫的所有組件(即 packages 目錄下的其他包)作為依賴,并引入全部組件,統(tǒng)一暴露。此外還是打包組件庫的入口。可以將它理解為組件庫的聚合模塊。
foo 目錄存放示例組件,它也是一個包,所以需要在命令行中進(jìn)入 packages/foo 目錄,使用 pnpm 初始化:
pnpm init
修改生成的 package.json 中的 name 屬性值為 foo,在 monorepo 中,子包的 name 屬性通常會命名為 @組織名/foo,由于咱是個組件庫,可以將其命名為 @組件庫名/foo,即 @yyg-demo-ui/foo。我修改了 package.json 的下面幾個屬性:
{
"name": "@yyg-demo-ui/foo",
"version": "1.0.0",
"description": "示例組件",
"author": "程序員優(yōu)雅哥 youyacoder",
"main": "index.ts",
...
}
在命令行中進(jìn)入 foo 目錄:
touch index.ts
mkdir src
touch src/index.tsx src/types.ts
如此一來,示例組件 foo 的目錄結(jié)構(gòu)便創(chuàng)建完成,目錄結(jié)構(gòu)如下:
packages/
|- foo/
|- index.ts
|- src/
|- index.ts
|- types.ts
|- yyg-demo-ui/
在 foo/src/types.ts 中定義 foo 組件的 props,并提取其類型:
import { ExtractPropTypes } from 'vue'
export const fooProps = {
msg: {
type: String,
required: false,
default: ''
}
}
export type FooProps = ExtractPropTypes<typeof fooProps>
上面的代碼定義了一個非必填的屬性 msg,并使用 vue 中提供的 ExtractPropTypes 提取 props 的類型。
在 foo/src/index.tsx 中實現(xiàn) foo 組件:
import { defineComponent } from 'vue'
import { fooProps } from './types'
const NAME = 'yyg-foo'
export default defineComponent({
name: NAME,
props: fooProps,
setup (props, context) {
console.log(props, context)
const onBtnClick = () => {
console.log('點擊按鈕測試', props.msg)
}
return () => (
<div class={NAME}>
<h1>yyg-demo-ui Foo</h1>
<p class={NAME + '__description'}>msg is: { props.msg }</p>
<el-button type='primary' onClick={onBtnClick}>點擊我</el-button>
</div>
)
}
})
該組件僅簡單展示文本和 Element Plus 的按鈕,用于測試。
foo/index.ts :
import { App } from 'vue'
import Foo from './src'
Foo.install = (app: App) => {
app.component(Foo.name, Foo)
}
export default Foo
該文件將組件導(dǎo)入并導(dǎo)出,并且為該組件提供 install 方法。這樣便完成了 foo 組件的代碼編寫。
完成 foo 示例組件后,就需要開始開發(fā)組件庫入口 yyg-demo-ui 了。第一步仍是初始化 package.json
在命令行中進(jìn)入 packages/yyg-demo-ui 目錄:
pnpm init
同上修改生成的 package.json 文件的 name 屬性:
{
"name": "@yyg-demo-ui/yyg-demo-ui",
"version": "1.0.0",
"description": "組件庫入口",
"author": "程序員優(yōu)雅哥 youyacoder",
"main": "index.ts",
...
}
foo 和 yyg-demo-ui 都是獨立的包,yyg-demo-ui 需要安裝 foo 到依賴中,才能引入 foo 組件。在 2.1 中將 foo 的 package.json name 屬性修改為 @yyg-demo-ui/foo,安裝時要使用該名稱。從控制臺中進(jìn)入 packages/yyg-demo-ui ,執(zhí)行命令:
pnpm install @yyg-demo-ui/foo
此時查看 packages/yyg-demo-ui/package.json 的 dependencies,會看到使用 workspace協(xié)議依賴了 foo
"dependencies": {
"@yyg-demo-ui/foo": "workspace:^1.0.0"
}
同時在 node_modules 中也可以看到多了一個 @yyg-demo-ui/foo:
在 packages/yyg-demo-ui 下創(chuàng)建 index.ts,導(dǎo)入組件并導(dǎo)出:
import { App } from 'vue'
import Foo from '@yyg-demo-ui/foo'
// import component end
import '../scss/index.scss'
const components = [
Foo
] // components
// 全局動態(tài)添加組件
const install = (app: App): void => {
components.forEach(component => {
app.component(component.name, component)
})
}
export default {
install
}
到這里咱們基本完成了組件的開發(fā)環(huán)境搭建,但遺留了三個問題:
組件及組件庫的樣式定義
如何查看組件的效果
組件庫如何構(gòu)建打包發(fā)布
這些問題在后面的文章中會依次解答。下一篇文章將分享組件庫的 CSS 架構(gòu)和 example 搭建。
感謝你閱讀本文,如果本文給了你一點點幫助或者啟發(fā),還請三連支持一下,點贊、關(guān)注、收藏,程序員優(yōu)雅哥會持續(xù)與大家分享更多干貨
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。