CentOS 7 / RHEL 7 上安裝 LAMP + phpMyAdmin

原文 CentOS 7 / RHEL 7 上安裝 LAMP + phpMyAdminphp

以前根據在 Linode VPS 上部署 LAMP 服務器的經驗寫了安裝記錄,獲得很多網友的親睞。隨着 CentOS 7 發佈,安裝過程發生了很多變化。所以在虛擬機上跑了一下,根據以前的記錄作了修改,以供參考。主要注意的是,如今數據庫由 MySQL 改爲 MariaDB 了,故而 LAMP 表明的就是 Linux + Apache + MariaDB + PHP 了。html

新的 CentOS 與 RHEL 的關係愈來愈密切,如下的安裝過程同時適用於 CentOS 7 及 RHEL 7 發行版。可是由於不是在當前實際的 Linode VPS 環境下測試的,可能某些地方會與實際狀況有出入,還請你們指正。node

做爲一個全新的教程,仍是簡單介紹一下背景吧。mysql

系統:新的 CentOS 7 採用了 systemd,於是某些指令有所變化;如今使用 MariaDB 替代 MySQL 做爲數據庫軟件,這裏也將直接安裝 MariaDB。linux

Linode VPS:雖然 Linode 一直在升級改造,可是基本的東西仍是沒什麼變化,並且如今有試用了。用 Visa / MasterCard 信用卡購買 Linode VPS 仍是很是方便的,選擇套餐 – 註冊 – 選擇服務器位置並付款(輸入信用卡信息)就好了。git

在 Linode 上部署系統應該也沒什麼變化:github

  1. (登陸)進入控制中心 – 進入 Dashboard – Deploy a Linux Distribution
  2. 選擇 Linux 發行版(Distribution) – 設定磁盤大小(單位 MB)- 選擇是否使用交換空間(swap) – 設定 root 密碼(之後還能改)等,而後點擊 Deploy 就開始安裝系統了。
    *注意:還能夠在選擇 Linux 發行版的時候,直接使用選擇框右邊的 Deploying using StackScripts 的提示來選擇在安裝系統的同時部署一個 LAMP 的服務器環境。

這些操做都是一目瞭然的,沒什麼難度,特別是 Linode 還有詳細的新手指南。但是配置 LAMP 服務器就比較費事了。雖然一鍵安裝的快捷編譯安裝腳本,或者 Linode 上的自動化安裝腳本很省事,可本身把這些過程走一遍是有利於之後維護服務器的。sql

下面記錄的安裝和配置 Linux + Apache + MariaDB + PHP + phpMyAdmin 服務器環境是從使用 Putty 等 SSH 遠程登陸軟件鏈接到 VPS 以後開始的。也就是說,Linux 應該已經安裝好了。(若是要在本地用虛擬機測試,請同時參考個人 VPS 學習之路系列文章。)數據庫

0 系統運行環境

  1. Linux Distribution: CentOS 7 64bit
  2. RAM: 1024MB
  3. Disk Space: 5GB
  4. 域名: cnzhx.net
  5. IP 地址: 12.34.56.78
  6. SELinux 已禁用

示例用的內容應該換成本身的;建議內存不小於 1GB 的安裝 64 位系統,好比由於這個

切記:由於系統不一樣,指令可能有所不一樣;硬件不一樣,配置方式也可能有些不一樣。強烈建議實戰前如今本身的電腦上用 VirtualBox 之類的軟件建立個虛擬機先練練手。可參考個人 VPS 學習之路

1 基本設置

這一部分參考 Linode 知識庫 – 參考資料 1。

1.1 設置 HOSTNAME

echo "HOSTNAME=cnzhx.net" >> /etc/sysconfig/network
hostname "cnzhx.net"

我給設置成本身的主域名了。其實別的也能夠,好比 CnZhx。

1.2 配置 VIM

注意

  • Linode 上直接部署的 CentOS 7 中已經安裝了 vim。
  • 若是系統中沒有安裝 vim,能夠試試看 vi,只是沒有 vim 好用和好看罷了。
  • 若是不用 vim 就直接跳到下面的 1.3

或者先安裝 vim 也行:

yum -y install vim

爲了使之彩色顯示代碼,同時還支持行號標記和鼠標定位,須要編輯 vim 配置文件:

vim /etc/vimrc

從鍵盤輸入 i 進入編輯模式,按 PgDn 到文本最後,在末尾分兩行輸入:

set nu
set mouse=a

從鍵盤輸入 Ctrl+c,而後輸入 :wq 保存、退出。

1.3 更新 HOSTS 配置文件 /ETC/HOSTS

這個文件的做用跟 Windows 中的 HOSTS 相似,能夠給本地系統直接解析域名,這裏設置了以後,這個系統訪問 cnzhx.net 就不須要訪問域名解析服務器了。

輸入

vim /etc/hosts

打開編輯。在最後添加,

12.34.56.78 cnzhx.net

保存退出。

1.4 配置網絡

能夠跳過這一步,直接使用 Linode 默認配置,等之後再配置靜態 IP。

其實一個服務器就至關於一臺我的電腦,只不過 IP 地址是固定的公網的 IP。於是能夠在本身的域名管理系統那裏將域名的 IP 指定爲這個特定的 IP,而後別人就能夠經過域名訪問到這個 IP 地址所在的服務器(域名解析服務器會作轉換)。而後這個服務器上安裝了相應軟件就能夠提供網站服務了。

默認狀況下,Linode VPS 使用 DHCP 來配置網絡,這樣作須要 VPS 運行 dhcp 客戶端進程來從主控制檯獲取本 VPS 的 IP。固然會浪費一些資源了(CPU和內存),並且還須要開放 63 端口。因此這裏採起靜態網絡配置來避免這些問題。

網絡配置與選擇的 VPS 服務商的配置有關,通常都會有說明的。

若是要增長 IPv6 支持,請參考 Linode VPS 上啓用 IPv6 支持

從 Linode Manager 中的 Remote Access 標籤頁中能夠獲知本身 VPS 的網絡配置信息。好比個人:

Public IP: 12.34.56.78
Default Gateways 12.34.56.1
DNS Resolvers 74.207.241.5
74.207.242.5
2600:3c01::2
2600:3c01::3

修改 DNS 解析設置:

vim /etc/resolv.conf

按照上面的 DNS Resolvers 對應錄入

domain members.linode.com
search members.linode.com
nameserver 74.207.241.5
nameserver 74.207.242.5
nameserver 2600:3c01::2
nameserver 2600:3c01::3
options rotate

保存並退出。

而後配置靜態 IP(若是使用了 DHCP 自動獲取 IP 則能夠跳過此步驟直接到 1.5 繼續):

vim /etc/sysconfig/network-scripts/ifcfg-static-eth0

若是是 VirtualBox 虛擬機,則是,

vim /etc/sysconfig/network-scripts/ifcfg-static-enp0s3

對應錄入,

# Configuration for eth0
DEVICE=eth0
BOOTPROTO=none
# 暫時不啓用 IPv6
IPV6INIT=no

# This line ensures that the interface will be brought up during boot.
ONBOOT=yes

# eth0 - This is the main IP address that will be used for most outbound connections.
# The address, netmask and gateway are all necessary.
IPADDR0=12.34.56.78
# 再也不用 netmask; 24 表示公網IP;17 表示內網 IP
PREFIX0=24

# gateway
GATEWAY=12.34.56.1

# 若是還有另外一個公網 IP 23.45.67.89
IPADDR1=23.45.67.89
PREFIX1=24

保存並退出。

由於 DHCP 已經不須要了,可使用 systemctl list-unit-files –type=service 命令查看 dhcp 相關服務的狀態,而後中止它們。甚至能夠刪除相關軟件包:

yum remove dhcp

重起 VPS 便可生效。

1.5 設置時區爲 HONGKONG

將香港時區文件設置符號連接到 localtime

ln -sf /usr/share/zoneinfo/Hongkong /etc/localtime
timedatectl list-timezones
timedatectl set-timezone Asia/Hong_Kong
timedatectl

更詳細配置說明請參考:正確配置 Linode VPS 系統時間

2 安裝 LAMP

2.1 先更新系統

yum update

2.2 安裝並配置 APACHE 網絡服務器

CentOS 7 中默認的是 Apache 2.4 版本,Apache 官網有份很好的 vhost.conf 配置實例

安裝

yum install httpd

備份配置文件(建議對於全部的配置文件,作任何更改前都先備份一份,以便應對未知錯誤)

mkdir ~/confbak
cp -R /etc/httpd ~/confbak

默認狀況下 Apache 加載的模塊(.so)過多,做爲我的用的簡單服務器能夠比較安全的禁用其中一些模塊,以提升 Apache 的性能、減小內存佔用。請參考這裏

由於默認狀況下,位於 /etc/httpd/ 目錄下的全部以 .conf 結尾的文件都會被讀取,並按照字母順序加載作爲 Apache 的配置,因此增長虛擬主機的時候,實際上不須要修改/etc/httpd/conf/httpd.conf,而是在 /etc/httpd/conf.d/ 下新建一個配置文件vhost.conf 來配置虛擬主機。

也有人每一個虛擬主機(或網站、或域名)都單獨弄個 conf 文件,好比 cnzhx.net.conf、test.cnzhx.net.conf、phpmyadmin.conf 等。這個看本身的喜愛還有使用方便而定吧。

另外就是,水景一頁建議另建一個 common.conf 文件來放置一些公共的設置,若是不想每次都去修改 httpd.conf 這個 Apache 的主配置文件的話。

配置虛擬主機(/etc/httpd/conf.d/vhost.conf )

vim /etc/httpd/conf.d/vhost.conf

輸入下面的內容(# 號後面的該行內容是註釋):

1. 下面有路徑中使用了域名 cnzhx.net 來作文件夾的名字,只是爲了方便區分不一樣的域名,無它意。

2. 在服務器上一行行輸入仍是挺麻煩的,能夠在本地編輯好了,而後經過 ftp 上傳過去( filezilla 就挺好,有中文界面,還支持 ssh 登陸(選擇 sftp 模式便可))

#
# cnzhx.net
#
<VirtualHost *:80>
ServerAdmin admin@cnzhx.net
ServerName cnzhx.net
ServerAlias www
# 很是感謝 cheers 的提醒,雖然測試顯示無影響,但 Apache 文檔如此要求
# 注意下面這行末尾不要帶 /
DocumentRoot /srv/www/cnzhx.net/html

<Directory "/srv/www/cnzhx.net/html/">
    Options FollowSymLinks
    # 下一行這樣設置就能夠在網站文件的目錄中使用 .htaccess
    AllowOverride All
    # 下一行是替代 Allow from all 的新機制
    Require all granted
</Directory>

ErrorLog /srv/www/cnzhx.net/logs/error.log
CustomLog /srv/www/cnzhx.net/logs/access.log combined
#ServerSignature Off
</VirtualHost>

#
# test.cnzhx.net
#
<VirtualHost *:80>
ServerAdmin admin@cnzhx.net
ServerName test.cnzhx.net
ServerAlias test
DocumentRoot /srv/www/test/html

<Directory "/srv/www/test/html/">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

ErrorLog /srv/www/test/logs/error.log
CustomLog /srv/www/test/logs/access.log combined
#ServerSignature Off
</VirtualHost>

# 爲了之後給訪問 phpMyAdmin 的時候用,也能夠是別的端口,如 4444
Listen 2082
#
# phpMyAdmin,訪問地址:http://12.34.56.78:2082
#
<VirtualHost 12.34.56.78:2082>
ServerAdmin admin@cnzhx.net
DocumentRoot /srv/www/phpmyadmin/html
#<Directory "/srv/www/phpmyadmin/html/">
#    Options FollowSymLinks
#    AllowOverride None
#    Require all granted
#</Directory>

ErrorLog /srv/www/phpmyadmin/logs/error.log
CustomLog /srv/www/phpmyadmin/logs/access.log combined
#ServerSignature Off
</VirtualHost>

雖然配置文件寫好了,可是還不能啓動 httpd 進程,由於上面設置的各個文件夾(網站目錄)尚未建立。

建立各個虛擬主機的文件夾

mkdir /srv/www/cnzhx.net/html -p
mkdir /srv/www/cnzhx.net/logs
mkdir /srv/www/test/html -p
mkdir /srv/www/test/logs
mkdir /srv/www/phpmyadmin/html -p
mkdir /srv/www/phpmyadmin/logs

爲了可以在系統啓動時自動運行 Apache 服務器,須要運行下面的指令:

systemctl enable httpd

輸出相似於,

ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

而後從新加載 httpd

systemctl reload httpd

如今須要將 http 服務加入防火牆以容許外部訪問,

firewall-cmd --add-service=http --permanent

–permanent 參數表示這是一條永久防火牆規則,若是不加則重啓系統後就沒有這條規則了。

而對於自定義的 2082 端口,也須要添加防火牆規則,

firewall-cmd --zone=public --add-port=2082/tcp --permanent

重啓 Firewalld 使該規則生效,

systemctl restart firewalld

加入後的防火牆規則爲:

# firewall-cmd --list-all
public (default, active)
    interfaces: enp0s3
    sources:
    services: dhcpv6-client http ssh
    ports:
    masquerade: no
    forward-ports:
    icmp-blocks:
    rich rules:

若是已經作好了 DNS 域名解析,如今用瀏覽器打開域名應該可以看到 Apache 的測試頁面了。

CentOS 7 服務器 Apache 安裝成功

CentOS 7 服務器 Apache 安裝成功

httpd 服務默認配置文件:

  • 默認配置文件: /etc/httpd/conf/httpd.conf
  • 加載模塊的配置文件: /etc/httpd/conf.modules.d/ directory (e.g. PHP)
  • 選擇 MPMs (處理模式)  [worker, prefork (默認是這個)] 和 event: /etc/httpd/conf.modules.d/00-mpm.conf
  • 默認端口: 80 和 443 (SSL)
  • 默認日誌: /var/log/httpd/{access_log,error_log}

systemctl 是新的 systemd 下的系統控制指令,詳情請參考 CentOS 7 / RHEL 7 systemd 指令一文。

還能夠直接用 apachectl 來控制 Apache 服務執行一些操做,好比優雅的從新加載配置,

apachectl graceful

詳情須要查看其簡單的幫助文件,

apachectl -h

其它重要的防火牆 Firewalld 選項有,

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=8080/tcp

2.3 安裝和配置 MARIADB 數據庫服務

MariaDB 是在 MySQL 基礎上重建的一個數據庫軟件,各 Linux 發行版都陸陸續續從 MySQL 切換到了 MariaDB。CentOS 從 7 開始默認使用 MariaDB。

2.3.1 安裝

yum install mariadb-server mariadb

2.3.2 加入隨系統啓動

systemctl enable mariadb

輸出結果相似於,

ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'

2.3.3 啓動 mariadb 守護進程(mysqld)

systemctl start mariadb

其默認用戶名仍是 mysql,

top -u mysql

能夠查看內存佔用狀況。

中止/重啓或停用 mariadb 服務的一些指令:

中止
sudo systemctl stop mariadb
重啓
sudo systemctl restart mariadb
禁用
sudo systemctl disable mariadb
檢查 mariadb 服務器 是否正在運行
sudo systemctl is-active mariadb

2.3.4 安全配置 MariaDB

使用 MariaDB 內建的安全配置腳本進行配置

mysql_secure_installation

這裏須要配置 mysql 根用戶和密碼、清除其餘用戶、清除不須要的數據庫等。輸出相似於下面的執行過程,其中須要咱們從鍵盤輸入的內容用藍色註釋出來了:

# /usr/bin/mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):這裏直接回車,這裏可不是 Linux root 用戶,而是 MariaDB 數據庫的 root 用戶
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:輸入你的數據庫root用戶密碼
Re-enter new password:再輸入一遍
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

而後使用 MySQL 的 root 賬戶(不一樣於 Linux 的 root 賬戶,剛纔設置密碼了)登陸進去

mysql -u root -p

輸入密碼後回車,下面是輸出示例,能夠看到命令提示符變爲 MariaDB [(none)]>

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.37-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

建立一個新數據庫給 WordPress 用(這裏取名爲 wordpress,也能夠用別的名字)

MariaDB [(none)]> create database wordpress;

建立一個新用戶,並將該數據庫的權限賦給他(這裏只是舉例,用戶名爲 newdbuser,密碼爲 dbuserpassword)

MariaDB [(none)]> grant all on wordpress.* to 'newdbuser' identified by 'dbuserpassword';

更新權限

MariaDB [(none)]> flush privileges;

退出數據庫

MariaDB [(none)]> quit

備份配置文件,

cp /etc/my.cnf ~/confbak/my.cnf.bak

其它的先不作了,回頭用圖形界面的 phpMyAdmin 來作。

2.4 安裝和配置 PHP

注意:若是要使用 event 模式的話,須要安裝使用 php-fpm

安裝 PHP5,

yum install php

備份配置文件 /etc/php.ini,還有 php.conf 以及 10-php.conf,

cp /etc/php.ini ~/confbak/php.ini.bak
cp /etc/httpd/conf.d/php.conf ~/confbak/httpd/conf.d/php.conf.bak
cp /etc/httpd/conf.modules.d/10-php.conf ~/confbak/httpd/conf.modules.d/10-php.conf.bak

並確保 /etc/php.ini 中有下面的語句(不一樣的就修改,沒有的就添加,某些數值能夠後再調整,這是針對一個簡單的運行 WordPress 的服務器的配置):

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
max_execution_time = 300
memory_limit = 32M

2.5 安裝 PHP-MYSQL

爲了在 PHP 中使用 MySQL,還須要安裝這個 php-mysql 包:

yum install php-mysql

3 安裝和配置 phpMyAdmin

Remi 安裝源上有最新的 PHP、MySQL 以及 phpMyAdmin 的 Yum 安裝包,能夠方便安裝、更新。可是正在使用的 Linux 發行版 CentOS 7 上的軟件包可能版本上要求不同,因此使用 Yum 安裝源優先級插件來進行控制。

3.1 安裝使用 EPEL REPOSITORY

選擇合適的源地址來安裝,參考方法:安裝使用 EPEL 安裝源

到 EPEL 主頁:

http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F

找到 The newest version of ‘epel-release’ for EL7,點擊打開新頁面,複製 epel-release-7-5.noarch 的連接(數字可能有變化,當前版本是 7.5)。採用下面的方法直接安裝:

yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

3.2 安裝PHPMYADMIN

yum install phpmyadmin

嗯,前面已經打好基礎了,因此這裏就是這麼簡單。

3.3 配置

phpMyAdmin 的默認安裝目錄是 /usr/share/phpMyAdmin,同時會在 Apache 的配置文件目錄中自動建立虛擬主機配置文件 /etc/httpd/conf.d/phpMyAdmin.conf (區分大小寫)。

備份配置文件,

cp /etc/httpd/conf.d/phpMyAdmin.conf ~/confbak/httpd/conf.d/phpMyAdmin.conf.bak

在這個配置文件中有設置:

#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin

也就是說,咱們能夠經過綁定到 Apache 服務器上的任何域名訪問 phpMyDdmin。好比這裏能夠經過 cnzhx.net/phpmyadmin 或者 cnzhx.net/phpMyAdmin 訪問。可是這樣一來,phpMyAdmin 的內容就與網站內容混到一塊兒了,感受 phpMyAdmin 成了網站的一個目錄。但實際上咱們並不但願別人也去訪問這個頁面。因此咱們使用習慣的地址加端口(不是默認的 80 端口)的方式,即 IP:port/phpMyAdmin 的連接形式訪問 phpMyAdmin,加 # 註釋掉上面的 Apache Alias 規則(在上面每一行 Alias 前面加上 # 號),並將

<Directory /usr/share/phpMyAdmin/>
.........
</Directory>

裏面的

Require ip 127.0.0.1
Require ip ::1

改爲

Require all granted

保存退出,使之能夠從任何地方均可以訪問。若是本地電腦是固定 IP 的,爲了安全,也能夠將上面的 All 改成本地電腦的 IP。咱的 ADSL 就享受不到這樣的待遇了。

由於在前面建立虛擬主機配置文件 /etc/httpd/conf.d/vhost.conf 的時候已經爲 phpMyAdmin 配置了一個端口爲 2082 的虛擬主機,只能經過該虛擬主機(端口)訪問 phpMyAdmin。由於 /srv/www/phpmyadmin/public_html 配置爲 phpMyAdmin 的虛擬主機目錄,爲該目錄建立符號鏈接到 phpMyAdmin 安裝目錄(/usr/share/phpMyAdmin):

ln -sf /usr/share/phpMyAdmin /srv/www/phpmyadmin/html

備份而後修改 phpMyAdmin 的配置文件,

cp /etc/phpMyAdmin/config.inc.php ~/confbak/config.inc.php.bak
vi /etc/phpMyAdmin/config.inc.php

找到其中的以下代碼段:

$cfg['blowfish_secret'] = '隨便填上一串亂七八糟的字符便可';

按照上面的提示填寫 blowfish_secret 字符串。其餘的不用修改,保存並退出。

3.4 重起 APACHE 使配置生效

systemctl restart httpd

如今就能夠經過 ip:port/phpMyAdmin (將 IP 換爲 VPS IP,端口爲前面 2.1 中設置的 phpmyadmin 的虛擬主機端口,注意大小寫)訪問 phpMyAdmin 了。

使用前面建立的用戶名和密碼(2.3.4 中 grant 語句中包含的用戶名和密碼)登陸 phpMyAdmin。

而後還能夠按照本身的使用習慣對 phpMyAdmin 的行爲進行配置,請參考我寫的另外一篇文章:個性化配置 phpMyAdmin

4 建立一個新賬戶以訪問網站文件

由於按照本文的安裝方法,Apache(httpd 進程) 的運行用戶爲 apache,不作改動的話,WordPress 的運行用戶也就是 apache 了。訪問服務器的時候雖然能夠用 root,可是安全起見,最好禁止 root 用戶遠程登錄服務器,而 http 服務的用戶 apache 又不能用來登陸並管理服務器,因此這裏新建一個普通用戶用於遠程管理網站文件,而管理服務器的時候能夠經過這個用戶登陸後 su root 來執行。

4.1 增長新用戶

useradd username

這裏只是舉例,使用 username 作爲用戶名,下同。Linux 中的用戶相關操做能夠參考這篇文章,有關於 useradd、passwd 等指令的介紹。

4.2 爲新用戶設置密碼

passwd username

4.3 修改 /SRV/WWW/ 的子目錄和文件的屬主和組爲新用戶(USERNAME)及其組(USERNAME)

chown username:username /srv/www/* -R

-R 表示遞歸操做全部子文件夾。

4.4 上傳網站文件

使用新建立的用戶,經過 FileZilla(或其它 sftp 軟件,使用 SFTP – SSH File Transfer Protocal 協議鏈接)登陸服務器(固然,能修改(上傳)的目錄和文件是由 SSH 登陸的用戶的權限決定的),將網站文件上傳到前面設置虛擬服務器時設定的文件夾,這裏:

  • cnzhx.net 的文件位於 /srv/www/cnzhx.net/html 目錄下;
  • test.cnzhx.net 的文件位於 /srv/www/test.cnzhx.net/html 目錄下。

4.5 文件及文件夾權限設置

使用 WordPress 的時候須要上傳附件、更新插件或者 WordPress 自己等操做,這些操做須要對特定的某些文件、目錄有寫入權限。有 2 個解決方案:

  1. 方法 1:這種方法能夠在 WordPress 後臺執行一切更新插件或 WordPress 自己的操做、可上傳附件、方便使用 WPSC 等緩存插件,等等等等。這就要求賦予 apache 用戶比較大的權限,即,讓 apache 用戶成爲這些目錄和文件的全部者。直接將該網站文件夾的全部者和組都改爲 apache,可是將新建的管理用戶 usename 增長到 apache 組並使該組有 2775 的權限(也許能夠是 2770),即,全部文件和文件夾以及新建的文件夾和文件都對用戶apache 和組 apache 徹底可讀可寫可執行。順次輸入命令,
    cd /srv/www/cnzhx.net/html
    chown apache:apache * -R
    chmod 2775 * -R
    usermod -a -G apache username

    最後一行指令將用戶 username 添加到 apache 組中。這樣作的目的是,username 這個用戶也能夠擁有對網站文件的徹底操做權限,方便使用 ftp 軟件維護網站源文件。
    重起 Apache 服務(service httpd restart)使之生效。

  2. 方法 2:保守一點的方案是,僅保證 WordPress 後臺能夠上傳附件,使用 WPSC 等緩存插件,而更新插件和 WordPress 的操做經過 ftp 上傳更新文件的方式來進行:僅僅修改受影響的一部分文件夾的所屬組屬性便可,其它仍保留其全部者爲 username。
    通常須要讓 WordPress 自己可寫入和修改文件的文件夾只有 uploads。進入 WordPress 安裝目錄的 wp-content 目錄中:

     

    cd /srv/www/cnzhx.net/public_html/wp-content/

    首先爲了保證上傳附件功能,修改 uploads 文件夾以及其子文件夾和文件的屬性(屬主改成 apache,組不變:

    chown apache:apache uploads -R
    chmod 2755 uploads

    其次,若是是 WordPress 多站點模式,還須要按照一樣的方法修改 /wp-content/blogs.dir 目錄屬性。爲了使 WPSC 可建立緩存文件,在 wp-content 目錄下新建文件夾 cache,並一樣修改屬性。不過,若是要安裝 WPSC,仍是須要按照其提示作一些操做的。

    最後將 username 添加到 apache 組中:

    usermod -a -G apache username

    (參考 Linux 中將用戶添加到組的指令。)

5 優化及安全

安裝完服務器,進行了基本的配置以後,下一步就該考慮安全和優化問題了。進行基本的安全設置很是有必要,這樣能夠避免被人「無心」中入侵。

請分別參考下列系列文章:

6 更新說明

若是有更新,個別地方的更新說明就放在原地,較大範圍的更新說明放在這裏。

7 FAQ

7.1 訪問虛擬主機一直顯示 TESTING 1 2 3 頁面(如前面的圖示)

若是檢查配置都沒問題的話,多是由於沒有禁用 SELinux 並當即生效(文中要求過),或者是沒有正確配置 SELinux。

8 參考資料

  1. 水景一頁: Linode VPS 上 CentOS 6 安裝 LAMP + phpMyAdmin 記錄
  2. Apache: Upgrading to 2.4 from 2.2
  3. Linode: Updating Virtual Host Settings from Apache 2.2 to Apache 2.4
  4. Tecmint: Installing LAMP (Linux, Apache, MariaDB, PHP/PhpMyAdmin) in RHEL/CentOS 7.0
  5. cyberciti: CentOS and RHEL 7: Install Linux, Apache, MariaDB, PHP (LAMP) Stack

若是各位網友有什麼好的建議,歡迎留言討論。©

本文發表於水景一頁。永久連接:<http://cnzhx.net/blog/centos-rhel-install-lamp-phpmyadmin/>。轉載請保留此信息及相應連接。

相關文章
相關標籤/搜索