當網站不使用cpanel進行管理時,
這時要在linux裡安裝apache+php+mysql,
其實真的是相當容易(管理維護則是另一個問題),
請看我們下列安裝介紹:
當網站不使用cpanel進行管理時,
這時要在linux裡安裝apache+php+mysql,
其實真的是相當容易(管理維護則是另一個問題),
請看我們下列安裝介紹:
當/var被佔用了一些空間後,甚至於暴滿,導致mysql已經無法開起。有部份可以著手清理的地方,而其中一塊是 mysql eximstats,接著請照下列步驟,就可以釋放出一些容量。
我們把discuz x3.1 utf8 繁體版,整合進installatron,可避開使用ftp上傳,及建立msyql的麻煩,讓入門使用者,達到快速安裝不卡關。
以下是使用說明:
我實在是覺得透過 cpanel來增新mysql user有點缺乏效率。
還是不用指令不爽呀… ( 以下指令需要以root身分登入mysql )
(1) 新增使用者
create user ‘使用者名’@’localhost’ identified by ‘密碼’;
(2) 新增資料庫
create database 資料庫名;
(3) 使用資料庫
use 資料庫名;
(4) 設定權限 ( 對某個資料庫的所有tables 設定給某個user )
grant ALL PRIVILEGES on 資料庫名.* to ‘使用者名’@’localhost’;
(5) 砍掉資料庫
drop database 資料庫名;
(6) 砍掉使用者
drop user ‘使用者名’@’localhost’;
如果要備分或是還原資料庫,遇到資料庫超過一定的大小,例如20MB之後,許多php版本的自動匯出/匯入程式都會出問題。因為php程式會受到 max_upload_size, max_execution_time等參數的限制。甚至連phpmyadmin也會有不管用的時候。
遇到這種時候,如果追求速度(不計難度),最有效率的方法,自然是透過ssh登入,直接下mysqldump指令來解決問題。
匯出: mysqldump -u 使用者名稱 -p –opt -h localhost 資料庫名稱 > 檔案名.sql
匯入: mysql -u 使用者名稱 -p 資料庫名稱 < 檔案名.sql
然而,上述的方法,牽扯到使用ssh。這對很多只會用ftp的使用者是一大門檻。當然,也是有不需要ssh的解法。
(*) 匯出 backup your mysql database using php
程式在這邊,使用方法:
(1) 修改這一行
backup_tables(‘localhost’,”使用者名”,”密碼”,”資料庫名”);
(2) 透過網頁來啟動這個php檔。
(3) 執行完後,這個php檔會自動生成一個mysql database的匯出檔。再用ftp下載即可。
這個程式看起來還滿複雜的,有些人心裡應該會有疑惑,明明php也可以直接呼叫 linux的指令吧? php可以做這件事,但是,在虛擬主機的環境中,為了安全性,這個直接呼叫 linux指令功能一向是被關閉的。所以才需要寫得這麼麻煩。
(*) 匯入 BigDump
使用方法如下:
(1) 在bigdump的官網上,下載bigdump.php這個檔案的壓縮檔。並且解壓縮。
(2) 修改bigdump.php的內容
$db_server = '主機名稱';(一般為localhost) $db_name = '資料庫名稱'; $db_username = '使用者帳號'; >$db_password = '使用者密碼'
(3) 修改bigdump.php的內容
$filename = '檔案名稱.sql'; $ajax = true; $linespersession = 3000; (設定每次還原幾筆資料) $delaypersession = 5000; (每次間隔休息時間,設定5000為休息5秒鐘。)
(4) 將「bigdump.php」與「檔案名稱.sql」放入同一個資料夾,並上傳至伺服器。
最後打開瀏覽器輸入bigdump.php 所在網址,如: http://domain.tw/dump/bigdump.php
(5)當藍bar全滿後,出現「Congratulations: End of file reached, assuming OK」的訊息後,表示資料庫匯入完成。
這個需求是這樣子產生的:某一個客戶需要客製化my.cnf檔。但是my.cnf檔的設定又會一次套用到所有的客戶上。
我查詢的關鍵字是 running multiple mysql instances on one server
參考資料 ( 這個參考資料只能當參考,我實測之後,有許多細節不同。)
修改的步驟:
(1) mkdir /var/lib/mysql2
chown mysql.mysql /var/lib/mysql2
(2) cp /etc/my.cnf /etc/my2.cnf
修改/etc/my2.cnf 的內容:
datadir=/var/lib/mysql2
port=3307
(3) cp /etc/init.d/mysql /etc/init.d/mysql2
修改/etc/init.d/mysql2 的內容:
(4) chkconfig –add mysql2
(5) 理論上,要用mysql_install_db的指令來安裝新的default mysql database
mysql_install_db –datadir=/var/lib/mysql2 –defaults-file=/etc/my2.cnf –user=mysql
但是,實際上,我這樣子做之後,還是有問題,所以我後來沒使用這個指令。我把/var/lib/mysql2 這個資料夾清空之後,
cp -a /var/lib/mysql/performance_schema /var/lib/mysql2
cp -a /var/lib/mysql/mysql /var/lib/mysql2
(6) service mysql2 start
(7) mysql -h127.0.0.1 -P3307
如果可以順利登入的話,
mysql> show databases;
理論上,如果是只出現
mysql
information_schema
performance_schema
三個資料庫的話,這樣子就代表設置成功了!
遇到這種不幸的情況,最簡單的方式,當然是使用WHM的功能,就可以簡單地重新設定。
然而,有時候,因為成本的因素,我們把cpanel/WHM的成本省下來的時候,就得用比較複雜的技巧來處理這個問題:
1 service mysql stop
2 修改 /etc/init.d/mysql
找到 mysqld_safe 這一行,加上 –skip-grant-tables
3 service mysql start
4 現在可以不用密碼登入了。
mysql -u root
use mysql;
update user set password=password(‘yournewpasswordhere’) where user=’root’;
flush privileges;
exit;
5 service mysql restart
有的客戶因為要跑相對比較吃硬碟I/O數的遊戲,喜歡不裝cpanel。但是不裝cpanel的話,剛拿到的centOS是連完整的web server環境都沒有的。本文就是來講解,如何在一台乾淨的centOS上,透過yum安裝基本的web server
(*) 安裝web server
1 for php
yum install php
2 for ioncube loader ( ioncube loader是一個跟加密的php source code有關的模組,不灌這個的話,如果要執行的插件是有加密的php source code,就跑不動了。)
wget -q -O – http://www.atomicorp.com/installers/atomic |sh
yum install php-ioncube-loader
3 for mysql
yum install mysql mysql-server php-mysql
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
修改mysql的 password
/usr/bin/mysqladmin -u root password ‘你要設定給mysql root的密碼‘
4 for httpd
yum install httpd
service httpd restart