CentOS7安裝部署LAMP、WordPress和FTP

安裝配置LAMP環境,即Linux+Apache+MySQL+PHP+phpmyadmin。LNMP分別代表 Linux、Nginx、MySQL、PHP。大同小異。

基本知識準備

  • 查詢是否已安裝對應軟件: $ rpm -q <software> or yum info <software>
  • 軟件安裝后,服務是否啟動:systemctl命令(system Control)
systemctl status <software>[.service]    //查看service狀態
systemctl start <software>[.service]     //啟動service
systemctl enable <software>[.service]    //開機啟動service
systemctl stop <software>[.service]      //停止service
systemctl restart <software>[.service]   //重啟service

.service不加,系統也會在env PATH中根據 software name 調用正確的service。

安裝Apache

yum -y install httpd    //-y(yes)靜默安裝

安裝成功后,執行command

systemctl status httpd    //Apache service激活狀態默認是inactive (dead)
systemctl start httpd
systemctl enable httpd
systemctl status httpd    //啟動后再查看Active: active (running)

然后在瀏覽器輸入服務器公網IP或localhost(本機),就應該能看到Apache HTTP server的test頁面了。


test-apache.png

Exception異常處理

以阿里云為例,如果出現服務器配置啟動Apache后無法訪問,使用本機去ping公網ip還可以ping通的case,是因為訪問Apache服務被攔截了。可能是這兩個原因導致的:

  • 阿里云ECS實例的安全組規則沒有設置對應的端口權限。進入云服務器-實例-管理-本實例安全組-配置規則-添加安全組規則,在入方向添加80端口,授權對象0.0.0.0/0指所有請求。
    secure-rule.png

這里也順便加上幾個通用的端口,以防后面的操作出現訪問請求被攔截的情況。


secure-group.png
  • 系統中的防火墻在運行狀態,并未開放相應的端口。
systemctl status firewalld    //如果防火墻是inactive (dead)未激活狀態,就不會攔截任何端口,也可以保持這個狀態

如果防火墻是active (running)運行狀態,在防火墻中開放80端口,將 http 服務加入防火墻以允許外部訪問

firewall-cmd --add-service=http --permanent    //–permanent參數表示這是一條永久防火墻規則,如果不加則重啟系統后就沒有這條規則了

對于自定義的端口(如81),也需要添加防火墻規則

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

重啟 Firewalld 使該規則生效

systemctl restart firewalld

關閉SELINUX,vim /etc/selinux/config,注釋掉如下兩句,添加最后一項

#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加

:wq! 保存退出

setenforce 0 #使配置立即生效

安裝MariaDB (MySQL的一個開源分支)

yum -y install mariadb mariadb-server

MariaDB安裝成功后,啟動MariaDB

systemctl start mariadb     //啟動MariaDB
systemctl enable mariadb    //設置開機啟動

設置MySQL root賬戶密碼

mysql_secure_installation

因是剛安裝好,root密碼未設置,看到下面這行直接回車即可,輸Y開始設置root密碼

Enter current password for root (enter for none):
Set root password? [Y/n]

提示輸入新密碼和重復輸入新密碼,重復輸入兩次后,出現更新密碼成功提示,然后一路輸入y/Y就可以。

New password:
Re-enter new password:
Password updated successfully!

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Thanks for using MariaDB!

設置root密碼后,重啟MariaDB生效

systemctl restart mariadb

測試訪問數據庫:

mysql -uroot -p

然后輸入密碼,登錄成功后顯示如下:

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>

查看數據庫服務器的數據庫

show databases;

最后輸入exit;退出數據庫

安裝PHP以及PHP拓展

yum -y install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

安裝完成后,重啟Apache服務器

systemctl restart httpd

在/www/html/目錄新增index文件(查看Apache相關的配置在/etc/httpd/conf/httpd.conf里),測試PHP安裝結果

vim /var/www/html/index.php    // /www/html/為Apache服務器默認項目部署根路徑

i insert輸入如下內容,Esc退出編輯,:wq保存退出。

<?php
  phpinfo();
?>

在瀏覽器中輸入服務器地址,查看是否可以看到:


php-welcome.png

安裝phpMyAdmin

yum -y install phpmyadmin php-mcrypt

phpMyAdmin 的默認安裝目錄是 /usr/share/phpMyAdmin,同時會在 Apache 的配置文件目錄中自動創建虛擬主機配置文件 /etc/httpd/conf.d/phpMyAdmin.conf(區分大小寫)。默認情況下,CentOS 7上的phpMyAdmin只允許從回環地址(127.0.0.1)訪問。為了能遠程連接,需要改動它的配置。

vim /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
      # Require ip 127.0.0.1    #注釋掉
      # Require ip ::1          #注釋掉
        Require all granted     #新添加
     </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/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
      # Require ip 127.0.0.1    #注釋掉
      # Require ip ::1          #注釋掉
        Require all granted     #新添加
     </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>

重啟Apache服務器,systemctl restart httpd
然后通過瀏覽器訪問http://服務器ip地址/phpmyadmin

