LNMP架構部署

来源:http://www.cnblogs.com/bananaaa/archive/2017/11/13/7825171.html
-Advertisement-
Play Games

第1章 部署LNMP架構步驟 1.1 ①部署Linux系統(OK) 基本優化完成(ip地址設置 yum源更新 字元集設置) 安全優化完成(iptables關閉 selinux關閉 /tmp/ 1777) 1.2 ②部署nginx網站服務 A.安裝軟體依賴包 B.創建進程管理用戶 C.下載nginx軟 ...


第1章 部署LNMP架構步驟

1.1 ①部署Linux系統(OK)

基本優化完成(ip地址設置 yum源更新 字元集設置)

安全優化完成(iptables關閉 selinux關閉 /tmp/ 1777)

1.2 ②部署nginx網站服務

A.安裝軟體依賴包

B.創建進程管理用戶

C.下載nginx軟體,進行編譯安裝(編譯安裝三步曲)

D.創建軟鏈接文件

E.編寫nginx配置文件

F.啟動nginx服務

G.編寫hosts解析文件,進行瀏覽器訪問測試

第2章 ③部署mysql資料庫服務(web伺服器)

2.1 軟體部署過程

A.下載mysql軟體

mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

B.二進位包方式安裝mysql資料庫軟體

2.1.1 a.解壓二進位包軟體

 1 cd /server/tools 2 3 tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 

2.1.2 b.創建mysql虛擬用戶

 1 useradd -s /sbin/nologin -M mysql 

2.1.3 c.將解壓後的二進位包放置到程式目錄中

1 cd /server/tools
2 
3 mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34
4 
5 ln -s /application/mysql-5.6.34/ /application/mysql

2.1.4 c.要對mysql數據存儲目錄data進行授權

 1 chown -R mysql.mysql /application/mysql/data #這裡也可以直接讓用戶直接管理mysql目錄 2 3 ll /application/mysql/data/ 

2.1.5 e.初始化資料庫服務

 1 /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql 2 3 echo $? 

提示:如何判定以上初始化命令執行成功

01.確認返回值

02.確認命令執行輸出內容中,必須存在兩個OK

03.通過資料庫初始化操作,在data目錄中創建出預設資料庫信息和相關表信息

其中,查看初始化輸出的內容

 To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system 

  說明:mysql啟動腳本預設在support-files/mysql.server,這裡要複製mysql.server到系統啟動目錄

2.1.6 f.將啟動腳本文件複製到啟動目錄中並授權

cp -a /application/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

  註意mysql相關文件:啟動腳本/etc/init.d/mysqld  啟動命令/application/mysql/bin/mysqld_safe

因為兩文件中都存在mysql安裝預設路徑/usr/local/mysql,故這裡進行同時修改,如下

2.1.7 g.修改啟動腳本和mysql命令中的路徑

 1 sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld 

2.1.8 h.複製mysql預設的服務配置文件

 1 cp /application/mysql/support-files/my-default.cnf /etc/my.cnf 

說明:mysql預設配置文件保存位置support-files/my-default.cnf,但my-default.cnf不能在mysql目錄下配置,更改為/etc/my.cnf使系統能夠識別mysql配置信息,且原有/etc/my.cnf與安裝版本不同

2.1.9 i.啟動mysql服務

1 /etc/init.d/mysqld start
2 
3 Starting MySQL.... SUCCESS!
4 
5 netstat -lntup|grep mysql
6 
7 tcp      0      0 :::3306          :::*             LISTEN      3075/mysqld

說明:至此mysql資料庫安裝完成,可以檢測進程和服務埠,確認服務是否啟動正確

2.2 mysql管理講解

2.2.1 01.進入與退出mysql資料庫方法

 1 /application/mysql/bin/mysql 

退出資料庫時,儘量不要用ctrl+c進行退出mysql ,使用ctrl+d進行退出

2.2.2 02.設置全局變數,便於登錄資料庫

1 echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
2 
3 source /etc/profile
4 
5 which mysql

a.查看資料庫信息

 1 mysql> show databases;
 2 
 3 +--------------------+
 4 
 5 | Database           |
 6 
 7 +--------------------+
 8 
 9 | information_schema |
10 
11 | mysql              |
12 
13 | performance_schema |
14 
15 | test               |
16 
17 +--------------------+
18 
19 4 rows in set (0.13 sec)

b.查看數據表信息(二維表)

1 mysql> use mysql;   #因為表屬於庫,故此處要具體到使用某一個資料庫進行查看
2 
3 Reading table information for completion of table and column names
4 
5 You can turn off this feature to get a quicker startup with -A
6 
7 Database changed
8 
9 mysql> show tables;   #顯示信息

2.2.3 03.設置mysql服務開機自啟動

加入開機自啟動

 1 chkconfig --add mysqld 2 3 chkconfig mysqld on 

2.2.4 04.設置mysql資料庫登錄用戶名與密碼

給MySQL root用戶設置密碼

1 /application/mysql/bin/mysqladmin -u root password 'oldboy123'   #本地設定密碼,提示可忽略
2 
3 mysql -u root -poldboy123
4 
5 /application/mysql/bin/mysqladmin -u root -h web01 password 'oldboy123'   #遠端設定密碼,擇其一

2.3 常用命令參數說明

 1 show databases;           #<-查詢預設的資料庫信息
 2 create database oldboy;     #<-創建新的資料庫
 3 drop database oldboy;      #<-刪除存在的資料庫
 4 use mysql;               #<-表示選擇使用一個資料庫,相當於cd進入一個資料庫
 5 show tables;            #<-查看資料庫中表信息
 6 select database();         #<-表示查看當前所在資料庫,類似於pwd命令的功能
 7 select user();             #<-查看當前登錄資料庫的用戶,類似於whoami命令
 8                           並且mysql還可以限制指定用戶可以從哪裡進行連接登錄資料庫
 9 select * from user\G;      #<-查看user表中所有信息,並且縱行顯示
10 select user,host from user;  #<-查看user表中指定信息,並且橫行顯示
11 select user,host from mysql.user;   #<-查看可以登錄mysql資料庫的目錄,以及都可以從哪裡進行管理mysql資料庫
12 grant all on *.* to user@'host' identified by 'oldboy123';           #<-創建用戶
13 grant all on *.* to Old_Boy@'localhost' identified by 'oldboy123';   #<-創建用戶(大寫用戶)
14 drop user 'user'@'host';    #<-刪除用戶及用戶關聯庫
15 flush privileges;        #<-刷新許可權
16 初級 添加刪除系列
17 create database wordpress;   #<-創建資料庫
18 drop database wordpress;    #<-刪除資料庫

第3章 ④部署PHP動態解析服務

01.配置LNMP架構步驟

A.配置nginx配置文件

B.配置mysql資料庫信息(SQL語句)

C.配置wordpress博客網站

02.架構伺服器串聯

a.資料庫數據信息遷移(web伺服器上的mysql數據遷移到10.0.0.51資料庫伺服器上)

b.將本地存儲數據掛載到NFS共用存儲伺服器里(共用存儲用戶上傳的數據信息)

3.1 PHP軟體安裝步驟

3.1.1 解決PHP軟體的依賴關係

1 yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
2 
3 yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y
4 
5 rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
6 
7 yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

# zlib壓縮有關軟體 libxml2字元集有關軟體 libjpeg圖片有關軟體等

說明:由於libiconv-devel無法進行yum安裝,故使用編譯如下

3.1.1.1  libiconv-devel軟體安裝--字元集轉換庫

#和字元集轉換的相關軟體

 1 mkdir -p /server/tools
 2 
 3 cd /server/tools
 4 
 5 #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
 6 
 7 tar zxf libiconv-1.14.tar.gz
 8 
 9 cd libiconv-1.14
10 
11 ./configure --prefix=/usr/local/libiconv
12 
13 make
14 
15 make install
16 
17 cd ../

#和數據加密有關的三個軟體

1 #wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo   #更改epel源
2 
3 yum -y install libmcrypt-devel mhash mcrypt
4 
5 rpm -qa libmcrypt-devel mhash mcrypt

說明:此軟體在centOS6.8之後,系統已經自帶此軟體功能,可以不進行安裝

編譯好的軟體卸載方法:刪除安裝後的程式目錄

FPM:rpm包製作軟體---把編譯後的程式目錄進行打包,通過fpm指定rpm解壓前要先安裝哪些軟體

自動化部署必備技能—定製化RPM包:http://blog.oldboyedu.com/autodeploy-rpm/

3.2 下載解壓PHP軟體

 1 cd /server/tools/
 2 tar xf php-5.5.32.tar.gz
 3 cd php-5.5.32
 4  
 5 ./configure \
 6 --prefix=/application/php-5.5.32 \     #指定php軟體安裝位置
 7 --with-mysql=/application/mysql \  #指定mysql軟體安裝位置 mysqlnd資料庫服務沒有安裝在本地伺服器上參數(web伺服器視情況而定)
 8 --with-pdo-mysql=mysqlnd \        #定義介面pdo
 9 --with-iconv-dir=/usr/local/libiconv \
10 --with-freetype-dir \
11 --with-jpeg-dir \
12 --with-png-dir \
13 --with-zlib \
14 --with-libxml-dir=/usr \
15 --enable-xml \
16 --disable-rpath \
17 --enable-bcmath \
18 --enable-shmop \
19 --enable-sysvsem \
20 --enable-inline-optimization \
21 --with-curl \
22 --enable-mbregex \
23 --enable-fpm \
24 --enable-mbstring \
25 --with-mcrypt \
26 --with-gd \
27 --enable-gd-native-ttf \
28 --with-openssl \
29 --with-mhash \
30 --enable-pcntl \
31 --enable-sockets \
32 --with-xmlrpc \
33 --enable-soap \
34 --enable-short-tags \
35 --enable-static \
36 --with-xsl \
37 --with-fpm-user=www \   #fpm要與wrapper程式對接,用戶需一致
38 --with-fpm-group=www \
39 --enable-ftp \
40 --enable-opcache=no

說明:LNMP架構部署時,如果mysql服務和web服務不在一臺主機上,php配置參數需要進行調整

--with-mysql=/application/mysql/  =>  --with-mysql=mysqlnd

3.2.1 防錯步驟

1 ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/
2 
3 touch ext/phar/phar.phar   #創建軟鏈接生成目錄
4 
5 make
6 
7 make install

說明:此時/application下會生成程式文件信息

3.3 PHP軟體程式創建軟鏈接

 1 ln -s /application/php-5.5.32/ /application/php 

3.4 配置php解析文件/配置php-fpm配置文件

php服務擁有兩個配置文件

01.php.ini

1 cd /server/tools/php-5.5.32
2 
3 ll php.ini*
4 
5 -rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development   #開發人員調試用配置文件
6 
7 -rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production    #生產常見所有配置文件

說明:文件比較命令vimdiff php.ini-development php.ini-production

php.ini-production 與 php.ini-development 文件區別關係對比:

①  生產文件:不會輸出太多日誌信息

②  開發文件:會輸出大量程式測試日誌信息

 1 cp php.ini-production /application/php/lib/php.ini 2 3 cd /application/php/etc/ 4 5 cp php-fpm.conf.default php-fpm.conf 

擴展命令:編譯安裝PHP時若配置未正確指定PHP進程用戶信息,可以修改PHP文件進行調整

#sed -i 's#user = www#user = nginx#g;s#group = www#group = nginx#g' /application/php-5.5.32/etc/php-fpm.conf   #忽略此步驟

3.5 啟動php服務

 1 /application/php/sbin/php-fpm 2 3 lsof -i :9000 #<-確認php 9000埠是否正確啟動 4 5 ps -ef|grep php-fpm 

第4章 wordpress博客站點部署配置

4.1 01.修改nginx配置文件,使nginx程式與php程式建立聯繫(fastcgi)

 1 vim extra/blog.conf
 2 
 3 server {
 4 
 5         listen       80;
 6 
 7         server_name  blog.etiantian.org;
 8 
 9         location / {
10 
11                     root   html/blog;
12 
13                     index  index.php index.html index.htm;          <--需要註意編輯修改預設首頁文件  index  index.php index.html index.htm;
14 
15         }
16 
17         location ~* .*\.(php|php5)?$ {   #以php|php5結尾的動態資源訪問文件交給php處理
18 
19                     root html/blog;
20 
21                     fastcgi_pass  127.0.0.1:9000;   #使用127.0.0.0/24本地網段建立互聯
22 
23                     fastcgi_index index.php;
24 
25                     include fastcgi.conf;
26 
27         }
28 
29 }

說明:利用nginx的location區塊實現動態請求與靜態請求的分別處理;讓nginx服務具有動態請求解析功能  location ~* .*\.(php|php5)?$  修改後==> location ~* (php|php5)$

4.2 ⭐02.編輯nginx與php連通性測試文件,併進行測試

測試動態請求是否可以處理前提:

01.必須要有動態資源文件php文件

1 cd /application/nginx/html/blog
2 
3 vim test_info.php
4 
5 <?php
6 
7 phpinfo();
8 
9 ?>

說明:當php服務停止時,9000埠信息消失,即停止PHP錯誤報502錯誤

02.linux系統測試完畢後,建議利用瀏覽器進行最終測試,測試效果更明顯些

客戶端測試

 1 curl http://blog.etiantian.org/index.html #<-靜態請求站點文件信息測試 2 3 curl http://blog.etiantian.org/test_info.php #<-動態請求站點文件信息測試 

瀏覽器測試

 1 blog.etiantian.org #<-靜態 2 3 blog.etiantian.org/test_info.php #<-動態 

4.3 03.編輯php與mysql連通性測試文件,併進行測試

4.3.1 A.創建wordpress博客存儲博客資料庫

 1 mysql -uroot -poldboy123; 2 3 show databases; #<-查看當前資料庫信息 4 5 create database wordpress; 

4.3.2 B.創建資料庫授權用戶

1 grant all on wordpress.* to 'wordpress'@'10.0.0.%' identified by 'oldboy123';
2 
3 flush privileges;   #刷新mysql的系統許可權相關表

 

#授權 所有許可權 針對某一個庫.表信息(這裡即所有) 讓哪些用戶可以有此許可權 允許哪些網段的主機可以連接到資料庫上(%即網段,亦可定義具體地址) 定義資料庫密碼信息

4.3.2.1  查看用戶信息

 1 mysql> select user,host from mysql.user;
 2 
 3 +-----------+-----------+
 4 
 5 | user      | host      |
 6 
 7 +-----------+-----------+
 8 
 9 | wordpress | 10.0.0.%  |
10 
11 | root      | 127.0.0.1 |
12 
13 | root      | ::1       |
14 
15 |           | localhost |
16 
17 | root      | localhost |
18 
19 |           | web01     |
20 
21 | root      | web01     |
22 
23 +-----------+-----------+
24 
25 7 rows in set (0.00 sec)

4.3.2.2  其他信息說明

drop user wordpress@'172.16.1.8';     #<-刪除用戶信息
select user,host from mysql.user;      #<-查看用戶信息
mysql -uwordpress -p123456         #<-測試創建的用戶連接
show databases;                   #<-查看當前資料庫信息
利用mysql命令進行指定用戶登錄測試
/application/mysql/bin/mysql -uwordpress -poldboy123

4.3.3 C.測試php與資料庫連通性

01.編寫文件

 1 cd /application/nginx/html/blog
 2 
 3 vim test_mysql.php
 4 
 5 <?php
 6 
 7 //$link_id=mysql_connect('主機名','用戶','密碼');
 8 
 9    //mysql -u用戶 -p密碼 -h 主機
10 
11    $link_id=mysql_connect('localhost','wordpress','oldboy123') or mysql_error();
12 
13    if($link_id){
14 
15                 echo "mysql successful by oldboy !\n";
16 
17                }else{
18 
19                 echo mysql_error();
20 
21                }
22 
23    ?>

02.測試

 1 curl blog.etiantian.org/test_mysql.php #<-xshell測試php與資料庫的連通性 2 3 http://blog.etiantian.org/test_mysql.php #<-瀏覽器測試 

4.4 04.下載部署wordpress博客程式

另外三個網站 bbs www blog

4.4.1 下載wordpress程式進行保存

說明:中文網站https://cn.wordpress.org/ 英文官網https://www.wordpress.org/

 1 cd /server/tools/ 2 3 wget https://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz 

