CentOS 7下Apache + PHP + MySQL環境(LAMP)的安裝
- 2020 年 3 月 5 日
- 筆記
Step 1:更換阿里雲 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum update
Step 2:Apache 部分
安裝Apache:yum -y install httpd
啟動Apache服務:systemctl start httpd
檢查Apache服務狀態是否running:systemctl status httpd
設置Apache服務自啟動守衛:systemctl enable httpd
此時,訪問伺服器的80埠,應可以看到Apache的默認頁。如果不能訪問,請檢查防火牆設置。
Apache的默認網頁資源目錄是/var/www/html
,默認配置文件位置是/etc/httpd/conf/httpd.conf
。
Step 3:MySQL 5.7 部分
安裝MySQL及伺服器:由於需要下載文件,請在合適的目錄下執行下列操作。若系統沒有wget
,請先yum install wget
安裝之。
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server
啟動MySQL服務:systemctl start mysqld.service
檢查MySQL服務是否running:systemctl status mysqld.service
設置MySQL服務自啟動守衛:systemctl enable mysqld.service
獲取MySQL初始隨機密碼: grep "password" /var/log/mysqld.log
使用該密碼進入資料庫:mysql -uroot -p
,輸入密碼進入
執行查詢,修改默認密碼:ALTER USER 'root'@'localhost' IDENTIFIED BY '[NEWPASSWORD]';
注意,依據安全性政策,過於簡單的密碼無法通過要求。
新增最高許可權用戶:實際操作中,我們不可能將root用戶暴露到%域來做資料庫操作,所以添加一個新用戶。執行下列查詢:
CREATE USER '[USERNAME]'@'%' IDENTIFIED BY '[PASSWORD]'; GRANT ALL ON *.* TO '[USERNAME]'@'%'; FLUSH PRIVILEGES;
至此,使用配置好的用戶名和密碼,應可以使用Navicat連接上資料庫。
Step 4: PHP 7 部分
注意,直接yum
安裝PHP會安裝5.4版本。如果不慎安裝,請執行
yum remove php yum remove php-fpm yum remove php-common
然後reboot伺服器,再進行後續安裝。
為安裝PHP 7,需要配置一下新的源:
yum install epel-release rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安裝PHP:yum -y install php72w
安裝PHP依賴:yum -y install php72w-fpm
安裝常用的PHP插件:yum -y install php72w-cli php72w-common php72w-devel php72w-mbstring php72w-mysqlnd
重啟伺服器和資料庫,使相關插件生效:
systemctl restart httpd.service systemctl restart mysqld.service
驗證PHP版本是否為7.0+:php -v
測試PHP能否正常解釋:
cd /var/www/html vi test.php
內容為<?php phpinfo(); ?>
在瀏覽器訪問之。若出現診斷頁,則安裝成功。
Step 5: 檢查 MySQLi 支援
在test.php
中搜索mysqli
,若能看到類似表格,則MySQLi支援已啟動。PHP 7.2版本默認啟用MySQLi。
Step 6: 安全性配置
關閉Apache的目錄索引許可權:訪問Apache的httpd.conf
文件,去除<Directory /var/www/html>
下Options
的Indexes
屬性
在正式上線時,關閉PHP錯誤提示:編輯php.ini
,修改display_errors
選項到Off。
一些在Ubuntu下需要做的但在CentOS下好像不需要了的操作(僅供參考):
MySQL的默認配置文件路徑為/etc/my.cnf
,其中的具體配置項目請參看https://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
- 取消MySQL的地址綁定(否則會導致外網無法連接資料庫):
[mysqld]
下bind_address=0.0.0.0
-
禁止MySQL進行域名解析(否則會導致外網連接資料庫極慢無比):
[mysqld]
下添加skip-name-resolve
-
設置資料庫默認編碼UTF-8:
[mysqld]
下添加character_set_server=utf8
和init_connect='SET NAMES utf8'
Step 7: FTP 伺服器
使用xShell聯合xFtp即可直接連接。
Step 8: 啟用HTTPS
安裝SSL支援:yum install mod_ssl openssl
依據https://help.aliyun.com/knowledge_detail/95493.html的說明配置證書文件,注意:
- 第2步若找不到對應配置項,無視該步驟
- 第3步配置文件位置為
/etc/httpd/conf.d/ssl.conf
- 第4步所給指令不再有效,請使用
systemctl restart httpd
現在,可以以域名方式https訪問相應埠。
至此,LAMP環境搭建完成。後續PHP程式碼上傳到/var/www/html
目錄下即可。