主頁 > 軟體設計 > 原始碼編譯安裝部署LAMP平臺(使用Apache,MySQL與PHP搭建Discuz論壇實體)

原始碼編譯安裝部署LAMP平臺(使用Apache,MySQL與PHP搭建Discuz論壇實體)

2021-01-06 10:32:16 軟體設計

文章目錄

  • 一、LAMP平臺與編譯安裝
    • (一)、LAMP平臺概述
    • (二)、構建LAMP平臺順序
    • (二)、編譯安裝的優點
    • (三)、各組件的主要作用
  • 二、部署步驟
    • (一)、編譯安裝Apache httpd服務
    • (二)、編譯安裝mysqld 服務
    • (三)、編譯安裝PHP 決議環境
    • (四)、Discuz論壇安裝
  • 三、實體演示
    • (一)、部署Apache服務
    • (二)、部署MySQL
    • (三)、安裝PHP服務
    • (四)、安裝論壇

一、LAMP平臺與編譯安裝

(一)、LAMP平臺概述

LAMP架構是目前成熟的企業網站應用模式之一,指的是協同作業的一整臺系統和相關軟體,能夠提供動態web站點服務及其應用開發環境

LAMP是一個縮寫詞,具體包括Linux作業系統,Apache網站服務器,MySQL資料庫服務器,PHP(或perl,Python)網頁編程語言

(二)、構建LAMP平臺順序

在構建LAMP平臺時,各組件的安裝順序依次為Linux,Apache,MySQL,PHP

其中Apache和MySQL的安裝并沒有嚴格的順序要求,而PHP環境的安裝一般放到最后,負責溝通web服務器和資料庫系統以協同作業

(二)、編譯安裝的優點

1、具有較大的自由度,功能可定制
2、可及時獲得最新的軟體版本
3、普遍適用于大多數Linux版本,便于一直使用

(三)、各組件的主要作用

  • (平臺)Linux:作為LAMP架構的基礎,提供用于支撐Web站點的作業系統,能夠與其他三個組件提供更好的穩定性,兼容性(AMP組件也支持Windows、UNIX等平臺) ,

  • (前臺)Apache:作為LAMP架構的前端,是一款功能強大,穩定性好的Web服務器程式,該服務器直接面向用戶提供網站訪問,發送網頁,圖片等檔案內容,

  • (后臺)MySQL:作為LAMP架構的后端,是一款流行的開源關系資料庫系統,在企業網站、業務系統等應用中,各種賬戶資訊、產品資訊,客戶資料、業務資料等都可以存盤到MySQL資料庫,其他程式可以通過SQL陳述句來查詢,更改這些資訊,

  • (中間連接)PHP/Perl/Python:作為三種開發動態網頁的編程語言,負責解釋動態網頁檔案,負責溝通Web服務器和資料庫系統以協同作業,并提供Web應用程式的開發和運行環境,其中PHP是一種被廣泛應用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應用開發,
    在這里插入圖片描述

二、部署步驟

相關軟體包鏈接:百度網盤鏈接
提取碼:30m8

(一)、編譯安裝Apache httpd服務

1.關閉防火墻,將安裝Apache所需軟體包傳到/opt目錄下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

cd /opt
httpd-2.4.29.tar.gz
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
#apr組件包用于支持Apache上層應用跨平臺,提供底層介面庫,能有效的降低并發連接數、降低行程和減少訪問堵塞,

2.安裝環境依賴包

yum -y install \
gcc \							#C語言的編譯器
gcc-c++ \						#C++的編譯器
make \							#源代碼編譯器(源代碼轉換成二進制檔案)
pcre \							#pcre是一個Perl函式庫,包括perl 兼容的正則運算式庫
pcre-devel \                    #perl的介面開發包
expat-devel \                   #用于支持網站決議HTML、XML檔案
perl                            #perl語言編譯器

yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl            

3.配置軟體模塊

cd /opt/
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2

mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \		#指定 httpd 服務程式的安裝路徑
--enable-so \					#啟用動態加載模塊支持,使 httpd 具備進一步擴展功能的能力
--enable-rewrite \				#啟用網頁地址重寫功能,用于網站優化、防盜鏈及目錄遷移維護
--enable-charset-lite \			#啟動字符集支持,以便支持使用各種字符集編碼的頁面
--enable-cgi					#啟用CGI(通用網關介面)腳本程式支持,便于網站的外部擴展應用訪問能力

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

4.編譯及安裝

make							#make -j 2  表示開2核同時進行編譯
make install

5.優化組態檔路徑,并把httpd服務的可執行程式檔案放入路徑環境變數的目錄中便于系統識別

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

6.添加httpd系統服務
方法一:

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd		#用于service服務管理
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd
#!/bin/bash												#在第一行前插入新行,添加此三行內容
# chkconfig: 35 85 21									#35級別自動運行  85個啟動 21個關閉
# description: Apache is a World Wide Web server

chkconfig --add httpd     		#將httpd服務加入到service管理器

systemctl start httpd.service

service httpd start

方法二:

vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server						#描述
After=network.target									#描述服務類別
[Service]
Type=forking											#后臺運行方式
PIDFile=/usr/local/httpd/logs/httpd.pid					#PID檔案位置
ExecStart=/usr/local/bin/apachectl $OPTIONS				#啟動服務
ExecReload=/bin/kill -HUP $MAINPID						#根據PID多載配置
[Install]
WantedBy=multi-user.target

systemctl start httpd.service
systemctl enable httpd.service

7.修改httpd 服務組態檔

vim /etc/httpd.conf
--52行--修改
Listen 192.168.200.50:80
--197行--取消注釋,修改
ServerName www.benet.com:80

--221行--默認首頁存放路徑
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默認首頁檔案名設定
DirectoryIndex index.html

httpd -t   apachectl -t			#檢查組態檔的配置項是否有誤
cat /usr/local/httpd/htdocs/index.html
systemctl restart httpd.service

8.瀏覽器訪問驗證

netstat -anpt | grep 80
echo "192.168.200.50 www.benet.com" >> /etc/hosts

http://192.168.200.50
http://www.benet.com

(二)、編譯安裝mysqld 服務

1.將安裝mysql 所需軟體包傳到/opt目錄下

mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz		#支持c++的運行庫

2.安裝環境依賴包

yum -y install \
gcc \
gcc-c++ \
ncurses \				#字符終端下圖形互動功能的動態庫
ncurses-devel \			#ncurses開發包
bison \					#語法分析器
cmake					#mysql需要用cmake編譯安裝

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake

3.配置軟體模塊

tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz

cd /opt
mv boost_1_59_0 /usr/local/boost		#重命名

cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安裝路徑
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql行程監聽套接字檔案(資料庫連接檔案)的存盤路徑
-DSYSCONFDIR=/etc \                             #指定組態檔的存盤路徑
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定行程檔案的存盤路徑
-DDEFAULT_CHARSET=utf8  \                       #指定默認使用的字符集編碼,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默認使用的字符集校對規則
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集編碼
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安裝INNOBASE存盤引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安裝ARCHIVE存盤引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安裝BLACKHOLE存盤引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安裝FEDERATED存盤引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定資料庫檔案的存盤路徑
-DWITH_BOOST=/usr/local/boost \          #指定boost的路徑,若使用mysql-boost集成包安裝則-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的檔案

存盤引擎選項:
MYISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,并不需要明確地安裝,
靜態編譯一個存盤引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存盤引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

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=/usr/local/boost \
-DWITH_SYSTEMD=1

注意:如果在CMAKE的程序中有報錯,當報錯解決后,需要把原始碼目錄中的CMakeCache.txt檔案洗掉,然后再重新CMAKE,否則錯誤依舊

4.編譯及安裝

make && make install

5.創建mysql用戶

useradd -M -s /sbin/nologin  mysql

6.修改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					#設定服務器字符集編碼格式為utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 行程檔案路徑
socket=/usr/local/mysql/mysql.sock			#指定資料庫連接檔案
bind-address = 0.0.0.0						#設定監聽地址,0.0.0.0代表允許所有,如允許多個IP需空格隔開
skip-name-resolve							#禁用DNS決議
max_connections=2048						#設定mysql的最大連接數
default-storage-engine=INNODB				#指定默認存盤引擎
max_allowed_packet=16M						#設定資料庫接收的資料包大小的最大值
server-id = 1								#指定服務ID號

sql_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

sql_mode常用值如下:

NO_ENGINE_SUBSTITUTION
如果需要的存盤引擎被禁用或未編譯,那么拋出錯誤,不設定此值時,用默認的存盤引擎替代,并拋出一個例外

STRICT_TRANS_TABLES
在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制

NO_AUTO_CREATE_USER
禁止GRANT創建密碼為空的用戶

NO_AUTO_VALUE_ON_ZERO
mysql中的自增長列可以從0開始,默認情況下自增長列是從1開始的,如果你插入值為0的資料會報錯

NO_ZERO_IN_DATE
不允許日期和月份為零

NO_ZERO_DATE
mysql資料庫不允許插入零日期,插入零日期會拋出錯誤而不是警告

ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE程序中,如果資料被零除,則產生錯誤而非警告,默認情況下資料被零除時MySQL回傳NULL

PIPES_AS_CONCAT
"||"視為字串的連接運算子而非或運算子,這和Oracle資料庫是一樣的,也和字串的拼接函式Concat相類似

ANSI_QUOTES
啟用ANSI_QUOTES后,不能用雙引號來參考字串,因為它被解釋為識別符

7.更改mysql安裝目錄和組態檔的屬主屬組

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

8.設定路徑環境變數

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

9.初始化資料庫

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#生成初始化密碼為空
--user=mysql \                      #指定管理用戶
--basedir=/usr/local/mysql \        #指定資料庫的安裝目錄
--datadir=/usr/local/mysql/data		#指定資料庫檔案的存盤路徑

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

10.添加mysqld系統服務

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		#用于systemctl服務管理
systemctl daemon-reload         #重繪識別     
systemctl start mysqld.service  #開啟服務
systemctl enable mysqld         #開機自啟動
netstat -anpt | grep 3306       #查看埠

11.修改mysql 的登錄密碼

mysqladmin -u root -p password "abc123" 	#給root賬號設定密碼為abc123,提示輸入的是原始密碼(為空)

12.授權遠程登錄

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用戶可以在所有終端遠程登錄,使用的密碼是abc123,并對所有資料庫和所有表有操作權限

show databases;			#查看當前已有的資料庫

(三)、編譯安裝PHP 決議環境

1.將安裝PHP 所需軟體包傳到/opt目錄下

php-7.1.10.tar.bz2

2.安裝GD庫和GD庫關聯程式,用來處理和生成圖片

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

3.配置軟體模塊

cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/
./configure \
--prefix=/usr/local/php7 \							#指定將 PHP 程式的安裝路徑
--with-apxs2=/usr/local/httpd/bin/apxs \			#指定Apache httpd服務提供的apxs 模塊支持程式的檔案位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql 資料庫連接檔案的存盤路徑
--with-config-file-path=/usr/local/php7				#設定 PHP 的組態檔 php.ini 將要存放的位置
--with-mysqli \										#添加 MySQL 擴展支持 #mysqli擴展技術不僅可以呼叫MySQL的存盤程序、處理MySQL事務,而且還可以使訪問資料庫作業變得更加穩定
--with-zlib \										#支持zlib功能,提供資料壓縮
--with-curl \										#開啟curl擴展功能,實作HTTP的Get下載和Post請求的方法
--with-gd \											#激活gd 庫的支持
--with-jpeg-dir \									#激活jpeg 的支持
--with-png-dir \									#激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \									#啟用多位元組字串功能,以便支持中文等代碼
--enable-xml \										#開啟擴展性標記語言模塊
--enable-session \									#會話
--enable-ftp \										#文本傳輸協議
--enable-pdo \										#函式庫
--enable-tokenizer \								#令牌解釋器
--enable-zip										#ZIP壓縮格式

./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

4.編譯及安裝

make && make install

5.復制模版檔案作為PHP 的主組態檔,并進行修改

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini	
#在測驗環境時使用php.ini-development檔案,而在生產環境時使用php.ini-production檔案
vim /usr/local/php7/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注釋,修改
date.timezone = Asia/Shanghai

6.優化把PHP 的可執行程式檔案放入路徑環境變數的目錄中便于系統識別

ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m 			#查看PHP 加載了哪些模塊

7.修改httpd 服務的組態檔,讓apache支持PHP

vim /etc/httpd.conf 
--393行--插入以下內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
--255行--修改首頁檔案名設定
DirectoryIndex index.html index.php

---檢查156行默認支持php7的模塊是否存在------
LoadModule php7_module        modules/libphp7.so

8.驗證PHP 測驗頁

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

systemctl restart httpd.service

瀏覽器訪問
http://192.168.80.10

(四)、Discuz論壇安裝

1.創建資料庫,并進行授權

mysql -u root -p

CREATE DATABASE bbs;
#創建一個資料庫

GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#把bbs資料庫里面所有表的權限授予給bbsuser,并設定密碼admin123

flush privileges;
#重繪資料庫

show databases;

2.解壓論壇壓縮包

unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/httpd/htdocs/bbs		#上傳站點更新包

3.更改論壇目錄的屬主

cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

4.瀏覽器訪問驗證

論壇頁面訪問
http://192.168.200.50/bbs

資料庫服務器:localhost     ###本地架設就用localhost,如何不是在在本機上就要填寫IP地址和埠號
資料庫名字:bbs
資料庫用戶名:bbsuser
資料庫密碼:admin123
管理員賬號:admin
管理員密碼:admin123

論壇后臺管理員頁面
http://192.168.200.50/bbs/admin.php

三、實體演示

(一)、部署Apache服務

在這里插入圖片描述
安裝依賴包
在這里插入圖片描述

使用 tar zxvf/jxvf 解壓三個壓縮包
在這里插入圖片描述
移動安裝包
在這里插入圖片描述
配置安裝目錄及功能模塊
在這里插入圖片描述
編譯及安裝(最好使用兩核及以上,不然時間太長)
在這里插入圖片描述
在這里插入圖片描述
當進入該目錄下有如下檔案說明編譯安裝成功
在這里插入圖片描述

優化組態檔路徑,并把httpd服務的可執行程式檔案放入路徑環境變數的目錄中便于系統識別
在這里插入圖片描述
添加httpd系統服務
在這里插入圖片描述
修改httpd 服務組態檔
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
檢查埠是否開啟
在這里插入圖片描述
進行瀏覽器訪問驗證
在這里插入圖片描述
在這里插入圖片描述

(二)、部署MySQL

將安裝包傳到/opt目錄下并解壓
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

安裝環境依賴包
在這里插入圖片描述
在這里插入圖片描述
配置軟體模塊
在這里插入圖片描述
編譯及安裝
在這里插入圖片描述
創建mysql用戶
在這里插入圖片描述
修改mysql 組態檔
在這里插入圖片描述
更改mysql安裝目錄和組態檔的屬主屬組
在這里插入圖片描述
設定路徑環境變數
在這里插入圖片描述
初始化資料庫
在這里插入圖片描述
添加mysqld系統服務
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
授權遠程登錄
在這里插入圖片描述
在這里插入圖片描述

(三)、安裝PHP服務

將安裝PHP 所需軟體包傳到/opt目錄下并解壓
在這里插入圖片描述

安裝GD庫和GD庫關聯程式,用來處理和生成圖片
在這里插入圖片描述
配置軟體模塊
在這里插入圖片描述
編譯及安裝
在這里插入圖片描述
復制模版檔案作為PHP 的主組態檔,并進行修改
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
優化把PHP 的可執行程式檔案放入路徑環境變數的目錄中便于系統識別
在這里插入圖片描述
修改httpd 服務的組態檔,讓apache支持PHP
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
驗證PHP 測驗頁
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

(四)、安裝論壇

解壓論壇壓縮包
在這里插入圖片描述
在這里插入圖片描述
更改論壇目錄的屬主
在這里插入圖片描述
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/245195.html

標籤:其他

上一篇:如何撰寫自己的資料訪問層

下一篇:騰訊T9職級后臺開發要具備哪些專業的能力及知識點?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more