首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

CentOS 7 搭建 LAMP + vsftpd 生產環境完整指南

     編輯:PHP 綜合知識

前言

VPS 相當於獨享服務器,需自行部署 Web 服務、數據庫、PHP、FTP 等。本文基於 CentOS 7(適用 6/8/Stream),記錄標準化安裝流程,生產環境可直接參考。

系統初始化

# 以 root 登錄
ssh root@your_server_ip

# 更新系統
yum update -y

# 安裝常用工具
yum install -y vim wget curl net-tools lsof unzip git

1. 安裝 Apache (httpd)

yum install -y httpd httpd-devel
systemctl start httpd
systemctl enable httpd

# 驗證:瀏覽器訪問 https://IP 出現 Apache 測試頁
# 默認文檔根目錄:/var/www/html

2. 安裝 MariaDB (MySQL 替代品)

yum install -y mariadb-server mariadb-devel
systemctl start mariadb
systemctl enable mariadb

# 安全初始化
mysql_secure_installation
# 按提示:設置 root 密碼、移除匿名用戶、禁止 root 遠程登錄、刪除 test 庫、刷新權限

3. 安裝 PHP 7.4+ (推薦 Remi 源)

# 安裝 EPEL + Remi 源
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 啟用 PHP 7.4 模塊
yum-config-manager --enable remi-php74

# 安裝 PHP 及常用擴展
yum install -y php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json php-opcache php-pdo php-pecl-zip php-pecl-redis php-pecl-memcached

systemctl start php-fpm
systemctl enable php-fpm

# 驗證
echo ' /var/www/html/phpinfo.php
# 瀏覽器訪問 https://IP/phpinfo.php

4. 整合 Apache + PHP-FPM (推薦模式)

# 安裝 mod_proxy_fcgi
yum install -y httpd proxy_fcgi

# 編輯 /etc/httpd/conf.d/php-fpm.conf

    SetHandler "proxy:fcgi://127.0.0.1:9000"


systemctl restart httpd

5. 安裝 vsftpd (安全 FTP)

yum install -y vsftpd

# 編輯 /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
utf8_filesystem=YES

systemctl start vsftpd
systemctl enable vsftpd

# 開放防火牆端口
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-40100/tcp
firewall-cmd --reload

6. 創建 FTP 用戶(禁止 SSH 登錄)

useradd -d /home/webuser -s /sbin/nologin webuser
passwd webuser # 設置密碼

# 設置目錄權限
chown -R webuser:webuser /home/webuser
chmod 755 /home/webuser

7. 設置服務開機自啟

systemctl enable httpd mariadb php-fpm vsftpd

8. 常見問題排查

現象原因解決
PHP 頁面 500 / 空白錯誤未顯示php.ini 設 display_errors=On 或查 /var/log/php-fpm/www-error.log
FTP 連接超時被動模式端口未放行防火牆開放 pasv_min/max_port 範圍
上傳文件權限不足目錄屬主非 webuserchown -R webuser:webuser /var/www/html
MySQL 遠程連不上bind-address / 防火牆配置 bind-address=0.0.0.0,開放 3306,創建 user@'%'

生產環境加固建議

  1. 修改 SSH 端口、禁用 root 登錄、啟用密鑰認證;
  2. 配置 fail2ban 防暴力破解;
  3. 定時備份數據庫、代碼、上傳文件至異地;
  4. 啟用 HTTPS(Let's Encrypt + Certbot);
  5. PHP 禁用危險函數 disable_functions=exec,passthru,shell_exec,system,proc_open,popen;
  6. 設置 open_basedir 限制腳本訪問目錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved