阿里雲安裝wordpress 教程,Centos8搭建LNMP環境

阿里雲Centos8搭建LNMP環境,安裝wordpress 在阿里雲設定好centos8的作業系統後,先做一些基本的設定。阿里雲安裝wordpress

阿里雲安裝wordpress,Centos8使用Dnf搭建LNMP環境

阿里雲Centos8使用Dnf安裝LNMP,WordPress安裝教學課程

阿里雲搭建LNMP環境,安裝 在阿里雲設定好centos8的作業系統後,先做一些基本的設定。阿里雲安裝wordpress

阿里雲安裝centos8中文語言包

透過 dnf search 指令搜尋中文語言包

dnf search langpacks

發現簡體中文的安裝包是:langpacks-zh_CN.noarch
直接透過DNF命令:

dnf install langpacks-zh_CN

修改語言:

vi /etc/locale.conf

將原來的內容修改成下面內容:

LANG="zh_CN.UTF-8"

最後透過命令:locale -a 看看一下zh_CN有沒有安裝成功

阿里雲在centos8下配置EPEL和REMI來源

安裝epel儲存庫

dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

確認epel庫是否安裝成功

rpm -qa | grep epel

安裝remi儲存庫

dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

確認remi庫是否安裝成功

rpm -qa | grep remi

軟體來源安裝完畢後,重新建立dnf緩存

dnf makecache

如果是Centos9的話,按照下面路徑安裝軟體來源

dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

取得所有正在執行的服務,查看連接埠佔用情況:

systemctl list-units --type=service netstat -lntup
阿里雲安裝wordpress 教程,Centos8搭建LNMP環境

阿里雲在cnetos8下透過DNF安裝php/nginx/mysql

阿里雲安裝php

成功新增EPEL和Remi儲存庫後,請執行以下命令以取得可用PHP模組流的清單:

dnf module list php


重置php模組:

dnf module reset php


啟用對應php版本的串流模組,這裡我們安裝的是php7.4的版本,所以啟用remi-7.4版本的串流:

dnf module enable php:remi-7.4

安裝PHP,此命令還安裝許多其他軟體包:

dnf install php
dnf install php-mysqlnd php-gd 

 
安裝好PHP後,修改PHP權限:

vi /etc/php-fpm.d/www.conf


user =
group = nginx 當安裝wordpress 無法建立目錄時候要確保,wp檔案存放目錄,nginx的使用者群組還有PHP的使用者群組在同一使用者下。
修改wp存放目錄的權限:

chown -R nginx:nginx /home/www


查看php-fpm屬於哪個使用者群組:

ps -ef | grep php-fpm

修改PHP設定檔:

vi /etc/php.ini


cgi.fix_pathinfo, 修改為=0;
upload_max_filesize = 2M 檔案上傳大小,預設值太小,建議修改為1024M
display_errors = on 列印錯誤
post_max_size = 8M 表單最大值,建議1024M
max_execution_time=600 php腳本最大執行時間 權限設定:

chown -R nginx:nginx /run/php-fpm/www.sock

查看php是否安裝成功:

php -v

設定開機啟動、運轉服務:

systemctl enable php-fpm

 

systemctl start php-fpm


常用操作命令:
重啟:

systemctl restart php-fpm


啟動:

systemctl start php-fpm


關閉:

systemctl stop php-fpm


狀態:

systemctl status php-fpm

阿里雲安裝nginx

成功新增EPEL和Remi儲存庫後,請執行以下命令以取得可用nginx模組流的清單:

dnf module list nginx


重置nginx模組:

dnf module reset nginx

啟用對應nginx版本的流模組,這裡我們安裝的是nginx1.18的版本,所以啟用nginx1.18版本的流:

dnf module enable nginx:1.18

安裝nginx,此命令還安裝許多其他軟體包:

dnf install nginx -y


看看nginx是否安裝成功:

nginx -v

查看連接埠佔用情況:

netstat -lntup

設定開機啟動、運轉服務:

systemctl enable nginx

 

systemctl start nginx

解除安裝nginx

dnf remove nginx

常用命令:
重啟:

systemctl restart nginx


啟動:

systemctl start nginx


關閉:

systemctl stop nginx


狀態:

systemctl status nginx

注意:如果安裝的nginx版本不支援php,會導致開啟php頁面後下載頁面。你可以建立一個test.php的測試頁面。 頁面內容:

<?php
phpinfo();
?>

  如果不支援php,則需要在nginx的安裝目錄/etc/nginx 下建立conf.d和default.d資料夾。 建立/default.d/php.conf 文件,文件內容如下:

# 參見index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass php-fpm; }

  建立/conf.d/php-fpm.conf 文件,文件內容如下:

# PHP-FPM FastCGI server # network or unix domain socket configuration upstream php-fpm { server unix:/run/php-fpm/www.sock; }

在nginx.conf檔案內,要加入兩個資料夾的插入引用語句。

nginx產生網域名稱憑證ssl

使用acme.sh腳本申請ssl證書。 先安裝socat:

dnf install socat


安裝acme.sh

curl https://get.acme.sh | sh


注意腳本安裝後,請務必重新啟動。

reboot

證書申請:
在nginx裡設定好網域後,再進行憑證申請,例如:

acme.sh --issue -d www.uzbox.tk -d uzbox.tk --webroot /home/uzbox/


也可以使用讀取nginx配置的命令,如果nginx裡沒有設定站點請先設定站點。

acme.sh --issue -d www.uzbox.tk -d uzbox.tk --nginx

證書申請成功後,進行證書安裝: 首先在nginx的設定檔的server區塊中加入:

ssl_certificate /home/ssl/uzbox.tk/fullchain.cer; ssl_certificate_key /home/ssl/uzbox.tk/uzbox.tk.key;

  網域憑證申請成功後,需要將憑證安裝在指定位置,在/home/資料夾內新建/ssl/資料夾,在/ssl/資料夾下建立憑證存放資料夾/uzbox.tk/。 之後運行下面的命令進行證書安裝。注意:如果你沒有建立憑證存放的資料夾,憑證安裝會失敗,錯誤提示:無法觸碰'/home/ssl/uzbox.tk/uzbox.tk.key':沒有這樣的檔案或目錄。

acme.sh --installcert -d uzbox.tk --key-file /home/ssl/uzbox.tk/uzbox.tk.key --fullchain-file /home/ssl/uzbox.tk/fullchain.cer --reloadcmd "service nginx force-reload"

更詳細的網域憑證申請教學:acme.sh 免費申請網域SSL/TSL證書

在阿里雲CentOS 8下透過dnf安裝MySQL

使用最新的套件管理器安裝

dnf install @mysql


開啟啟動

systemctl enable --now mysqld


檢查MySQL伺服器是否正在執行

systemctl status mysqld

新增密碼及安全設定
執行mysql_secure_installation腳本,該腳本執行一些與安全性相關的操作並設定MySQL根密碼:

sudo mysql_secure_installation


步驟如下:
要求你設定VALIDATE PASSWORD component(驗證密碼元件): 輸入y ,回車進入該配置
選擇密碼驗證策略等級, 我這裡選擇0 (low),回車
輸入新密碼兩次
確認是否繼續使用提供的密碼?輸入y ,回車
移除匿名使用者? 輸入y ,回車
允許root遠端登陸? 輸入n ,回車
移除test資料庫? 輸入y ,回車
重新載入權限表? 輸入y ,回車
設定mysql遠端登陸,如果需要設定root帳號遠端登陸,重複上一步驟中,允許root遠端登陸?這一步需要設為y。
接下來本機登入MySQL,將root用戶的host欄位設為'%',意為接受root所有IP位址的登入要求。
設定之後重啟mysql服務

systemctl restart mysqld


MySQL8.0預設已經是字符集,所以字符集不再修改

阿里雲安裝phpMyAdmin

網站:https://www.phpmyadmin.net/
下載最新版本的phpMyAdmin,phpMyAdmin是可視化的mysql管理工具。

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz


下載之後解壓縮文件

tar -zxvf phpMyAdmin-latest-all-languages.tar.gz


將解壓縮後的檔案改名

mv phpMyAdmin-5.2.0-all-languages phpMyAdmin


移動資料夾到網站目錄下

mv phpMyAdmin /home/www


安裝過後如果沒有安裝php擴充的,需要php安裝php-mysqlnd擴充

dnf install php-mysqlnd

最後把web目錄重新賦權。

chown -R nginx:nginx /home/www

修改phpMyAdmin設定檔:

在phpMyAdmin主目錄下,將設定檔改名。

cd /home/uzbox/phpMyAdmin/

 

mv config.sample.inc.php config.inc.php

 

vi config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost';改成$cfg['Servers'][$i]['host'] = '127.0.0.1';
然後修改phpMyAdmin用於cookies的短密碼。
$cfg['blowfish_secret'] = ''; 改為$cfg['blowfish_secret'] = '123456'; (註:其中的'123456′為任意大於32位元的字元。)
這個密碼用於Cookies的加密,以免多個PhpMyAdmin或和其他程式共用Cookies時搞混。

阿里雲安裝wordpress 教程,Centos8搭建LNMP環境

修改session路徑(例如/var/lib/php/session)的使用者群組以及權限,然後去到對應session路徑。

cd /var/lib/php

 

chown nginx:nginx ./session

 

chmod -R 777 ./session


在phpmyadmin目錄下新建tmp資料夾,權限設定777

chmod -R 777 /home/uzbox/phpMyAdmin/tmp


解決phpMyAdmin中高級功能尚未完全設置,部分功能未啟動的問題。
在phpMyAdmin裡點選建立一個phpmyadmin的空資料庫就可以解決了。
最後在Nginx中設定phpMyAdmin的存取路徑後就可以正常存取了。 造訪phpmyadmin時顯示空白怎麼辦? 換一個版本試試看! 注意:phpMyAdmin 5.2.0 版僅支援php7.2以上版本。不支援php7.2。如果phpMyAdmin顯示空白頁面,請嘗試更換php版本或更換phpMyAdmin版本。如果phpMyAdmin頁面開啟報錯,更換php版本後再嘗試造訪。 phpMyAdmin 5.2.0

歡迎發布phpMyAdmin 5.2.0 版。此版本包含許多新功能和相當多的錯誤修復。我們同時發布了phpMyAdmin 5.1.4,這是5.1 系列的最後一個版本,主要用於幫助下游打包團隊。大多數用戶應該遷移到5.2.0。 最值得注意的是,這些版本解決了匯出檔案時的網路錯誤 ( https://github.com/phpmyadmin/phpmyadmin/issues/17445 )。 5.2.0 的其他一些亮點包括:

  • 刪除了對Microsoft Internet Explorer 的支持
  • 需要PHP 7.2 或更新版本
  • 需要openssl PHP 擴充
  • 改進了對系統CA 套件和cacert.pem 的處理,如果需要,可以回退到Mozilla CA
  • 將“主/從”術語替換為“主/副本”
  • 將“NOT LIKE %...%”運算符新增至表格搜尋
  • 增加對Mroonga 引擎的支持
  • 新增對帳戶鎖定的支援
  • 對SQL 解析器函式庫的一些修復和改進

當然,您可以在此版本中包含的ChangeLog 檔案或在線https://demo.phpmyadmin.net/master-config/index.php?route=/changelog看到更多修復和新功能 現在可以在https://phpmyadmin.net/downloads/下載

阿里雲安裝WordPress

WordPress官方網站:https://cn.wordpress.org/
首先下載最新版本的WordPress。

wget https://cn.wordpress.org/latest-zh_CN.tar.gz


下載完畢後解壓縮檔。

tar -xzvf latest-zh_CN.tar.gz


移動資料夾到網站目錄下

mv wordpress /var/wwwroot

 

cd /var/wwwroot


將wp-config-sample.php檔案改名

cp wp-config-sample.php wp-config.php 


修改網站設定檔:

vim wp-config.php


WordPress資料庫的名稱:define( 'DB_NAME', 'WordPress' );
MySQL資料庫使用者名稱:define( 'DB_USER', 'root' );
MySQL資料庫密碼:define( 'DB_PASSWORD', 'mysql密碼' );
MySQL主機:define( 'DB_HOST', '127.0.0.1' );
建立資料表時預設的文字編碼:define( 'DB_CHARSET', '' );
在文件末尾添加以下程式碼:

if(is_admin()) {add_filter('filesystem_method', create_function('$a', 'return "direct";' ));define( 'FS_CHMOD_DIR', 0751 );}


修改好設定檔後,將phpMyAdmin放置在wordpress目錄下

mv phpMyAdmin /var/wwwroot/phpMyAdmin


https://你的網站網域/phpMyAdmin
然後開啟phpMyAdmin,新建WordPress資料庫,資料庫名稱WordPress,建立空函式庫就可以。這個資料庫名稱與上面wp-config.php中配置的要一樣。
之後在瀏覽器中設定網站,並依照步驟一步一步安裝。建議使用谷歌瀏覽器。
https://網站網域/wp-admin/install.php 網站外掛程式更新安裝與範本安裝權限配置:
這一步有些人會把目錄權限配置成777,這個有一定的安全隱患,正確配置是將使用者群組和使用者全部統一,也就是php的使用者群組,NGINX的使用者群組,還有wordpress的存放目錄的使用者群組。
首先進入網站存放目錄,查看資料夾使用者群組和權限

cd /var/wwwroot/


使用ls -l指令查看目錄所屬使用者群組,預設的使用者群組與使用者都是root。

ls -l


修改網站存放目錄的使用者群組權限。

chown -R nginx:nginx /var/wwwroot/


例如nginx中是使用nginx用戶啟動的,這裡就要修改成nginx用戶群組和nginx用戶。
php中一樣要使用nginx用戶群組啟動。

vi /etc/php-fpm.d/www.conf


user = apache
group = apache
修改成nginx用戶群組與用戶
user = nginx
group = nginx
php的使用者群組,NGINX的使用者群組,還有wordpress的存放目錄的使用者群組修改過後,reboot重新啟動伺服器就可以了。
NGINX的nginx.conf配置,僅供參考: nginx.conf配置:

user nginx; #配置使用者或群組,預設為nobody nobody。 worker_processes auto; #允許產生的程序數,預設為1 pid /run/nginx.pid; #指定nginx程序執行檔案存放位址error_log /var/log/nginx/error.log error; #制定錯誤日誌路徑,等級。這個設定可以放入全域區塊,http區塊,server區塊,等級依序為:debug|info|notice|warn|error|crit|alert|emerg,等級越高,記錄越少,一般設定error #載入動態模組。 include /usr/share/nginx/modules/*.conf; #工作模式及連接數上限-events全域設定events { accept_mutex on; #設定網路連線序列化,防止驚群現象發生,預設值on multi_accept on #網路設定一個行程#事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #單一work程序允許的最大連線數,預設為512 } #http伺服器設定檔區塊http { log_format myFormat '1cal4–114–14 月$request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自訂日誌格式access_log /var/log/nginx/accesslog/nginx/access.log Form combined為日誌格式的預設值。 rewrite_log on; #access_log off; #取消服務存取日誌sendfile on; #允許sendfile方式傳輸文件,預設為off,可以在http區塊,server區塊,location區塊。 sendfile_max_chunk 0; #每個程序每次呼叫傳輸數量不能大於設定的值,預設為0,即不設上限。 keepalive_timeout 1000; #連線逾時時間,預設為75s,可以在http,server,location區塊。 client_max_body_size 1024m; types_hash_max_size 4096; tcp_nodelay on; tcp_nopush on; default_type application/octet-stream; #預設檔類型,預設為text/plain fastcout_connect_00000 #fastcgi連線逾時時間,預設60秒fastcgi_send_timeout 3000; #nginx 程序向fastcgi 程序發送請求程序的逾時時間,預設值60秒fastcgi_read_timeout 3000; #fastcgi 程序向輸出值#gzip壓縮開關,on開啟Gzip壓縮,預設off 關閉gzip_min_length 1k; # 啟用gzip壓縮的最小文件,小於設定值的檔案將不會壓縮gzip_comp_level 8; # gzip 壓縮級別,1-9,佔用越壓縮。設定壓縮所需的緩衝區大小gzip_http_version 1.1; # 設定gzip壓縮針對的HTTP協定版本,沒做負載的可以不用gzip_types text/plain application/scriptscript application/x-javascript text/css appli/xml text application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; # 進行壓縮的檔案類型。 javascript有多種形式。其中的值可以在mime.types 檔案中找到。 gzip_vary on; # 是否在http header中加入Vary: Accept-Encoding,建議開啟gzip_disable "MSIE [1-6]\."; # 停用IE 6 gzip gzip_proxied off; include /etc/nginx/mic/nginx/mi.5.設定mime類型(郵件支援類型),類型由mime.types檔案定義。 include /etc/nginx/conf.d/*.conf; # 從/etc/nginx/conf.d 目錄載入模組化設定檔。 }

server配置:

server { listen 80; listen [::]:80; server_name www.uzbox.tk uzbox.tk; #你的網站網域return 301 https://uzbox.tk$request_uri; #301 重定向到https server1144Trequest_uri; #301 重定向到https server114435; www.uzbox.tk; # 網站的域名,可以是多個,用空格分開return 301 https://uzbox.tk$request_uri; ssl_certificate /home/ssl/uzbox.tk/fullchain.cer; ssl_certificate_key ssl http2; listen [::]:443 ssl http2; server_name uzbox.tk; root /home/www; index index.php index.html index.htm; ssl_certificate /home/ssl/uzbox.tk/fullchain.cer; ssl_session_cache shared:le_nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers ; "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA3 84:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; include /etc/nginx/default.d/*.conf; # 從/etc/nginx/default.d 載入預設伺服器區塊的設定檔。 #偽靜態頁location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) 1riteTP4T1/index.php){ rewrite_quest.*) 1041/index.php. (.*) /index.php; } } }

偽靜態的插件安裝:
首先要修改WordPress的固定鏈接,進入後台,開啟設定固定連結。
自定义结构后面填入%category%/%post_id%
安裝「No Category Base」外掛程式用來去掉分類目錄/category/ 最後查看伺服器上所有正在運行的服務

systemctl list-units --type=service
評分

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *