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
- 拷貝xampp至虛擬機;
- 授權命令:
sudo chmod 777 xampp-linux-x64-7.4.7-0-installer
- 執行命令:
./xampp-linux-x64-7.4.7-0-installer
默認安裝位置是/opt/lampp/。
(二)初始化XAMPP
- 初始化命令:
sudo /opt/lampp/lampp security
- 重啓XAMPP,命令:
/opt/lampp/lampp restart
此時有些人的電腦上可能會出現FTP
報錯,此時FTP存在一些未匹配IP和未開啓日誌而導致的報錯信息,但因爲目前未使用FTP,故暫時可以不用理會。
- 驗證配置完成
至此,XAMPP啓動成功,可以通過網頁分別輸入localhost和localhost/phpmyadmin看得到相關頁面。
同時,在phpmyadmin管理頁面也可以看到,XAMPP會自動創建一個pma用戶的MySQL記錄,並沒有密碼,而因爲是最新版,出於開源考慮,用MariaDB替換了MySQL,但效果是一致的。
(三)允許XAMPP遠程訪問
XAMPP默認只能本地訪問phpmyadmin,若想遠程訪問phpmyadimin,則需要修改XAMPP新版的安全規則。
vim /opt/lampp/etc/extra/httpd-xampp.conf
- 找到
Require local
,修改爲Require all granted
- 重啓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地址,成功進入如下頁面。
五、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';
(三)創建新用戶並授權
- 創建新用戶
> create user '新用戶名'@'%' identified by '新密碼';
- 給予新用戶所有權(不推薦)
> grant all privileges on *.* to '新用戶'@'%' identified by '密碼';
- 刷新權限
> flush privileges;
- 退出,並重啓XAMPP服務
> exit
# sudo /opt/lampp/lampp restart
(四)配置3306端口監聽
xampp默認使用socket
進行連接,而不監聽3306端口,故外部無法通過Navicat premium
進行遠程管理數據庫。我們要做的就是開啓這個監聽端口。
但是,在某些主機上如果你找不到如下文件內的skip-networking
,或者找到卻已經被註釋掉了,那就暫時不用理這一步。
vim /opt/lampp/etc/my.cn
- 找到
skip-networking
(如圖的52行)並註釋掉,重啓XAMPP服務
重啓XAMPP命令:# sudo /opt/lampp/lampp restart
(五)驗證
完成上述步驟,理論上Navicat
是能夠連接的,如下:
注意:這裏使用的是後來新創建的用戶,這個用戶配置了遠程連接'%'
,而root
我並沒有配置允許遠程訪問,默認是localhost
或127.0.0.1
,所以在真實主機上使用Navicat
命令無法連接。
(六)排錯步驟
1. 檢查端口監聽的地址段
# sudo netstate -an|grep 3306
,下面是正常圖,多了不要緊,但至少要有這一條。關鍵詞::::3306
如果返回結果是這樣,127.0.0.1:3306
,代表監聽本地,執行該步驟。
相關文件:# sudo vim /opt/lampp/etc/my.cnf
關鍵詞:bind-address=127.0.0.0
或bind-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配置
因爲MariaDB
的root
密碼已更改,牽涉到phpmyadmin
。如果不一起修改,就會這樣:
(一)修改phpmyadmin對MariaDB的訪問方式
- 命令:
# sudo vim /opt/lampp/phpmyadmin/config.inc.php
- 找到該關於
Server
的配置:
- 修改關鍵字對應的字段
auth_type
的config
改成cookie
,password
改成對應root
的密碼,AllowNoPassword
的true
改成false
即可。 - 重啓XAMPP服務:
/opt/lampp/lampp restart
(二)驗證遠程phpmyadmin訪問MariaDB
1. 使用root@localhost登陸
成功!
2. 使用新用戶登陸
失敗!Why?
注意,下面提示用戶通過’localhost’登陸,所以失敗。
原因如下,先用root
進入管理,查看用戶,發現有兩個不速之客。趕緊刪掉!!
這時候,重新進入phpmyadmin
,輸入新創建的用戶,登陸。
成功!
七、補充:VMware的橋接配置
(一)VMware虛擬網絡編輯器
- 打開虛擬網絡編輯器
- 更改設置,本質就是授權給VMware,這時出現vmnet0。
- 選擇橋接到網卡:你能聯網的那塊網卡,千萬別選“自動”。
比如我用WiFi聯網,我的WiFi網卡是:Intel® Dual Band Wireless…
(二)VMware虛擬機網絡設置
- 打開虛擬機設置
- 找到“網絡適配器選項”,選擇橋接,複製連接狀態。
(三)主機網絡適配器設置
- 打開電腦上的
網絡適配器
或更改網絡適配器
設置
- 選擇聯網的網卡,進入屬性,檢查有無安裝服務
VMware Bridge Protocol
,如果有,這步就免了 - 如果沒有,點擊下面的安裝,選擇服務,再選擇從磁盤安裝,瀏覽你的
VMware
安裝目錄,選擇netbridge.inf,完成安裝後,把這塊網卡的這個服務給勾上✔。
(四)驗證橋接成功
打開虛擬機,CentOS 7,命令行輸入ifconfig
得到IP192.168.43.164
真實電腦上,Windows 10,命令行輸入ipconfig
得到IP192.168.43.142
虛擬機和真實計算機的IP處於同一網段,就對了,證明橋接成功。
我的截圖有點亂,但還是能看清兩個IP的。
至此,XAMPP安裝結束,對於FTP的具體配置,等到什麼時候用到了,我再回來補充。
> exit
Bye!