架構LNMP

目錄

1.安裝Nginx服務

2.安裝 MySQL 服務

3.安裝配置 PHP 解析環境

4.部署 Discuz!社區論壇 Web 應用


1.安裝Nginx服務

實驗準備

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

安裝依賴包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

創建運行用戶

useradd -M -s /sbin/nologin nginx

編譯安裝

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/      #解壓資源包cd nginx-1.12.0/./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module             #配置模塊make && make install                       #編譯及編譯安裝

優化路徑

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

添加 Nginx 系統服務

vim /lib/systemd/system/nginx.service[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.targetchmod 754 /lib/systemd/system/nginx.service         #賦權
systemctl start nginx.service                       #開啟服務
systemctl enable nginx.service                      #開機自啟

2.安裝 MySQL 服務

安裝Mysql環境依賴包

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

創建運行用戶

useradd -M -s /sbin/nologin  mysql

編譯安裝

cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz           #將安裝包放到opt目錄下,并解壓cd /opt/mysql-5.7.20/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1                            #配置編譯模塊make && make install                        #編譯及編譯安裝

修改mysql 配置文件

vim /etc/my.cnf[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

更改mysql安裝目錄和配置文件的屬主屬組

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

設置路徑環境變量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile

初始化數據庫

cd /usr/local/mysql/bin/./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

添加mysqld系統服務

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

修改mysql 的登錄密碼

mysqladmin -u root -p password "123"

授權遠程登錄

mysql -u root -p

3.安裝配置 PHP 解析環境

安裝環境依賴包

yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

編譯安裝

cd /opt
tar jxvf php-7.1.10.tar.bz2                    #解壓到opt目錄下cd php-7.1.10                                  #進入解壓包./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip                                     #配置安裝模塊make && make install                             #編譯及編譯安裝

路徑優化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

調整PHP配置文件

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.inivim /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock   #1170行修改
date.timezone = Asia/Shanghai                         #939行取消注釋,修改php -m                                                #驗證安裝的模塊cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf                 #調整進程服務配置文件vim php-fpm.conf
pid = run/php-fpm.pid                                 #17行取消注釋cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf                          #調整擴展配置文件

啟動php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000                                    #查看cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service                           #重啟服務

配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf//65行--取消注釋,修改location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;#fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;include        fastcgi_params;}systemctl restart nginx.service         #重啟服務

驗證PHP 測試頁

vim /usr/local/nginx/html/index.php<?php
phpinfo();
?>http://192.168.88.13/index.php               #瀏覽器訪問

驗證數據庫工作是否正常

mysql -u root -pCREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
quit                                            #配置完成后退出vim /usr/local/nginx/html/index.php             #替換原來的測試頁內容<?php
$link=mysqli_connect('192.168.88.13','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>http://192.168.88.13/index.php                  #瀏覽器訪問

?

4.部署 Discuz!社區論壇 Web 應用

解壓論壇文件

cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis             #解壓
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/               #復制到剛剛創建的bbs用戶下

調整論壇目錄的權限

cd /usr/local/nginx/html/bbs/
chown -R nginx ./config/
chown -R nginx ./data/
chown -R nginx ./uc_client/
chown -R nginx ./uc_server/
//或
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

論壇頁面訪問

http://192.168.88.13/bbs/install/index.php數據庫服務器:localhost     #本地架設就用localhost,如何不是在在本機上就要填寫IP地址和端口號
數據庫名字:bbs
數據庫用戶名:bbsuser
數據庫密碼:admin123
管理員賬號:admin
管理員密碼:admin123訪問論壇頁面:
http://192.168.88.13/bbs/index.php
http://192.168.88.13/bbs/admin.php

fpm參數優化

vim /usr/local/php/etc/php-fpm.conf 
pid = run/php-fpm.pidvim /usr/local/php/etc/php-fpm.d/www.confpm = dynamic                                         #96行fpm進程啟動方式,動態的
pm.max_children=20                                   #107行fpm進程啟動的最大進程數
pm.start_servers = 5                                 #112行動態方式下啟動時默認開啟的進程數
pm.min_spare_servers = 2                             #117行動態方式下最小空閑進程數
pm.max_spare_servers = 8                             #122行動態方式下最大空閑進程數kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`  #重啟php-fpm
netstat -anpt | grep 9000
ps -elf | grep php-fpm

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212119.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212119.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212119.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript中的async await基本使用

目錄 1. async await是什么2. 為什么會出現3. 需要怎么去使用4. 最終的結果解決什么5. 使用的注意點6. 常用的技巧 JavaScript中的async await是一種處理異步代碼的語法糖&#xff0c;它可以讓我們更加方便地處理異步操作&#xff0c;避免了回調地獄和Promise鏈式調用的問題。 …

Jmeter測試實踐:文件下載接口

一 Jmeter步驟 1.打開jmeter4.0&#xff0c;新建測試計劃&#xff0c;添加線程組。根據實際情況配置線程屬性。 2.添加HTTP請求。根據接口文檔進行配置。 Basic部分修改如下&#xff0c;Advanced部分保持默認。這里的參數id是文件的id&#xff0c;我進行了參數化&#xff0c…

vue基本運用之常見問題及案例代碼

前言 一些 Vue.js 的常見問題以及對應的案例代碼 Vue實例生命周期 問題描述:如何在Vue的生命周期鉤子中調用其他鉤子?案例代碼: new Vue({el: #app, created: function () {console.log(m

Redis哨兵(sentinel)

文章目錄 簡介搭建框架具體步驟主要文件參數開始配置 案例分析原有的master掛了 哨兵運行流程和選舉原理主觀下線客觀下線(Objectively Down)選舉出領導者哨兵(哨兵中選出兵王) 選新的master使用建議 簡介 將某一個從庫轉換為新主庫&#xff0c;繼續對外服務將某一個從庫轉換為…

?operator --- 標準運算符替代函數?

源代碼: Lib/operator.py operator 模塊提供了一套與Python的內置運算符對應的高效率函數。例如&#xff0c;operator.add(x, y) 與表達式 xy 相同。 許多函數名與特殊方法名相同&#xff0c;只是沒有雙下劃線。為了向后兼容性&#xff0c;也保留了許多包含雙下劃線的函數。為了…

Java - HashMap

數組和鏈表 數組&#xff1a; 存儲區間是連續&#xff0c;且占用內存嚴重&#xff0c;空間復雜也很大&#xff0c;時間復雜為O&#xff08;1&#xff09; 優點&#xff1a;是隨機讀取效率很高&#xff0c;原因數組是連續&#xff08;隨機訪問性強&#xff0c;查找速度快&#x…

properties配置和讀取

如何配置和讀取屬性文件 1.屬性文件介紹1.1 什么是屬性文件1.2屬性文件規范1.3 屬性文件優缺點 2.屬性文件讀取4.spring和屬性文件4.1利用注解讀取4.2配置文件里直接引用 4.屬性文件寫入5.注意事項5.總結 1.屬性文件介紹 1.1 什么是屬性文件 Java開發中&#xff0c;我們經常需…

Qt6.5類庫實例大全:Qt Creator快速入門

哈嘍大家好&#xff0c;我是20YC編程小二&#xff01;掃碼關注公眾號&#xff0c;現在可免費領取《C程序員》在線視頻教程哦&#xff01;#下面開始今天內容# 1. Qt Creator介紹 Qt Creator是一個輕量級的跨平臺集成開發環境(IDE)&#xff0c;專為使用Qt框架進行應用程序開發而…

華為OD機試真題-攀登者1-2023年OD統一考試(C卷)

題目描述: 攀登者喜歡尋找各種地圖,并且嘗試攀登到最高的山峰。 地圖表示為一維數組,數組的索引代表水平位置,數組的高度代表相對海拔高度。其中數組元素0代表地面。 例如[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0], 代表如下圖所示的地圖,地圖中有兩個山脈位置分別為 1,2,3,4,5和8…

基于深度學習的文本分類研究綜述

摘要 與傳統的機器學習模型相比&#xff0c;深度學習模型試圖模仿人的學習思路&#xff0c;通過計算機自動進行海量數據的特征提取工作。文本分類是自然語言處理中的一個重要應用&#xff0c;在文本信息處理過程中有著關鍵作用。過去幾年&#xff0c;由于深度學習研究的空前成…

NAND閃存市場2023年Q3增長2.9%,Q4有望激增20%

TrendForce報告顯示&#xff0c;NAND閃存市場在2023年第三季度出現了關鍵轉折&#xff0c;主要由三星的戰略性減產決定驅動。最初&#xff0c;市場對終端用戶需求的不確定性以及對平淡旺季的擔憂導致買家采取保守的方法&#xff0c;庫存低、采購慢。然而&#xff0c;隨著三星等…

華為新款筆記本搭載5nm麒麟芯片,來源成謎,可能讓大家失望了~

近日&#xff0c;華為公司悄悄推出了一款基于國產技術打造的全新商用筆記本——華為擎云L540。目前&#xff0c;華為擎云L540在京東平臺悄然上線的&#xff0c;尚未在華為官方渠道公開售賣。華為擎云L540搭載了麒麟9006C處理器&#xff0c;采用先進的5nm制程工藝&#xff0c;8 …

codeforces A. Morning

思路 模擬&#xff0c;按順序移動移動到對應位置貢獻為移動的步數&#xff0c;press的次數。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #define get getchar #define put putchar #define is isdigit #define int long long #define dfor(i,a…

openGauss學習筆記-150 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_backup

文章目錄 openGauss學習筆記-150 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_backup150.1 背景信息150.2 前提條件150.3 語法150.4 參數說明150.5 示例 openGauss學習筆記-150 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_backup 150.1 背景信息 openGaus…

錯題總結(四)

1.【一維數組】輸入10個整數&#xff0c;求平均值 編寫一個程序&#xff0c;從用戶輸入中讀取10個整數并存儲在一個數組中。然后&#xff0c;計算并輸出這些整數的平均值。 int main() {int arr[10];int sum 0;for (int n 0; n < 10; n){scanf("%d", &arr…

[完美解決]Accelerate設置單卡訓練報錯,成功設置單卡訓練

報錯內容 ValueError: Less than two GPU ids were configured and tried to run on on multiple GPUs. Please ensure at least two are specified for --gpu_ids, or use --gpu_idsall. ValueError:配置了少于兩個GPU id&#xff0c;并試圖在多個GPU上運行。請確保為——gpu…

小黑子——springBoot基礎

springBoot簡單學習 一、SpringBoot簡介1.1 springBoot快速入門1.1.1 開發步驟1.1.2 對比1.1.3 官網構建工程1.1.3 SpringBoot工程快速啟動 1.2 springBoot概述1.2.1 起步依賴I. 探索父工程II. 探索依賴III. 小結 1.2.2 程序啟動1.2.3 切換web服務器-jetty 二、配置文件2.1 配置…

C語言精選——選擇題Day43

第一題 1. 使用malloc系統調用分配的內存是在什么上分配的&#xff1f; A&#xff1a;棧 B&#xff1a;堆 答案及解析 B malloc開辟的空間都是在堆上申請的內存空間&#xff0c;但是我們平常定義的定長數組之類的&#xff0c;都是在棧上開辟的空間&#xff1b; 第二題 2. C語言…

scala變量與變量類型

1.6 變量與類型&#xff08;重點&#xff09;1.6.1 變量推斷1.6.2 多變量定義1.6.3 var和val的區別 1.6.3.1 是否可變 1.6.3.2 延遲加載 1.6 變量與類型&#xff08;重點&#xff09; val修飾的變量&#xff0c;相當于Java中final修飾的變量; // 定義常量s1&#xff0c;使用…

[每周一更]-(第76期):Go源碼閱讀與分析的方式

讀源碼可以深層理解Go的編寫方式&#xff0c;理解作者們的思維方式&#xff1b;也有助于對Go語法用法深刻的理解&#xff0c;我們從這一篇說一下如何讀源碼&#xff0c;從哪些源碼著手&#xff0c;從 簡單到深入的方式學習源碼&#xff1b; 學習源碼也是一個修煉過程&#xff0…