01.部署linux系統php
02.部署nginx網站服務html
03.部署mysql數據庫服務mysql
04.部署php動態解析服務linux
01.配置Nginx配置文件nginx
02.配置mysql數據庫信息(SQL語句)web
03.配置wordpress博客網站正則表達式
01.數據庫數據信息遷移(web服務器上的mysql數據 遷移到10.0.0.51 數據庫服務器上)算法
02.將本地儲存數據掛載到NFS共享儲存服務器裏(共享儲存用戶上傳的數據信息)sql
工做原理講解說明:數據庫
①. 用戶請求的靜態文件,由nginx服務自行處理,根據靜態的location配置進行處理
用戶請求的動態文件,由php服務進行處理,根據動態的location配置進行處理
②. nginx服務接收到動態請求,會將請求拋送給fastcgi,相似於nginx服務接收動態請求的祕書,祕書會將動態請求送給PHP程序
③. PHP若是能夠處理,會將處理結果直接經過fastcgi返回給nginx程序;若是不能夠處理,還會請求後端數據庫,最終再把處理結果返回給nginx
基本優化(ip地址 yum更新 字符集)
安全優化完成(iptables關閉 selinux關閉 tmp目錄權限777)
[root@web01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web01 ~]# uname -r 2.6.32-696.el6.x86_64
yum install -y pcre-devel openssl-devel
pcre:兼容perl語言正則表達式,perl compatible regular expressions
rewirte模塊 參數信息(perl方式定義正則表達式)
openssl:ssh---openssh/openssl---https
總結:全部安裝依賴軟件,後面都要加上-devel
wget http://nginx.org/download/nginx-1.10.2.tar.gz
說明:軟件很小,用心查看一下
解壓軟件
tar xf nginx-1.10.2.tar.gz
useradd -M -s /sbin/nologin www
軟件編譯安裝步驟
a>軟件解壓配置(將軟件程序安裝到哪一個目錄中 開啓nginx軟件的哪些功能)
b>軟件編譯過程
c>軟件編譯安裝過程
注意順序,順序不對軟件安裝會出錯
一、配置軟件,在軟件的解壓目錄中
[root@web01 nginx-1.10.2]# ./configure --prefix=/application/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
編譯參數說明:
--prefix 表示指定軟件安裝到哪一個目錄中,指定目錄不存在會自動建立
--user/--group nginx工做進程由哪一個用戶運行管理
--with-http_stub_status_module 啓動nginx狀態模塊功能(用戶訪問nginx的網絡信息)
--with-http_ssl_module 啓動https功能模塊
經過軟件編譯過程當中的返回值是否正確,確認配置是否正確
[root@web01 nginx-1.10.2]# echo $? 0
二、編譯軟件
[root@web01 nginx-1.10.2]# make
三、編譯安裝
[root@web01 nginx-1.10.2]# make install
[root@web01 application]# ln -s /application/nginx-1.10.2/ /application/nginx
[root@web01 conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf
[root@web01 application]# /application/nginx/sbin/nginx
[root@web01 application]#
檢查是否啓動
[root@web01 application]# ps -ef |grep nginx root 26548 1 0 20:13 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx www 26549 26548 0 20:13 ? 00:00:00 nginx: worker process root 26551 23431 3 20:13 pts/0 00:00:00 grep --color=auto nginx
檢查端口信息
[root@web01 application]# netstat -lntup |grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26548/nginx
服務部署完成, 修改hosts解析文件,進行瀏覽器訪問測試
至此軟件安裝完畢!
這裏使用的是5.6.34版本;在下載mysql的時候必定要注意與系統匹配的版本。
mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
方法一:mysql官網下載地址
儘可能使用ftp下載,http的下載方式較爲繁瑣。下載的時候選擇與本身近的服務進行下載便可。
方法二: 使用搜狐的鏡像站也能夠進行下載,注意使用的軟件版本。
cd /server/tools/ [root@web01 tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
[root@web01 tools]# useradd -s /sbin/nologin -M mysql
將mysql解壓後的程序包搬家到程序目錄下,並建立軟鏈接。
cd /server/tools/ mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34 ln -s /application/mysql-5.6.34 /application/mysql
讓mysql用戶管理 /application/mysql/data
[root@web01 ~]# chown -R mysql.mysql /application/mysql/data/ [root@web01 ~]# ll /application/mysql/data/ -d drwxr-xr-x 3 mysql mysql 4096 Oct 26 11:26 /application/mysql/data/
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
①始化參數說明:
--basedir 數據庫軟件命令,軟件安裝在哪裏
--datadir 數據存放目錄,數據存放在哪裏
--user 管理mysql的用戶,MySQL使用的用戶誰
②【*】斷定初始化命令執行成功的方法
1)確認返回值,看是否爲0
[root@web01 ~]# echo $?
2)確認輸出的內容中有兩個ok
3)經過數據庫初始化操做,在data目錄中建立出默認的數據庫信息和相關表信息
[root@web01 ~]# ls -l /application/mysql/data/ total 110604 -rw-rw---- 1 mysql mysql 12582912 Oct 26 11:56 ibdata1 -rw-rw---- 1 mysql mysql 50331648 Oct 26 11:56 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Oct 26 11:56 ib_logfile1 drwx------ 2 mysql mysql 4096 Oct 26 11:56 mysql drwx------ 2 mysql mysql 4096 Oct 26 11:56 performance_schema drwxr-xr-x 2 mysql mysql 4096 Oct 26 11:26 test
③初始化輸出的內容信息
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程序自帶的啓動腳本文件
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /application/mysql/bin/mysqladmin -u root password 'new-password' /application/mysql/bin/mysqladmin -u root -h web01 password 'new-password'
說明: 表示對mysql服務管理源root用戶設置密碼
You can start the MySQL daemon with:
cd . ; /application/mysql/bin/mysqld_safe &
能夠之後臺方式運行 mysqld_safe 腳本命令,也能夠運行mysql服務
[root@web01 ~]# cp -a /application/mysql/support-files/mysql.server /etc/init.d/mysqld
修改啓動服務腳本相關文件內容--更改軟件的存放目錄
注意: 修改的是兩個位置
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
添加到開機自啓動,讓chkconfig 管理,可以開機自啓動
[root@web01 ~]# chkconfig --add mysqld
[root@web01 ~]# chkconfig mysqld on
mysql默認配置文件保存位置
/etc/my.cnf
從軟件中複製出來配置文件,使用軟件中自帶的配置文件便可
\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
[root@web01 ~]# /etc/init.d/mysqld start
Starting MySQL...... SUCCESS!
[root@web01 ~]# netstat -lntup |grep 3306 tcp 0 0 :::3306 :::* LISTEN 54042/mysqld
[root@web01 ~]# /application/mysql/bin/mysqladmin -u root password 'clsn123' Warning: Using a password on the command line interface can be insecure.
[root@web01 ~]# /application/mysql/bin/mysql -uroot -pclsn123 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.6.34 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
登陸數據庫命令簡化方法
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile source /etc/profile which mysql
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.26 sec)
mysql> use mysql;show tables; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 28 rows in set (0.00 sec)
quit | exit
退出數據庫時,儘可能不要用ctrl+c進行退出mysql 用ctrl+d進行退出
數據庫基礎操做(數據庫框架)
show databases; <--- 查詢默認的數據庫信息 create database clsn; <---建立新的數據庫 drop database clsn; <---刪除存在的數據庫 use mysql; <--- 表示選擇使用一個數據庫,至關於cd進入一個數據庫 show tables; <---查看數據庫中表信息 select database(); <--- 表示查看當前所在數據庫,相似於pwd命令的功能 select user(); <--- 查看當前登陸數據庫的用戶,相似於whoami命令 而且mysql還能夠限制指定用戶能夠從哪裏進行鏈接登陸數據庫 select * from user\G; <---查看user表中全部信息,而且縱行顯示 select user,host from user; ---查看user表中指定信息,而且橫行顯示 select user,host from mysql.user; ---查看能夠登陸mysql數據庫的目錄,以及均可以從哪裏進行管理mysql數據庫 grant all on *.* to user@'host' identified by 'clsn123'; ---建立用戶 grant all on *.* to Old_Boy@'localhost' identified by 'clsn123'; ---建立用戶(大寫用戶) drop user 'user'@'host'; flush privileges; --- 刷新權限
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y
檢查的方法一:rpm
rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
檢查的方法二:再安裝一遍便可確認是否都安裝上
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
因爲該軟件yum安裝不上,須要單獨安裝一下。
mkdir -p /server/tools cd /server/tools #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make make install
說明:此軟件在centos6.8以後已經自帶此軟件功能,能夠不進行安裝
編譯好的軟件如何刪除
刪除安裝後的程序目錄便可
fpm 定製rpm包
rpm包製做軟件---把編譯後的程序目錄進行打包,經過fpm相關參數指定rpm解壓以前要先安裝哪些依賴
這三個軟件依賴與epel源
yum -y install libmcrypt-devel mhash mcrypt rpm -qa libmcrypt-devel mhash mcrypt
解壓安裝包
cd /server/tools/ [root@web01 lnmp]# tar xf php-5.5.32.tar.gz
配置php (配置的參數較多)
mysqlnd本地沒有mysql
./configure \ --prefix=/application/php-5.5.32 \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/usr/local/libiconv \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-fpm \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --enable-short-tags \ --enable-static \ --with-xsl \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-ftp \ --enable-opcache=no
PHP編譯參數詳解
1 ./configure 編譯參數 2 3 –prefix=/application/php5.3.27 指定php的安裝路徑爲/application/php5.3.27 4 5 –with-mysql=/application/mysql/ 6 須要指定mysql的安裝路徑,安裝PHP須要的MySQL相關內容。固然若是沒有MySQL軟件包,也能夠不單獨安裝,這樣的狀況可以使用–with-mysql=mysqlnd替代–with-mysql=/application/mysql,由於PHP軟件裏面已經自帶鏈接MySQL的客戶端工具。 7 8 –with-iconv-dir=/usr/local/libiconv libiconv庫,各類字符集間的轉換 9 10 –with-freetype-dir 打開對freetype字體庫支持 11 12 –with-jpeg-dir 打開對jpeg圖片的支持 13 14 –with-png-dir 打開對png圖片的支持 15 16 –with-zlib 打開zlib庫的支持,用於http壓縮傳輸 17 18 –with-libxml-dir=/usr 打開libxml2庫的支持 19 20 –enable-xml 21 22 –disable-rpath 關閉額外的運行庫文件 23 24 –enable-safe-mode 打開安全模式 25 26 –enable-bcmath 打開圖片大小調整,用zabbix監控時會用到該模塊 27 28 –enable-shmop 29 30 –enable-sysvsem 使用sysv信號機制,則打開此選項 31 32 –enable-inline-optimization 優化線程 33 34 –with-curl 打開curl瀏覽工具的支持 35 36 –with-curlwrappers 運維curl工具打開url流 37 38 –enable-mbregex 39 40 –enable-mbstring 支持mbstring 41 42 –with-mcrypt 編碼函數庫 43 44 –with-gd 打開gd庫的支持 45 46 –enable-gd-native-ttf 支持TrueType字符串函數庫 47 48 –with-openl openl的支持,加密傳輸時用到 49 50 –with-mhash mhash算法的擴展 51 52 –enable-pcntl freeTDS須要用到,多是連接mql 53 54 –enable-sockets 打開sockets支持 55 56 –with-xmlrpc 打開xml-rpc的c語言 57 58 –enable-zip 打開對zip的支持 59 60 –enable-soap soap模塊的擴展 61 62 –enable-short-tags 開始和標記函數 63 64 –enable-zend-multibyte 支持zend的多字節 65 66 –enable-static 生成靜態連接庫 67 68 –with-xsl 打開XSLT文件支持,擴展libXML2庫,須要libxslt軟件 69 70 –enable-ftp 打開ftp的支持 71 72 –enable-fpm 表示激活PHP-FPM方式服務,即FactCGI方式運行PHP服務。 73 74 –with-fpm-user=www 指定PHP-FPM進程管理的用戶爲www,此處最好和Nginx服務用戶統一。 75 76 –with-fpm-group=www 指定PHP-FPM進程管理用戶組爲www,此處最好和Nginx服務用戶組統一。
輸出的信息
Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP.
防錯
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/ touch ext/phar/phar.phar
編譯 && 編譯安裝
make && make install
ln -s /application/php-5.5.32/ /application/php
兩個默認的配置文件區別
cd /server/tools/php-5.5.32 ll php.ini* -rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development -rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production
配置文件說明:
php.ini-developments是開發人員調試用配置文件
php.ini-production是生產常見全部配置文件
文件區別對比:
生產的文件不會輸出過多的日誌信息,而開發文件會輸出大量程序測試日誌信息。
對比倆個文件不一樣的命令
diff / vimdiff
複製配置文件(2個)
# 建立軟鏈接 : ln -sf /application/php-5.5.32 /application/php [root@web01 ~]#cd /server/tools/php-5.5.32 [root@web01 php-5.5.32]# cp php.ini-production /application/php/lib/php.ini [root@web01 etc]# cd /application/php/etc/ [root@web01 etc]# cp php-fpm.conf.default php-fpm.conf
[root@web01 ~]# /application/php/sbin/php-fpm
確認php 9000端口是否正確啓動(檢查服務是否啓動)
[root@web01 ~]# netstat -lntup |grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
vim extra/blog.conf server { listen 80; server_name blog.etiantian.org; location / { root html/blog; index index.php index.html index.htm; } location ~* .*\.(php|php5)?$ { root html/blog; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } }
說明:利用nginx的location區塊實現動態請求與靜態請求的分別處理
<-- 須要注意編輯修改默認首頁文件 index index.php index.html index.htm;
讓nginx服務具備動態請求解析功能。
[root@web01 ~]# /application/nginx/sbin/nginx -t nginx: the configuration file /application/nginx-1.10.2/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.10.2/conf/nginx.conf test is successful [root@web01 ~]# /application/nginx/sbin/nginx -s reload
測試動態請求是否能夠處理:
echo '<?php phpinfo(); ?>' >/application/nginx/html/blog/test_info.php
測試站點
curl http://blog.etiantian.org/index.html <-- 靜態請求站點文件信息測試 curl http://blog.etiantian.org/test_info.php <-- 動態請求站點文件信息測試
說明:當php服務中止時,9000端口信息消失,即中止PHP錯誤報502錯誤
linux系統測試完畢後,建議利用瀏覽器進行最終測試,測試效果更明顯些
瀏覽器訪問
http://blog.znix.top/test_info.php
mysql -uroot -pclsn123; show databases; <--- 查看當前數據庫信息 create database wordpress; <---建立博客儲存數據庫
建立數據庫受權用戶
grant all on wordpress.* to 'wordpress'@'10.0.0.%' identified by 'clsn123'; flush privileges;
受權 全部權限 爲 wordpress庫的全部表 用戶@地址 設置密碼 ;
刷新數據庫
添加上用於blog使用的mysql用戶
drop user wordpress@'172.16.1.8'; <--- 刪除用戶信息 select user,host from mysql.user; <--- 查看用戶信息 mysql -uwordpress -p123456 <--- 測試建立的用戶鏈接 show databases; <--- 查看當前數據庫信息
vim test_mysql.php <?php //$link_id=mysql_connect('主機名','用戶','密碼'); //mysql -u用戶 -p密碼 -h 主機 $link_id=mysql_connect('localhost','wordpress','clsn123') or mysql_error(); if($link_id){ echo "mysql successful by clsn !\n"; }else{ echo mysql_error(); } ?>
測試動態請求訪問nginx服務是否能夠到達數據庫
下載地址:https://cn.wordpress.org
tar xf wordpress-4.7.3-zh_CN.tar.gz
[root@web01 wordpress]# pwd /server/tools/lnmp/wordpress [root@web01 wordpress]# mv ./* /application/nginx/html/blog/
對站點目錄進行 受權
[root@web01 wordpress]# cd /application/nginx/html/blog/ [root@web01 blog]# chown www.www -R /application/nginx/html/blog/ [root@web01 blog]# ll total 200 -rw-r--r-- 1 www www 11 Oct 25 09:20 index.html -rw-r--r-- 1 www www 418 Sep 25 2013 index.php ……
說明:wp-config.php文件建立須要可以有權限對目錄操做。
此文件定義數據庫鏈接信息
mysql -uroot -pclsn123; show databases; create database wordpress;
mysql> grant all on wordpress.* to 'wordpress'@'10.0.0.%' identified by 'clsn123'; Query OK, 0 rows affected (0.16 sec) mysql> select user,host from mysql.user; +-----------+-----------+ | user | host | +-----------+-----------+ | wordpress | 10.0.0.% | | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | web01 | | root | web01 | +-----------+-----------+ 7 rows in set (0.00 sec)
訪問網站進行初始化操做
填寫的數據爲
鏈接數據庫配置說明
數據庫名:指定數據存儲到哪個數據庫當中,例如:存儲到wordpress數據庫中
用戶名:以什麼用戶身份管理wordpress數據庫
密碼: 用戶的密碼
數據庫主機: 指定鏈接的數據庫服務器地址信息
表前綴:標識相應表屬於哪個數據庫
說明:配置完數據鏈接信息後,會自動建立wp-config.php文件,此文件定義數據庫鏈接配置信息
安裝完成效果
說明:
以上的mysql配置都是在web01 上進行 ,如今須要將web01上的mysql數據進行遷移到db01(數據庫服務器)上去。
[root@db01 ~]# mysqldump -uroot -pclsn123 --all-databases >/tmp/bak.sql
使用mysqldump命令將數據庫中的所有數據進行備份 備份到 /tmp/bak.sql 。
mysqldump 命令參數說明:
參數 |
參數說明 |
--add-drop-table |
在每一個建立數據庫表語句前添加刪除數據庫表的語句; |
--add-locks |
備份數據庫表時鎖定數據庫表; |
--all-databases |
備份MySQL服務器上的全部數據庫; |
--comments |
添加註釋信息; |
--compact |
壓縮模式,產生更少的輸出; |
--complete-insert |
輸出完成的插入語句; |
--databases |
指定要備份的數據庫; |
--default-character-set |
指定默認字符集; |
--force |
當出現錯誤時仍然繼續備份操做; |
--host |
指定要備份數據庫的服務器; |
--lock-tables |
備份前,鎖定全部數據庫表; |
--no-create-db |
禁止生成建立數據庫語句; |
--no-create-info |
禁止生成建立數據庫庫表語句; |
--password |
鏈接MySQL服務器的密碼; |
--port |
MySQL服務器的端口號; |
--user |
鏈接MySQL服務器的用戶名。 |
[root@web01 tools]# rsync -avz /tmp/bak.sql 172.16.1.51:/tmp/ The authenticity of host '172.16.1.51 (172.16.1.51)' can't be established. RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.16.1.51' (RSA) to the list of known hosts. root@172.16.1.51's password: sending incremental file list bak.sql sent 377261 bytes received 31 bytes 83842.67 bytes/sec total size is 1483738 speedup is 3.93
使用rsync將數據推送到MySQL服務器的/tmp 目錄下面。
mysql服務快速部署過程腳本。詳情參見mysql數據庫部署安裝。
cd /server/tools tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz useradd -s /sbin/nologin -M mysql mkdir -p /application/ mv /server/tools/mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34 ln -s /application/mysql-5.6.34/ /application/mysql chown -R mysql.mysql /application/mysql /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld \cp /application/mysql/support-files/my-default.cnf /etc/my.cnf /etc/init.d/mysqld start /application/mysql/bin/mysqladmin -u root password 'clsn123'
[root@db01 ~]# /application/mysql/bin/mysql -uroot -pclsn123 </tmp/bak.sql
Warning: Using a password on the command line interface can be insecure.
注意,數據庫導入以後要刷新數據庫,讓導入的數據被識別(重要)
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
[root@web01 ~]# /application/mysql/bin/mysql -u wordpress -pclsn123 -h 10.0.0.51 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.34 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | wordpress | +--------------------+ 3 rows in set (0.00 sec)
修改wordpress軟件的配置,將鏈接的主機地址改成數據庫服務器的地址
[root@web01 ~]# vim /application/nginx/html/blog/wp-config.php …… /** MySQL主機 */ define('DB_HOST', '10.0.0.51'); ……
01.經過網頁圖片屬性信息進行確認路徑
http://blog.clsn.top/wp-content/uploads/2017/10/cropped-Frog-2.png
02.經過find查看數據儲存路徑信息,上傳個圖片,查找相同中1分鐘之內的文件
find -type f -mmin -1
03.經過inotify軟件進行監控
確認文件的儲存目錄
/application/nginx/html/blog/wp-content/uploads
備份數據是由於掛載的時候會將當前的數據所有'覆蓋'掉,只顯示nfs共享目錄的信息。
[root@web01 uploads]# pwd /application/nginx/html/blog/wp-content/uploads [root@web01 uploads]# mkdir /tmp/wordpress_bak [root@web01 uploads]# mv ./* /tmp/wordpress_bak/
配置nfs服務的時候注意權限的設置
[root@nfs01 data]# cat /etc/exports #share user:hzs /data 172.16.1.0/24(rw,sync,root_squash,no_all_squash,anonuid=501,anongid=501)
注意:
anonuid 與 anongid 要和web服務器上的www用戶的相同(UID與GID相同)
[root@nfs01 /]# id www uid=501(www) gid=501(www) groups=501(www)
目錄的屬組要是與nfs配置的anonuid,anongid相同的用戶。
[root@nfs01 /]# ll /data/ -d drwxr-xr-x 3 www www 4096 Oct 27 12:11 /data/
NFS的配置詳情參見: NFS存儲服務部署一篇。
注:做爲nfs客戶端須要安裝nfs-utils 和 rpcbind
①先檢查是否能掛載,顯示能夠掛載的目錄
[root@web01 uploads]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /data 172.16.1.0/24
②將磁盤進行掛載
[root@web01 uploads]# mount -t nfs 172.16.1.31:/data /application/nginx/html/blog/wp-content/uploads/
③顯示磁盤信息
[root@web01 uploads]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 3.7G 15G 21% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot 172.16.1.31:/data 19G 1.5G 17G 9% /application/nginx-1.10.2/html/blog/wp-content/uploads
[root@web01 uploads]# pwd application/nginx-1.10.2/html/blog/wp-content/uploads [root@web01 uploads]# mv /tmp/wordpress_bak/* ./
yum install bash-completion -y
# 複製php啓動腳本 [root@clsn ~]# cp /server/tools/php-5.5.32/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@clsn ~]# chmod +x /etc/init.d/php-fpm # 找到pid文件,開啓它 [root@clsn ~]# vim /application/php/etc/php-fpm.conf # ··· [global] ; Pid file ; Note: the default prefix is /application/php-5.5.32/var ; Default Value: none pid = run/php-fpm.pid # ··· # 啓動php [root@clsn ~]# /etc/init.d/php-fpm status php-fpm (pid 27931) is running...
[root@clsn ~]# cat /etc/init.d/nginx #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /application/nginx/conf/nginx.conf # config: /application/nginx/sbin/nginx # pidfile: # by: http://www.nmtui.com # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/application/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/application/nginx/conf/nginx.conf" #[ -f /application/nginx/sbin/nginx ] && . /application/nginx/sbin/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -n "$user" ]; then if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done fi } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac