Ubuntu18.04系統建置WordPress網站
sudo apt update
啟用ufw防火牆
sudo ufw enable
(同理,關閉防火牆指令是 ufw disable)
允許apache從80與443端口通信
sudo ufw allow in 80
sudo ufw allow in 443
參考,禁止apache連入的方法則是
sudo ufw deny in 80
sudo ufw deny in 443
查看ufw狀態
sudo ufw status numbered
刪除ufw規則項目
sudo ufw delete 項目號碼
參考,查看過往指令紀錄
history
參考,傳回指定過往指令
!指令該行的號碼
vim全文刪除
在putty程序的設定值>terminal>Features
勾選Disable applications keybad mode
文件用vim開啟後再非編輯模式下輸入要刪除的行數量,
接著鍵入dd即可批次刪除行。
安裝apache
在終端輸入
sudo apt install apache2
假設網站存放在/var/www/demoapheav8d/底下
sudo mkdir /var/www/demoapheav8d/
cd /var/www/
sudo chown -R www-data:www-data demoapheav8d
創建一個網站設定值(等於是這台主機底下的一個網站)
cd /etc/apache2/sites-available/
vi wordpress.conf
輸入
<VirtualHost *:80>
DocumentRoot /var/www/demoapheav8d
ServerName demo-aphe.example.com
ServerAlias demo-aphe2.example.com
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/demoapheav8d
ServerName demo-aphe.example.com
ServerAlias demo-aphe2.example.com
SSLEngine On
SSLCertificateFile /var/www/demoapheav8d.crt
SSLCertificateKeyFile /var/www/demoapheav8d.key
SSLCertificateChainFile /var/www/demoapheav8d_ca.crt
SSLHonorCipherOrder On
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK
</VirtualHost>
<Directory /var/www/demoapheav8d>
AllowOverride All
</Directory>
啟用rewrite給.htaccess生效
a2enmod rewrite
啟用ssl讓網站憑證生效
a2enmod ssl
啟用網站的conf
a2ensite wordpress
(同理 關閉網站就是a2dissite wordpress,注意wordpress就是一開始設定的wordpress.conf)
使用前端控制工具查看網站的狀態
apachectl -S
安裝資料庫
apt install mysql-server -y
設定MySQL資料庫的root密碼(範例為Passw0rD)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Passw0rD';
安裝php
apt install php libapache2-mod-php php-mysql php-curl php-gd php-xml php-mbstring php-xmlrpc php-zip php-soap php-intl -y
編輯dir.conf使index.php優先於index.html
vi /etc/apache2/mods-enabled/dir.conf
內容看起來像是
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
請將index.php移動到index.html前方即可。
在網站所屬目錄建立一個index.php
cd /var/www/demoapheav8d
vi index.php
內容鍵入
<?php
phpinfo();
?>
輸入網站網址理應可以觀看phpinfo
接著登入mysql
mysql -u root -p
>Passw0rD #這是前面安裝mysql設定root的密碼
新增一個資料庫(範例名稱wordpressdb)
mysql
> CREATE DATABASE wordpressdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
創建該資料庫(wordpressdb)的帳號(範例wordpressu)密碼(範例w0rdpRessU)
> GRANT ALL ON wordpressdb.* TO 'wordpressu'@'localhost' IDENTIFIED BY 'w0rdpRessU';
刷新設定值
> FLUSH PRIVILEGES;
離開資料庫設定
>\q
取得WordPress
cd /var/www/demoapheav8d
wget https://wordpress.org/latest.zip
apt install unzip -y
解壓縮
unzip latest.zip
將wordpress資料夾內的檔案提到網站根目錄
mv wordpress/* ./
移除多餘的wordpress資料夾
rm -rf wordpress
修改權限
cd ..
sudo chown -R www-data:www-data demoapheav8d
打開網址進入WordPress安裝程序。
如果要增加帳戶的存取權限,
先登入到非管理員帳戶下(範例為useraa帳戶名稱)
透過
whoami
查詢當前帳戶名稱,
輸入(注意useraa是範例的帳戶名稱)
sudo usermod -a -G www-data useraa
將當前帳戶加入www-data的群組
接著更改群組讀寫權限
sudo chmod 775 /var/www/demoapheav8d
理論上該帳戶即可修改網站根目錄的檔案。
隱藏Apache的版本號
sudo vi /etc/apache2/apache2.conf
在檔案結尾新增
ServerTokens Prod
ServerSignature Off
保存退出後重啟Apache
systemctl restart apache2
啟用站點http2功能
啟用http2模組(在sudo管理權限下)
a2enmod http2
修改http2模組
vi /etc/apache2/mods-available/http2.load
在檔案結尾新增
Protocols h2 h2c http/1.1
先停止apache
apachectl stop
安裝php-fpm(請依照原安裝的php版本修改,這裡以php7.2舉例)
apt install php7.2-fpm
啟用模組
a2enmod proxy_fcgi setenvif
啟用php-fpm
a2enconf php7.2-fpm
停用php
a2dismod php7.2
停用不兼容的mpm_prefork模組
a2dismod mpm_prefork
啟用mpm_event模組
a2enmod mpm_event
重啟Apache
systemctl restart apache2
參考資料 https://http2.pro/doc/Apache
匯出資料庫
在終端機分別輸入(wordpressu是範例資料庫帳號,wordpressdb是範例資料庫名稱)
mysqldump -u wordpressu -p wordpressdb > backup.sql
接著輸入密碼
>w0rdpRessU #這是前面範例資料庫密碼
此時檔案目錄下會出現導出的backup.sql檔案。
匯入資料庫
請參考先前文章。
留言
張貼留言