oneinstack

Lance發表於2020-08-27

自動安裝 oneinstack.com/auto/

注意:安全組埠(80、443、21、20000~30000)是否開啟,參考: oneinstack.com/docs/securitygroup/

# vagrant環境配置
config.vm.provider "virtualbox" do |vb|
    vb.memory = 1024
    vb.cpus = 2
end

目錄說明

原始碼安裝目錄:
Nginx:/usr/local/nginx
PHP/usr/local/php
MySQL:/usr/local/mysql
Pureftpd:/usr/local/pureftpd
Redis: /usr/local/redis
Memcached:/usr/local/memcached
phpMyAdmin:/data/wwwroot/default/phpMyAdmin

資料儲存目錄:
資料庫(MySQL):/data/mysql
網站根目錄:/data/wwwroot/www.example.com #新增虛擬主機會自動建立這個目錄
Web訪問日誌:/data/wwwlogs
預設ip直接訪問內容對應根目錄:/data/wwwroot/default,該目錄包含首頁demo、Opcache快取管理、phpinfo、phpmyadmin、探針等檔案,目錄裡面檔案可刪除,目錄不能刪除。

首頁demo:http://公網IP
PHPINFO地址:http://公網IP/phpinfo.php
Opcache地址:http://公網IP/ocp.php
phpmyadmin管理地址:http://公網IP/phpMyAdmin #建議用chrome瀏覽器,訪問注意大小寫,為了安全建議重新命名或者刪除
PHP執行環境探針地址:http://公網IP/xprober.php

MySQL資料庫管理

cd /root/oneinstack
grep dbrootpwd options.conf #顯示資料庫root密碼
./reset_db_root_password.sh #重置資料庫root密碼

mysql -uroot –p #進入資料庫控制檯
Enter password: #資料庫root密碼,⚠️輸入密碼不顯示在螢幕上
MySQL [(none)]> create database oneinstack; #特別注意有分號
MySQL [(none)]> show databases; #檢視資料庫,除oneinstack資料庫,其它3個為系統預設庫,不能刪除
MySQL [(none)]> exit; #退出資料庫控制檯,特別注意有分號

mysql -uroot -p
Enter password: #輸入資料庫的root密碼,預設不顯示密碼
MySQL [(none)]> grant all privileges on db_name.* to db_user@'localhost' identified by 'db_pass'; #授權語句,特別注意有分號
MySQL [(none)]> flush privileges; #許可權立即生效
MySQL [(none)]> exit; #退出資料庫控制檯,特別注意有分號

如何配置MySQL遠端連線

1. 雲主機安全組埠開放33062. 開啟iptables 3306埠
作業系統為CentOS系列
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
service iptables save #儲存iptables規則
作業系統為Ubuntu/Debian系列
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables-save > /etc/iptables.up.rules #儲存iptables規則

3. 資料庫授權
# mysql -uroot -p
MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' identified by 'db_pass'; #授權語句,特別注意有分號
MySQL [(none)]> flush privileges;
MySQL [(none)]> exit; #退出資料庫控制檯,特別注意有分號

管理虛擬主機

cd /root/oneinstack
./vhost.sh

oneinstack

刪除虛擬主機

cd /root/oneinstack ./vhost.sh --del

管理FTP賬號

cd /root/oneinstack ./pureftpd_vhost.sh

備份

設定備份引數

cd /root/oneinstack ./backup_setup.sh
#立即備份
cd /root/oneinstack ./backup.sh

#設定計劃任務自動定時備份
如:每天凌晨一點備份,注:下面命令請勿重複執行
echo  '0 1 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 & ' >> /var/spool/cron/root

#檢視本地備份
ls -l /data/backup

管理服務

⚠️注意:如果作業系統有Systemd,執行service重啟,會跳轉systemd直接,看到如下提示請忽略,已經重啟