phpMyAdmin.png

參考鏈接

安裝WordPress

如果你剛好打算以WordPress作為博客服務器,這個module剛好適合你。

通過命令下載WordPress,切換到任意目錄下,一般源文件放在/usr/local/src,個人安裝軟件在/usr/local

cd /usr/local/src
wget https://wordpress.org/latest.tar.gz    //English version,目前最新版是4.8.1
wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN.tar.gz    //簡體中文(zh-Hans)

或者你先下載到本機,再通過FTP把壓縮包上傳到Linux 實例中。

在Apache項目部署跟目錄解壓縮wordpress

cd /var/www/html
tar -zxvf /usr/local/src/latest.tar.gz(wordpress-4.8.1.tar.gz/wordpress-4.8.1-zh_CN.tar.gz)

這樣就把WordPress安裝在網站子目錄,而不是網站的根目錄,方便網站的維護。這樣文件內容就放在/var/www/html/wordpress/目錄下,而不是/var/www/html/下。(建議這樣做)

在瀏覽器輸入'服務器實例公網IP/wordpress',如59.110.137.229/wordpress/,進入到 WordPress 的安裝頁面


wordpress.png

根據首頁提示信息,進入數據庫(通過Graphic或command),創建一個名為wordpress的數據庫名

CREATE DATABASE wordpress;
SHOW DATABASES;
EXIT;

然后開始,配置數據庫信息,單擊 提交。


config.png

數據庫主機填localhost即可,我之前以為是填寫服務器實例的公網IP,導致會出現下圖錯誤。


config-error.png
localhost.png

如果出現下圖錯誤,很有可能是文件權限不夠。

privilege.png
$ cd /var/www/html
$ ll -a    #查看解壓后wordpress文件夾的權限
drwxr-xr-x 5 nobody 65534 4096 Aug 30 23:24 wordpress    #權限不足
$ chmod 777 -R wordpress    #權限
$ chown root:root -R wordpress    #屬組

修改權限,讓文件可讀可寫可執行。

最后進入歡迎頁面,填寫你的個人信息,site、username、password、Email等。

通過主域名訪問安裝在子目錄的WP

為了方便管理,把wordpress安裝在子目錄/var/www/html/subdirectory而不是網站根目錄下/var/www/html,并且可以通過domain.com不是通過domain.com/subdirectory訪問站點首頁。首先確認你的WP內容是放在subdirectory目錄下(e.g. wordpress文件夾)。

  • Method I (Without URL change)。在根目錄下創建.htaccess文件夾,并把以下內容放進去,僅修改example.commy_subdir,替換成你自己的公網IP(如59.110.137.229)或域名(如guodongdong.com.cn)和子目錄(如worpress)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php [L] 
</IfModule>

That's all :) just so so

  • Method II (With URL change)。
  1. 進入WP后臺儀表盤Dashboard-設置Setting-常規General-
    設置WordPress address (URL)為http://IP address/wordpresshttp://(www).domain.com/wordpress
    設置Site address (URL)為http://IP addresshttp://(www).domain.com
    保存更改。
  2. index.php.htaccess兩個文件從wordpress子目錄復制(不要移動)到根目錄
cp .htaccess index.php ..
cd ..    #返回目錄
  1. 編輯index.php文件,vim index.php
require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );    #添加子目錄名稱/wordpress
  1. 如果你設置了固定鏈接Permalinks,點擊保存更改更新你的Permalink結構。WordPress會自動更新你的.htaccess文件。

最后通過你的公網IP或域名就可以直接訪問博客主頁了。WP官方配置鏈接。如果還是不行,建議把方法一和二 一起走一遍就可以了。

安裝FTP

通過WP在線安裝主題或更新插件時,WP會通過FTP協議獲取訪問網頁服務器的權限。Entry

解決安裝主題或更新插件時提示'未能找到WordPress內容目錄(wp-content)'

在wp-config配置文件中添加如下內容(以我的根目錄為'wordpress'為例):

define('FTP_BASE', 'wordpress');    #FTP_BASE:你的wordpress的安裝的根目錄
define('FTP_CONTENT_DIR', 'wordpress/wp-content');    #FTP_CONTENT_DIR:你的wordpress的內容目錄
define('FTP_PLUGIN_DIR', 'wordpress/wp-content/plugins/');    #FTP_PLUGIN_DIR:你的wordpress的插件目錄
define('FTP_THEMES_DIR', 'wordpress/wp-content/themes/');    #FTP_THEMES_DIR:你的wordpress的主題目錄
define('FS_METHOD', 'direct');    #FS_METHOD:你的安裝方法

保存修改,重新安裝主題或更新插件,SUCCESS! 參考鏈接
WordPress官網尋找自己喜歡的主題和合適的插件吧。

離線下載安裝主題

不喜歡在線的主題或在線不能下載主題,把下載的主題或插件放在/wordpress/wp-content/themes|plugins下,進入個人站點控制臺啟用即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容