4.4.2 解壓程式壓縮包,將解壓後程式代碼複製到站點目錄下

 1 tar xf wordpress-4.7.3-zh_CN.tar.gz 2 3 mv wordpress/* /application/nginx/html/blog/ 

4.4.3 對站點目錄進行授權

 1 chown -R www.www /application/nginx/html/blog/ 

註意:統一目錄下內容nginx用戶管理,因為ps -ef|grep nginx顯示nginx管理的用戶是www。通過網站訪問是以www用戶,不修改則為root用戶,用戶沒有寫入許可權

4.4.4 進行訪問blog網站,完成初始化操作

連接資料庫配置

資料庫名:指定數據存儲到哪一個資料庫當中,如存儲到wordpress資料庫中

用戶名:以什麼用戶身份管理wordpress資料庫[不建議root許可權過大]

密碼:-

資料庫主機:指定資料庫所在的伺服器地址信息[當nginx與資料庫在同一臺伺服器上時,可以使用localhost]

表首碼:標識相應表屬於哪一個資料庫

註意:配置完數據連接信息後,瀏覽網頁頁面進行會自動生成WordPress基礎配置文件,即/application/nginx/html/blog/ wp-config.php,此文件定義資料庫連接配置參數選項。

第5章 wordpress博客站點資料庫遷移(架構伺服器串聯)

5.1 遷移資料庫:利用資料庫備份命令(web伺服器上的mysql數據遷移到資料庫伺服器上)

5.1.1 01.備份資料庫中數據信息

1 /application/mysql/bin/mysqldump -uroot -poldboy123 --all-databases >/tmp/bak.sql   #警告:在命令行界面使用密碼可能不安全
2 
3 ll /tmp/bak.sql -h
4 
5 scp /tmp/bak.sql 172.16.1.51:/tmp/

5.1.2 02.將備份數據傳送到10.0.0.51伺服器上,進行恢復

 1 [root@web01 ~]# rsync -avz /tmp/bak.sql 172.16.1.51:/tmp/ 2 3 [root@db01 ~]# ll /tmp 

5.1.3 03.mysql伺服器快速部署mysql過程

 1 [root@db01 ~]# mkdir -p /server/tools   #上傳mysql壓縮包
 2 [root@db01 ~]# vim /server/scripts/mysql_conf.sh
 3 
 4 #解壓mysql壓縮包
 5 
 6 cd /server/tools
 7 
 8 tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
 9 
10 mkdir -p /application
11 
12 #將解壓後的二進位包放置到程式目錄中
13 
14 mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34
15 
16 ln -s /application/mysql-5.6.34/ /application/mysql
17 
18 #創建mysql虛擬用戶
19 
20 useradd -s /sbin/nologin -M mysql
21 
22 #對mysql數據存儲目錄進行授權
23 
24 chown -R mysql.mysql /application/mysql/data
25 
26 #複製mysql預設的服務配置文件
27 
28 cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
29 
30 #初始化資料庫服務
31 
32 /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
33 
34 #將啟動腳本文件複製到啟動目錄中
35 
36 \cp -a /application/mysql/support-files/mysql.server /etc/init.d/mysqld
37 
38 #修改啟動腳本和mysql命令中的路徑
39 
40 sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
41 
42 #啟動mysql服務
43 
44 /etc/init.d/mysqld start
45 [root@db01 ~]# sh /server/scripts/mysql_conf.sh

5.1.3.1  數據恢復功能

 1 [root@db01 ~]# /application/mysql/bin/mysqladmin -uroot password #mysql資料庫設置密碼 2 3 [root@db01 ~]# /application/mysql/bin/mysql -u root -poldboy123 </tmp/bak.sql 

5.1.4 04.進行測試(在web01伺服器上進行遠程登錄資料庫)

啟動資料庫並查看資料庫信息

 1 /application/mysql/bin/mysql -u wordpress -poldboy123 -h 10.0.0.51#<--修改配置文件之前,先測試網站web伺服器與遷移後的資料庫連通性 2 3 show databases; 

註意:頁面出現"建立資料庫連接時出錯"

原因:服務停止;連接時出現問題

5.1.5 05.資料庫遷移完畢,修改web服務php連接數據配置文件信息

1 cd /application/nginx/html/blog
2 vim wp-config.php     #<--修改wordpress上的資料庫連接參數信息
3 
4 
5 /** MySQL主機 */
6 
7 define('DB_HOST', '10.0.0.51');   #<--修改連接的主機信息,將localhost修改為10.0.0.51

說明:web伺服器資料庫此時可以關閉了

5.2 將本地存儲數據掛載到NFS共用存儲伺服器上(共用存儲用戶上傳的數據信息)

5.2.1 A.確認本地數據存儲路徑信息

01.通過查看網頁圖片屬性信息進行確認路徑

02.通過find查看數據存儲路徑信息

find . -type f -mmin -1

03.通過inotify軟體進行監控

html/blog

5.2.2 B.將已有數據進行遷移備份

1 cd /application/nginx/html/blog/wp-content/uploads     #資料庫存儲目錄
2 
3 mkdir /tmp/wordpress_backup -p
4 
5 mv ./* /tmp/wordpress_backup/

5.2.3 C.將存儲目錄掛載到nfs共用目錄上

1 [root@nfs01 ~]# vim /etc/exports
2 
3 /backup 172.16.1.0/24(rw,sync,all_squash)
4  
5 showmount -e 172.16.1.31
6 
7 [root@web01 ~]# mount -t nfs 172.16.1.31:/backup /application/nginx/html/blog/wp-content/uploads/
8 
9 mv /tmp/wordpress_backup/* /application/nginx/html/blog/wp-content/uploads/

說明:/etc/exports若未設置all_squash,則無法向共用目錄中寫入數據,需要調整nfs服務配置

01.修改映射參數

vim /etc/exports

no_all_squash ==> all_squash

02.修改共用目錄為指定預設映射用戶-www

#保持web伺服器同nfs的用戶uid gid一致

usermod -u xxx www  groupmod -g xxx www

 

vim /etc/exports

anonuid=xxx,anongid=xxx     #<-xxx值: uid及gid


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [20171113]修改表結構刪除列相關問題.txt--//維護表結構刪除欄位一般都是先ALTER TABLE <table_name> SET UNUSED (<column_name>);--//然後等空閑時候刪除列.ALTER TABLE <table_name> DROP UNUSED CO ...
  • 轉自維基百科: SQL註入是一種代碼註入技術,用於攻擊數據驅動的應用程式,在這種應用程式中,惡意的SQL語句被插入輸入欄位中執行(例如將資料庫內容轉儲給攻擊者)。[1] SQL註入必須利用應用程式軟體中的安全漏洞,例如,當用戶輸入被錯誤地過濾為嵌入在SQL語句中的字元串文字 轉義字元,或者用戶輸入沒 ...
  • 從開始工作就開始使用Redis,也有一段時間了,但都只是停留在使用階段,沒有往更深的角度探索,每次想讀源碼都止步在閱讀書籍上,因為看完書很快又忘了,這次逼自己先讀代碼。因為個人覺得寫作需要閱讀文字來增強靈感,那麼寫代碼的,就閱讀更多代碼來增強靈感吧。 ...
  • 學習大數據沒有零基礎入門,首先你要成為一名工程師 在技術論壇中或知乎上,看到近幾萬的朋友都在疑惑,學習Java應該選擇什麼發展方向,這個咱們在之前的文章中有提到過,Java發展在領域上有三個選擇方向: JavaEE,主要應用於企業級應用開發;安卓開發方向;嵌入式應用開發方向。在此建議大家選擇Java ...
  • 學習HDFS有一段時間了,現在把自己總結的HDFS的相關操作代碼展示給大家。 主要有HDFS的增刪改查,文件的追加,windows本地文件的上傳,hdfs文件的下載,文件重命名,創建目錄,文件是否存在等操作。 準備工作:我是用maven搭配的環境,下麵用到了單元測試@Test,需要在pom.xml文 ...
  • 最近使用阿裡雲伺服器,學習一下Docker,今天學著使用Docker安裝MySQL。 首先,從阿裡雲的Docker Hub 上pull一個MySQL的image. 查看下載鏡像,就會看到已經有了 名字太長,修改為短的tag 根據鏡像創建容器 啟動MySQL容器 進入MySQL終端 參考: http: ...
  • 安裝Flask-Migrate插件 註意到虛擬環境中(因為Flask環境就安裝在虛擬環境中) 安裝flask-script使python支持命令行操作 創建manage.py文件 初始化 創建遷移腳本 更新資料庫 第一次遷移實際上相當於調用db.create_all(),但在後續遷移中,upgrad ...
  • 1 例子jar位置 2 生成數據文件 3 創建HDFS目錄 4 將數據文件word.txt上傳以HDFS /work/data/input目錄下 5 運行wordcount例子 6 查看結果 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...