Redirecting to /bin/systemctl restart example.service
#Nginx:
service nginx {start|stop|status|restart|reload|configtest}
⚠️:更改Nginx配置檔案,強烈建議reload
#MySQL:
service mysqld {start|stop|restart|reload|status}
#PHP:
service php-fpm {start|stop|restart|reload|status}
#Pure-Ftpd:
service pureftpd {start|stop|restart|status}
#Redis:
service redis-server {start|stop|status|restart|reload}
#Memcached:
service memcached {start|stop|status|restart|reload}

升級版本

cd /root/oneinstack ./upgrade.sh
#[新增PHP擴充套件](https://oneinstack.com/docs/lnmpstack-image-guide/#201)

#如新增swoole擴充套件,如下命令:
cd /root/oneinstack ./install.sh --php_extensions swoole #可執行./install.sh --help檢視支援哪些擴充套件

#[新增系統元件](https://oneinstack.com/docs/lnmpstack-image-guide/#202)
cd /root/oneinstack ./addons.sh #注:支援安裝、解除安裝功能

#如何解除安裝
#⚠️可單獨解除安裝某些項,如資料庫用RDS,可單獨解除安裝資料庫
cd /root/oneinstack ./uninstall.sh #特別注意備份資料

部署一個PHP網站

  1. 建立該網站所需的資料庫
  2. 新增虛擬主機
  3. 建立FTP賬號
  4. 部署程式碼到網站根目錄

注意:通過ftp上傳程式碼不需要修改許可權,預設已經是www;在伺服器裡面下載程式碼必須修改網站根目錄及子、目錄檔案許可權都為www;

[關於PHP快取(Opcache)]

預設情況下,為了減少PHP編譯時間,提高效能(生產環境強烈開啟Opcache),微柳提供的PHP環境預設載入了Opcache模組(PHP5.5及以上版本),關於原理請參考:《深入理解PHP Opcode快取原理
但是這樣會出現PHP程式碼更新後,需要2~3分鐘才能生效,這樣影響工作效率,在網站除錯階段建議您關閉或者每次有程式碼更新重新整理快取(推薦方法二)
方法一:解除安裝Opcache

cd /root/oneinstack ./uninstall.sh

方法二:重新整理PHP快取
訪問http://公網IP/ocp.php,或者直接訪問http://公網IP/ocp.php?RESET=1

[關於網站根目錄許可權]

網站根目錄許可權遵循:
檔案644, 資料夾755 ,許可權使用者和使用者組www
如出現檔案許可權問題時,請執行下面3條命令:

chown -R www.www /data/wwwroot/ 
find /data/wwwroot/ -type d -exec chmod 755 {} \; 
find /data/wwwroot/ -type f -exec chmod 644 {} \;

[關於Redis、Memcached]

Redis預設埠:6379
Memcached預設埠:11211
預設監聽地址:127.0.0.1
如果增加Redis最大記憶體大小?

vi /usr/local/redis/etc/redis.conf
maxmemory 1024000000  #單位位元組,預設1G,可調整
service redis-server restart   #重啟生效

如果增加Memcached最大記憶體大小?

vi /etc/init.d/memcached
CACHESIZE=256   #單位M,預設256M,可調整
service memcached restart  #重啟生效

更改Redis監聽埠

vi /usr/local/redis/etc/redis.conf
bind 127.0.0.1  #改成bind 0.0.0.0,儲存
service redis-server restart   #重啟生效

更改Memcached監聽埠

vi /etc/init.d/memcached
OPTIONS="-l 127.0.0.1" 改成OPTIONS="",儲存
service memcached restart  #重啟生效

預設情況下開通22(ssh)80、443(Nginx) 21、20000:30000(FTP)
⚠️注意:映象V2.0以上版本,未開啟iptables
其它埠都拒絕,如下需要允許其它埠,請如下操作(如開啟8080埠)

#如果您的作業系統為CentOS系列:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT service iptables save #儲存iptables規則

#Ubuntu/Debian系列:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT iptables-save > /etc/iptables.up.rules #儲存iptables規則
本作品採用《CC 協議》,轉載必須註明作者和本文連結