更改網站檔案目錄
如果你使用的是軍哥的lnmp安裝包,那預設的虛擬機器主機配置環境在 /usr/local/nginx/conf/vhost/ 目錄裡,修改:
vi /usr/local/nginx/conf/vhost/網域名稱.conf
可以開啟對應的虛擬機器主機配置,然後修改其中的網站目錄。然後執行:
cp -a 老目錄 新目錄
chown www:www -R 新目錄
更改MySQL資料存放目錄
1.停掉mysql伺服器:
/etc/init.d/mysql stop
2.下面新目錄以/storage/mysql/ 為例,然後複製舊目錄的資料庫到新目錄:
cp -R /usr/local/mysql/var/* /storage/mysql/
3.將新目錄賦權為mysql使用者組:
chown mysql:mysql -R /storage/mysql/
4.再修改設定檔:
vi /etc/my.cnf
尋找mysql資料原有目錄 /usr/local/mysql/var 修改為:
datadir = /storage/mysql
innodb_data_home_dir = /storage/mysql
innodb_log_group_home_dir = /storage/mysql
5.啟動mysql:
/etc/init.d/mysql start
【補充說明】:阿里雲、騰訊雲端服務器的硬碟是分兩塊,一個系統硬碟,一個資料盤,預設資料盤沒有被掛載,所以除了系統和環境軟體會安裝在系統硬碟裡,網站資料等也在系統硬碟裡,資料盤卻空置,沒法利用其空間與區分系統和資料管理的好處。
這裡做下說明,如何讓網站資料存放區在資料盤?
如果使用常用的LNmp一鍵安裝包安裝系統內容,網站根目錄預設為: /home/wwwroot
有兩個方法
1 . 直接掛載到目錄/home/wwwroot
這個直接按阿里雲官方的教程操作就可以了,只是需要建立目錄 # mkdir /home/wwwroot
然後把 /mnt 替換為 /home/wwwroot 即可
操作完上面這些,再安裝LNmp一鍵包即可。
2 . 軟體安裝在系統硬碟,但網站資料放在資料盤
LNmp還是安裝在系統硬碟裡,阿里雲伺服器的資料盤掛載也按原來的操作
只要在添加網站時將預設目錄修改成 /mnt 即可
這樣的好處有兩點:
1. 可以使用到更多的資料盤空間
2. 重裝系統或環境不會影響網站資料,當然格式化資料盤也不會影響網站資料。
*另外也可以把資料盤再多分一個區,把其中一個分區掛載到資料庫目錄,比如/usr/local/mysql,方法同上。
*如果現在網站已經建在系統硬碟下了,還有辦法遷移到資料盤嗎?網站在home下,資料盤還可以載入到home目錄嗎?
當然可以,先將/home目錄下的檔案移動到其他目錄,然後把資料盤掛載到/home,把資料移回即可
【如果之前安裝lnmp的時候,沒有安裝mysql innodb資料庫引擎,怎麼辦呢?】
1、如果你選擇安裝的是 mysql-5.5.37,那麼只需要修改 /etc/my.cnf 設定檔即可
先看下 centos.sh 安裝指令碼是如何判斷是否安裝 innodb 的:
if [ $installinnodb = "y" ]; then
sed -i 's:#innodb:innodb:g' /etc/my.cnf
sed -i 's:/usr/local/mysql/data:/usr/local/mysql/var:g' /etc/my.cnf
else
sed '/skip-external-locking/i\default-storage-engine=MyISAM\nloose-skip-innodb' -i /etc/my.cnf
fi
根據上面的命令,我們修改 /etc/my.cnf 即可:
a、找到 loose-skip-innodb 並注釋掉:
default-storage-engine=MyISAM
#loose-skip-innodb
skip-external-locking
b、搜尋 innodb 並取消innodb前面的注釋:
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
重啟,mysql已經啟用 innodb 引擎了:
2、如果你不幸的選擇了低版本的mysql 5.1.73並且沒有選裝 innodb,那麼只有重新編譯mysql了;當然你也可以升級mysql,在升級的時候,也可以安裝innodb,但是一般不建議升級安裝。
我們來看下centos.sh的原始編譯的指令碼:
cd mysql-5.1.73/
if [ $installinnodb = "y" ]; then
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
else
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile
fi
make && make install
需要我們重新編譯mysql,注意,重編譯會導致原先的資料丟失,請先備份:
cd mysql-5.1.73/
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
make && make install
注意,軍哥的指令碼裡,這個參數:--enable-thread-safe-client出現了2次,請手動去掉一個