CentOS 7 上架設 WordPress

CentOS 7 上架設 WordPress

網上已有非常豐富的 WordPress 架設教學,本篇稍微不同的是用 MariaDB 取代原先的 MySQL。

MariaDB

安裝 MariaDB
1
yum -y install mariadb-server mariadb
開啟 MariaDB 且設定開機啟動
1
2
systemctl start mariadb.service
systemctl enable mariadb.service
MariaDB 基本設定
1
mysql_secure_installation
登入 MariaDB
1
mysql -u root -p
建立 wp 資料庫
1
CREATE DATABASE wp;
建立使用者 wpuser
1
CREATE USER wpuser@localhost;
設定密碼
1
SET PASSWORD FOR wpuser@localhost= PASSWORD(' 密碼 ');
wpuser 具有 wp 資料庫的完整權限
1
GRANT ALL PRIVILEGES ON wp.* TO wpuser@localhost IDENTIFIED BY 'password';

Apache HTTPd

安裝 Apache HTTPd
1
yum -y install httpd
開啟 Apache 且設為開機啟動
1
2
systemctl start httpd.service
systemctl enable httpd.service
防火牆打開 http 和 https 的 port
1
2
3
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

此時可以試試看http://ip,看到 Apache 預設畫面表示成功。

PHP

安裝 PHP
1
yum -y install php
重啟 Apache
1
systemctl restart httpd.service
寫一支 info 來看看 PHP 的狀況
1
vi /var/www/html/info.php
檔案內容如下
1
2
3
<?php
phpinfo();
?>

試試看http://ip/info.php,看到畫面表示成功,從頁面上可以看到,並未安裝 MySQL 模組。

安裝 php 的 mysql 模組(mysql 模組跟 mariadb 相容)
1
yum -y install php-mysql
重啟 Apache
1
systemctl restart httpd.service

phpMyAdmin

安裝
1
yum install phpMyAdmin
編輯 phpMyAdmin 設定
1
vi /etc/httpd/conf.d/phpMyAdmin.conf
把設定改成以下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

#<Directory /usr/share/phpMyAdmin/>
# <IfModule mod_authz_core.c>
# # Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
# </IfModule>
# <IfModule !mod_authz_core.c>
# # Apache 2.2
# Order Deny,Allow
# Deny from All
# Allow from 127.0.0.1
# Allow from ::1
# </IfModule>
#</Directory>


<Directory /usr/share/phpMyAdmin/>
Options none
AllowOverride Limit
Require all granted
</Directory>

[...]
修改 phpMyAdmin 認證方式
1
vi /etc/phpMyAdmin/config.inc.php

將原本的 $cfg['Servers'][$i]['auth_type']='cookie'; 改成$cfg['Servers'][$i]['auth_type']='http';

重啟 Apache
1
systemctl restart  httpd.service

進入 http://ip/phpmyadmin 輸入帳號密碼,看到畫面表示成功,進入 wp 資料庫,把編碼改為utf8_unicode_ci

WordPress

下載及安裝
1
2
3
cd /var/www/html
wget https://tw.wordpress.org/wordpress-4.5.2-zh_TW.tar.gz
tar -xzvf wordpress-4.5.2-zh_TW.tar.gz
設定擁有者與權限並重啟 Apache
1
2
3
chown -R apache:apache /var/www/html/WordPress
chmod -R 755 /var/www/html/WordPress
systemctl restart httpd.service

試試看 http://ip/WordPress 能否連入,如果可以就能開始設定你的 WordPress 了!

如果無法從網站寫入 wp_config.php,可以手動寫入
1
2
3
cd /var/www/html/WordPress/
cp wp-config-sample.php wp-config.php
vi wp-config.php
設定如下
1
2
3
4
5
6
7
8
9
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', ' 資料庫名稱 '); // wp

/** MySQL database username */
define('DB_USER', ' 資料庫登入帳號 '); // wpuser

/** MySQL database password */
define('DB_PASSWORD', ' 資料庫登入密碼 '); // 密碼

WordPress 安裝完後,可以將 phpMyAdmin.conf 改回預設值,這樣非本機就不能登入 phpMyAdmin,以提升安全性。

將 WordPress 資料夾給 Apache,並賦予權限
1
2
3
chrown apache:apache /your/WordPress/folder/
find /your/WordPress/folder/ -type d -exec chmod 755 {}
find /your/WordPress/folder/ -type f -exec chmod 644 {}

若發生not found 404,可參考Where to set AllowOverride All for .htacess?,應該是 Apache 沒有打開 override 功能。

其他安全相關設定,可參考 9 個提升 WordPress 網站安全性的方法11 個強化 WordPress 網站安全的 .Htaccess 設定技巧

評論