XAMPP安裝指南(針對CentOS 7 x86_64)

一、前言

本文爲了更好的讓讀者區分MariaDB數據庫內的命令和Shell命令,採用數據庫前綴爲>,而Shell命令採用# sudo前綴,實際上並不全是要這麼做。

注意:教程有落後的時候,本教程針對的是XAMPP v7.4.7,本文第一次發佈的時間是2020年6月27日

二、環境

(一)Windows 10 x86_64 v1909

(二)CentOS 7 x86_64

鏡像直達:CentOS 7 x86_64
IP:172.16.31.155(橋接)

(三)VMware

官網直達:VMware

(四)Navicat

官網直達:Navicat Premium

(五)XAMPP for Linux x64 v7.4.7

官網直達:XAMPP官方網站
下載直達:xampp-linux-x64-7.4.7-0-installer.run

三、安裝和初始化XAMPP

(一)安裝XAMPP

  1. 拷貝xampp至虛擬機;
  2. 授權命令:sudo chmod 777 xampp-linux-x64-7.4.7-0-installer
  3. 執行命令:./xampp-linux-x64-7.4.7-0-installer 默認安裝位置是/opt/lampp/。

(二)初始化XAMPP

  1. 初始化命令:sudo /opt/lampp/lampp security
  2. 重啓XAMPP,命令:/opt/lampp/lampp restart
    此時有些人的電腦上可能會出現FTP報錯,此時FTP存在一些未匹配IP和未開啓日誌而導致的報錯信息,但因爲目前未使用FTP,故暫時可以不用理會。
    FTP啓動報錯
  3. 驗證配置完成
    至此,XAMPP啓動成功,可以通過網頁分別輸入localhost和localhost/phpmyadmin看得到相關頁面。
    同時,在phpmyadmin管理頁面也可以看到,XAMPP會自動創建一個pma用戶的MySQL記錄,並沒有密碼,而因爲是最新版,出於開源考慮,用MariaDB替換了MySQL,但效果是一致的。
    xampp安裝完成
    phpmyadmin安裝完成

(三)允許XAMPP遠程訪問

XAMPP默認只能本地訪問phpmyadmin,若想遠程訪問phpmyadimin,則需要修改XAMPP新版的安全規則。

  1. vim /opt/lampp/etc/extra/httpd-xampp.conf
  2. 找到Require local,修改爲Require all granted
    all granted
  3. 重啓XAMPP服務,命令:/opt/lampp/lampp restart

四、開啓80端口、3306端口

最簡單的方法就是圖形界面,但這裏只說命令行操作。

(一)開啓80端口,

命令:sudo firewall-cmd --add-port=80/tcp --permanent

(二)開啓3306端口,

命令:sudo firewall-cmd --add-port=3306/tcp --permanent

(三)重啓防火牆,

命令:systemctl restart firewalld.service

(四)驗證遠程打開網站

完成也必須完成之前步驟之後,在真實主機Windows 10上打開網頁,輸入虛擬機的IP地址,成功進入如下頁面。
進入XAMPP網站

五、MariaDB配置

最新版的XAMPP一鍵式建站是使用MariaDB數據庫,而不是MySQL,具體原因可以參考:腳本之家:淺談MySQL和MariaDB區別(mariadb和mysql的性能比較),但本質上,MairiaDB就是可以兼容MySQL的,所以你會發現接下來我們許多命令都是MySQL的命令,比如:mysql -u root -p

而在安裝初始化的過程中我們並不需要配置MariaDB的密碼,因爲本身是沒有密碼的,所以我們接下來的主要方向是配置root的密碼和創建遠程登陸的用戶。

另外,補充下,XAMPP默認創建一個用戶名爲pma的數據庫用戶,此外還有對應的表、數據庫等。如果不需要,建議最好設置無權限和禁止遠程登陸,而不是刪掉它。

接下來我會直接寫操作方法,而不講解爲什麼這麼做,如果有興趣,可以自己深究。

(一)設置MariaDB的命令軟連接

目的:爲了解決無法在命令行直接使用mysql -u root -p等問題。

命令:ln -s /opt/lampp/bin/mysql /usr/bin

(二)設置root用戶的密碼

命令步驟:
# sudo mysql -u root -p —— 無需密碼

> use mysql

> update mysql.user set authentication_string = password('新密碼'), plugin = 'mysql_native_password' where user = 'root' and host = 'localhost';

(三)創建新用戶並授權

  1. 創建新用戶
    > create user '新用戶名'@'%' identified by '新密碼';
  2. 給予新用戶所有權(不推薦)
    > grant all privileges on *.* to '新用戶'@'%' identified by '密碼';
  3. 刷新權限
    > flush privileges;
  4. 退出,並重啓XAMPP服務
    > exit
    # sudo /opt/lampp/lampp restart

(四)配置3306端口監聽

xampp默認使用socket進行連接,而不監聽3306端口,故外部無法通過Navicat premium進行遠程管理數據庫。我們要做的就是開啓這個監聽端口。

但是,在某些主機上如果你找不到如下文件內的skip-networking,或者找到卻已經被註釋掉了,那就暫時不用理這一步。

  1. vim /opt/lampp/etc/my.cn
  2. 找到skip-networking(如圖的52行)並註釋掉,重啓XAMPP服務
    skip-networking
    重啓XAMPP命令:# sudo /opt/lampp/lampp restart

(五)驗證

完成上述步驟,理論上Navicat是能夠連接的,如下:
navicat連接
注意:這裏使用的是後來新創建的用戶,這個用戶配置了遠程連接'%',而root我並沒有配置允許遠程訪問,默認是localhost127.0.0.1,所以在真實主機上使用Navicat命令無法連接。

(六)排錯步驟

1. 檢查端口監聽的地址段

# sudo netstate -an|grep 3306,下面是正常圖,多了不要緊,但至少要有這一條。關鍵詞::::3306
檢查端口開放
如果返回結果是這樣,127.0.0.1:3306,代表監聽本地,執行該步驟。
fail
相關文件:# sudo vim /opt/lampp/etc/my.cnf
關鍵詞:bind-address=127.0.0.0bind-address=localhost
解決方法:修改成0.0.0.0或乾脆用#註釋掉
監聽

2. 檢查是否允許監聽

# sudo netstate -an|grep 3306
根據返回內容是否爲空,若爲空則無監聽,進行該步驟,若不爲空而爲127.0.0.1之類的按第一步執行
相關文件:# sudo vim /opt/lampp/etc/my.cnf
關鍵詞:skip-networking
解決方法:用#註釋掉

3. 檢查防火牆是否開放

命令:# sudo firewall-cmd --list-ports | grep 3306,爲空則添加防火牆配置。
添加端口開放命令:
# sudo firewall-cmd --add-port=3306/tcp
重啓防火牆,命令:
# sudo systemctl restart firewalld.service

4. 檢查MariaDB是否配置了遠程訪問的用戶

%代表任意IP均可也只能遠程登陸的用戶,localhost代表只能本機登陸的用戶,二者兼有則即可遠程又可本地登陸MariaDB,如果不是,按照這個解決方法:百度一下,你就知道

六、phpmyadmin配置

因爲MariaDBroot密碼已更改,牽涉到phpmyadmin。如果不一起修改,就會這樣:
拒絕連接

(一)修改phpmyadmin對MariaDB的訪問方式

  1. 命令:# sudo vim /opt/lampp/phpmyadmin/config.inc.php
  2. 找到該關於Server的配置:
    配置
  3. 修改關鍵字對應的字段auth_typeconfig改成cookiepassword改成對應root的密碼,AllowNoPasswordtrue改成false即可。
  4. 重啓XAMPP服務:/opt/lampp/lampp restart

(二)驗證遠程phpmyadmin訪問MariaDB

1. 使用root@localhost登陸

成功!
root登陸成功

2. 使用新用戶登陸

失敗!Why?
在這裏插入圖片描述
注意,下面提示用戶通過’localhost’登陸,所以失敗。
原因如下,先用root進入管理,查看用戶,發現有兩個不速之客。趕緊刪掉!!
任意用戶
這時候,重新進入phpmyadmin,輸入新創建的用戶,登陸。
成功!
遠程登陸phpmyadmin成功

七、補充:VMware的橋接配置

(一)VMware虛擬網絡編輯器

  1. 打開虛擬網絡編輯器
    first
  2. 更改設置,本質就是授權給VMware,這時出現vmnet0。
    更改設置
  3. 選擇橋接到網卡:你能聯網的那塊網卡,千萬別選“自動”。
    比如我用WiFi聯網,我的WiFi網卡是:Intel® Dual Band Wireless…
    連接網卡

(二)VMware虛擬機網絡設置

  1. 打開虛擬機設置
    虛擬機設置
  2. 找到“網絡適配器選項”,選擇橋接,複製連接狀態。
    配置虛擬機網絡

(三)主機網絡適配器設置

  1. 打開電腦上的網絡適配器更改網絡適配器設置
    更改網絡適配器
  2. 選擇聯網的網卡,進入屬性,檢查有無安裝服務VMware Bridge Protocol,如果有,這步就免了vmnet0服務
  3. 如果沒有,點擊下面的安裝,選擇服務,再選擇從磁盤安裝,瀏覽你的VMware安裝目錄,選擇netbridge.inf,完成安裝後,把這塊網卡的這個服務給勾上✔
    安裝VMware橋接網卡

(四)驗證橋接成功

打開虛擬機,CentOS 7,命令行輸入ifconfig得到IP192.168.43.164
真實電腦上,Windows 10,命令行輸入ipconfig得到IP192.168.43.142

虛擬機和真實計算機的IP處於同一網段,就對了,證明橋接成功。
我的截圖有點亂,但還是能看清兩個IP的。
橋接成功


至此,XAMPP安裝結束,對於FTP的具體配置,等到什麼時候用到了,我再回來補充。

> exit

Bye!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章