阿里雲上的Centos 7.6的一次Nginx+Mysql+PHP7.3 部署


阿里雲申請了一台服務器 Centos 7.6,每次安裝都要上網找一大堆教程,因為不熟悉,因為總是忘記。

所以,有時間的時候,還是記錄下自己的學習過程,有助於下次的問題解決。

我先總結下:

1)安裝VSFTP太麻煩,主要是端口麻煩,必須要開21端口和其他的數據端口,最好使用rz 替代

2)ningx php配置中遇到一些小問題,主要是文件夾權限問題、php-fpm沒有啟動問題

 

一、登錄如何登錄Centos 7.6

阿里雲服務器是別人申請的,給的時候就是阿里雲的網站登錄用戶名和密碼和阿里雲web頁面的遠程登錄的密碼。那么如何登錄遠程服務器呢,不能像Windows那樣使用“遠程桌面連接”很是煩惱。

1.登錄到阿里雲后台,找到實例列表,再最后有個功能菜單,點擊更多>密碼/秘鑰>重置實例密碼,彈出密碼重置頁面,重置密碼即可。

2.重置后,重啟實例

3.使用SSH工具,我使用的是SecureCRT7.3.0 (mac 系統),新建一個session,填寫好IP、用戶名即可。

4.雙擊SecureCRT中的session,表示可以通過SecureCRT登錄。

Last login: Wed Apr  3 18:19:55 2019

Welcome to Alibaba Cloud Elastic Compute Service !

[root@iZbp1edef2k4kmoqb9ypfvZ ~]# 

  

注意:一定要在阿里雲重置密碼后才能在此SecureCRT登錄成功。否則會報錯。

二、配置生成環境軟件

這台服務器主要運行PHP,但我希望使用Ningx來配合完成PHP的配置,這樣后期擴展會好點。Apache現在使用的人少,而且配置繁瑣。那么這台服務器需要安裝

1.Ningx
2.Ftp 為了方便后期文件傳輸
3.PHP 7最新穩定版本
4.Mysql 5.6穩定版本
5.配置站點

  

 

1.Ngnix安裝與配置


 

1.1 安裝nginx

使用命令yum install -y nginx 進行安裝,注意我的阿里雲centos里面已經安裝了yum,沒有安裝的yum請自行搜索安裝方法。

yum install -y nginx
... ... 中間省略
Installed:
  nginx.x86_64 1:1.12.2-2.el7                                                   
... ....                              

Complete!

1.2 查詢nginx

[root@iZbp1edef2k4kmoqb9ypfvZ ~]# which nginx
/usr/sbin/nginx
[root@iZbp1edef2k4kmoqb9ypfvZ local]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz

nginx路徑 /usr/sbin/nginx

nginx配置路徑 /etc/nginx

 

1.3 啟動nginx

#啟動
cd /usr/local/nginx #一般是這個目錄 可以使用上面的查詢命令來查詢
./nginx
#重啟 nginx -t #判斷配置是否正確 nginx -s reload #重新加載配置,重啟nginx,這個設置有延遲 #關閉 ps -ef|grep nginx #查找nginx進程號 kill -QUIT #從容停止 主進程號 kill -TERM #快速停止 主進程號 kill -9 nginx #強制停止

  

 

實際上在命令窗口輸入

nginx

 

在瀏覽器訪問公網IP,如下圖,說明nginx部署好了

  

 2.安裝FTP服務器


 

網上看了下,大多是vsftpd教程,具體操作如下

2.1 FTP安裝

yum install -y vsftpd
Loaded plugins: fastestmirror
... ... 省略                                                 
Complete!

  

2.2 查看ftp安裝位置信息

[root@iZbp1edef2k4kmoqb9ypfvZ home]# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

  

2.2 FTP啟動

#設置開機啟動
systemctl enable vsftpd.service

#啟動
systemctl start vsftpd.service

#停止
systemctl stop vsftpd.service

#查看狀態
systemctl status vsftpd.service

  

2.3 配置FTP

/etc/vsftpd/vsftpd.conf 此為配置文件

直接在命令中執行

vim /etc/vsftpd/vsftpd.conf  

 

具體配置如下

#顯示行號
:set number

#修改配置 12 行 設置為NO 禁止匿名用戶
anonymous_enable=NO

#修改配置 33 行 開啟讀寫權限
anon_mkdir_write_enable=YES

#修改配置48行 設定是否允許 改變 上傳文件的屬主 , 與下面一個設定項配合使用
chown_uploads=YES 

#修改配置73行 如果 FTP client 會下達“async ABOR”這個指令時,這個設定才需要啟用,而一般此設定並不安全,所以通常將其取消
async_abor_enable=YES

#修改配置83行 大多數 FTP 服務器都選擇用 ASCII 方式傳輸數據 , 將 # 去掉就能實現用 ASCII 方式上傳和下載文件
ascii_upload_enable=YES

#修改配置84行 將 # 去掉就能實現用 ASCII 方式下載文件
ascii_download_enable=YES

#修改配置87行 將#去掉可設置登錄FTP服務器時顯示的歡迎信息
ftpd_banner=Welcome to blah FTP service.

#修改配置101行
chroot_local_user=YES

#添加下列內容到vsftpd.conf末尾
use_localtime=YES
#端口號  可以修改
listen_port=21 
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
#啟動被動模式
virtual_use_local_privs=YES
pasv_min_port=40000
pasv_max_port=40010
accept_timeout=5
connect_timeout=1
allow_writeable_chroot=YES

  

2.4 建立用戶文件(用戶名密碼)

在命令中輸入

#創建編輯用戶文件
vim /etc/vsftpd/virtusers
#第一行為用戶名,第二行為密碼。不能使用root作為用戶名 
abcname
abc123sFJH

  

2.5 生成用戶數據文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
#設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取
chmod 600 /etc/vsftpd/virtusers.db 

  

2.6 修改/etc/pam.d/vsftpd  PAM認證文件

# 修改前先備份 
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
#編輯vsftpd文件
vi /etc/pam.d/vsftpd
#先將配置文件中原有的 auth 及 account 的所有配置行均注釋掉,添加下面兩行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers 
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers 
# 如果系統為32位,上面改為lib

  

2.7 新建系統用戶vsftpd,用戶目錄為/home/vsftpd

#用戶登錄終端設為/bin/false(即:使之不能登錄系統,只能登陸ftp)
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd

 

2.8 建立虛擬用戶個人配置文件

#建立vconf文件夾
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf

#這里建立虛擬用戶abcname配置文件
touch abcname

#編輯abcname用戶配置文件,內容如下,其他用戶類似
vi abcname

local_root=/home/vsftpd/abcname/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

#建立abcname用戶根目錄
mkdir -p /home/vsftpd/abcname/

 

2.9 設置防火牆

IPtables 的設置方式:
vi /etc/sysconfig/iptables
#編輯iptables文件,添加如下內容,開啟21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT


firewall 的設置方式:
firewall-cmd --zone=public --add-service=ftp --permanent

firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent

  

2.10 重啟vsftpd

systemctl restart vsftpd.service

 

問題:

總是提示

425 Failed to establish connection.

服務器發回了不可路由的地址。使用服務器地址代替。

網上的解決方案有幾種

1.對ftp目錄設置權限

chmod -R 775 /home/vsftpd/abcname

  

2.禁用selinux

#打開SELINUX配置文件
vim /etc/selinux/config

#修改配置參數
#注釋  
SELINUX=enforcing
#增加  
SELINUX=disabled
#修改完成后,需要重啟!

  

3.設置selinux不對vsftpd做限制

setsebool -P ftpd_connect_all_unreserved 1

  

我看了幾點都符合還是不行

4.設置阿里雲安全組目錄

 

2.11 使用rz和sz工具 

VSFTP安裝太麻煩,那么就使用rz上傳 和sz下載

yum install lrzsz -y  

 即可

使用的時候

上傳 輸入 rz 會彈出文件選擇框

 

 

3.安裝mysql


 

3.1 安裝源

yum localinstall  http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm  

3.2 安裝mysql

yum install mysql-community-server  

3.3 啟動

service mysqld start

 

3.4 查看狀態

service mysqld status  

 

3.5 查看初始密碼

[root@iZbp1edef2k4kmoqb9ypfvZ ~]# grep "password" /var/log/mysqld.log
2019-04-03T13:52:00.811914Z 1 [Note] A temporary password is generated for root@localhost:  

3.6 修改初次密碼

mysql> alter user user() identified by 'xxxxxxxx';

  

 3.7 創建數據庫

CREATE DATABASE IF NOT EXISTS fpshop default charset utf8 COLLATE utf8_general_ci;

 

3.8 開啟遠程登錄

有的時候,需要開啟遠程登錄

#查詢當前用戶host
select user,host from user;

#新建允許遠程鏈接mysql數據庫的用戶
grant all on *.* to sa@'%' identified by '123456' with grant option;
flush privileges;

  

4.安裝PHP7


 

 

4.1  添加最新版本7.3到本地倉儲

sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 
sudo yum -y install epel-release yum-utils

  

4.2 禁用老版本php 5.4

sudo yum-config-manager --disable remi-php54
sudo yum-config-manager --enable remi-php73

  

4.3 安裝php7.3

sudo yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

  

$ php -v
 PHP 7.3.1 (cli) (built: Jan  8 2019 13:55:51) ( NTS )
 Copyright (c) 1997-2018 The PHP Group
 Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies

  

4.4 安裝php7.3擴展

sudo yum install php-<entension-name>

  

例如安裝mysqld

sudo yum install php-mysql

  

5.Nginx、PHP、Mysql的 Web站點綜合配置


 

5.1 編輯nginx.conf 增加站點配置文件

#轉到nginx配置文件
cd /etc/nginx/conf
#增加conf.d文件夾
mkdir conf.d #編輯nginx配置文件 vi nginx.conf
#在nginx.conf末尾增加
include /usr/local/etc/nginx/conf.d/*.conf;

這里設置單獨的站點配置文件,增加站點conf,default.conf

#增加一個server節點的配置
server { listen 80;#這里是您的外網開放的端口 server_name www.youdomain.com;#這里是您的域名 error_page 405 =200 @405;#可忽略,做了405處理 root /Users/jiaojunkang/Documents/project/baihuiyuan/src/source/xshop/; # 該項要修改為你准備存放相關網頁的路徑 #設置location根節點 location / { index index.php; autoindex on; } #proxy the php scripts to php-fpm php的代理php-fpm設置 location ~ \.php$ { include /usr/local/etc/nginx/fastcgi.conf; proxy_redirect off;   proxy_set_header Host $http_host;   proxy_set_header X-Forwarded-Proto $scheme;   proxy_set_header X-Real-IP $remote_addr;   proxy_set_header Upgrade $http_upgrade;   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 18000;   proxy_send_timeout 18000;   proxy_read_timeout 18000; fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000;#fpm代理端口 } location @405{   add_header Content-Length 0;   add_header Content-Type text/plain;   add_header Access-Control-Allow-Headers *;   add_header Access-Control-Allow-Methods *;   add_header Access-Control-Allow-Origin *;   return 200;   } }

  

5.2 在站點文件中增加test.php 

<?
phpinfo();
?>

  

  

 問題:

Nginx出現could not build the server_names_hash 解決辦法

 在配置文件的http{}段增加一行配置

 

server_names_hash_bucket_size 512;

 

nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

這個警告可以忽略

connect() failed (111: Connection refused) while connecting to upstream

php-fpm沒有啟動,啟動就好了

service php-fpm start

 nginx 403

目標文件夾沒有設置權限

chmod -R 777 floder

  

  

 

三、Centos安全配置

 


 

參考文檔

https://computingforgeeks.com/how-to-install-php-7-3-on-centos-7-fedora/ (php7.3)

https://www.cnblogs.com/leoxuan/p/8329998.html (vsftp)

 https://www.cnblogs.com/kai364/p/6250816.html (mysql)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM