Centos7下配置PHP + MySQL + Nginx開發環境

sufaith發表於2019-03-28

一. MySQL安裝與配置


1. 配置yum源

# 更新yum源

yum update         複製程式碼

# 下載mysql源安裝包

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm複製程式碼

# 安裝mysql源

yum localinstall mysql57-community-release-el7-8.noarch.rpm複製程式碼

# 檢查mysql源是否安裝成功

yum repolist enabled | grep "mysql.*-community.*"複製程式碼

2. 安裝MySQL

yum install mysql-community-server複製程式碼

3. 啟動MySQL


# 啟動MySQL服務

systemctl start mysqld複製程式碼

# 檢視MySQL的啟動狀態

systemctl status mysqld複製程式碼

# 設定MySQL開機啟動

systemctl enable mysqld
systemctl daemon-reload複製程式碼

4. 修改root預設密碼

# 找到root預設密碼

grep 'temporary password' /var/log/mysqld.log複製程式碼

# 進入mysql控制檯, 輸入上述查詢到的預設密碼

mysql -uroot -p複製程式碼

# 設定root管理員的密碼

set password for 'root'@'localhost'=password('PassWord123@'); 複製程式碼

5.新增遠端登入使用者
預設只允許root帳戶在本地登入,如果要在其它機器上連線mysql,必須修改root允許遠端連線,或者新增一個允許遠端連線的帳戶

# 新增遠端帳戶

GRANT ALL PRIVILEGES ON *.* TO 'yourname'@'%' IDENTIFIED BY 'YourPassword@123' WITH GRANT OPTION;複製程式碼

6. 配置預設編碼為utf8
修改配置檔案 /etc/my.cnf,新增下面兩行, utf8編碼配置

character_set_server=utf8 
init_connect='SET NAMES utf8'複製程式碼


二. PHP環境配置

1. 安裝 php 和 php-fpm

# 首先安裝epel

yum -y install epel-release複製程式碼

# 安裝php php-fpm

yum -y install php php-fpm複製程式碼

# 檢視php版本

php -v複製程式碼

2. 安裝php-mysql

yum install php-mysql複製程式碼

3. 設定php-fpm開機自動啟動

systemctl enable php-fpm複製程式碼

4. 啟動php-fpm

systemctl start php-fpm複製程式碼


三. Nginx安裝與配置


# 下載安裝包

wget http://nginx.org/download/nginx-1.10.0.tar.gz複製程式碼

# 解壓Nginx的tar包,並進入解壓好的目錄

tar -zxvf nginx-1.10.0.tar.gz
cd nginx-1.10.0/複製程式碼

# 安裝zlib和pcre庫

yum -y install zlib zlib-devel
yum -y install pcre pcre-devel複製程式碼

# 配置、編譯並安裝

./configure--with-http_ssl_module\
make
make install複製程式碼

# 啟動nginx

/usr/local/nginx/sbin/nginx複製程式碼

訪問伺服器後如下圖顯示說明Nginx運正常。

Centos7下配置PHP + MySQL + Nginx開發環境


# nginx 配置訪問專案目錄並支援 PHP 的 pathinfo 模式配置

server {
        listen       80;
        server_name  xxx.xxxx.com; # 你的域名
	location / {
	    root  /var/www/xxx專案目錄/;
	    index index.php;
	}
       	location ~ ^(.+\.php)(.*)$ {
	    root           /var/www/xxx專案目錄/;
	    fastcgi_pass   127.0.0.1:9000;
	    fastcgi_index  index.php;
	    fastcgi_split_path_info  ^(.+\.php)(.*)$;
	    fastcgi_param PATH_INFO $fastcgi_path_info;
	    if (!-e $document_root$fastcgi_script_name) {
	        return 404;
	    }
	    fastcgi_param  SCRIPT_FILENAME$document_root$fastcgi_script_name;
	    include        fastcgi_params;
	}
    }複製程式碼


常用指令

mysql
systemctl start mysqld # 啟動
systemctl stop mysqld # 停止
systemctl restart mysqld # 重啟

php-fpm
systemctl start php-fpm # 啟動
systemctl stop php-fpm # 停止
systemctl restart php-fpm # 重啟

nginx
sudo fuser -k 80/tcp # 殺死80埠
/usr/local/nginx/sbin/nginx # 開啟
/usr/local/nginx/sbin/nginx -s stop # 停止
/usr/local/nginx/sbin/nginx -s reopen # 重啟
/usr/local/nginx/sbin/nginx -s reload # 重新載入配置檔案


其他問題

1. 關閉SELINUX(SELINUX是一個安全子系統,它能控制程式只能訪問特定檔案。如果不關閉,你可能訪問檔案受限):

vi /etc/selinux/config 
#SELINUX=enforcing        # 註釋掉 
#SELINUXTYPE=targeted     # 註釋掉 
SELINUX=disabled          # 增加 
:wq!                      # 儲存退出 
shutdown -r now           # 重啟系統複製程式碼

2. thinkphp 提示錯誤目錄 [ ./Runtime/ ] 不可寫!

chmod 777 -R /var/www/xxx專案目錄/Application/Runtime複製程式碼


福利: 本文已同步到我的個人技術網站 IT乾貨-sufaith 該網站包括Python, Linux, Nodejs, 前端開發等模組, 專注於程式開發中的技術、經驗總結與分享, 歡迎訪問.


相關文章