很多開發者習慣用 LNMP 一鍵安裝包,但理解每個組件的安裝與配置細節才能在故障排查、性能調優、安全加固時游刃有餘。本文演示在 CentOS 6.5 與 7 上,通過 yum 手動安裝 Apache + PHP 環境的標準流程。
# 查看系統版本 cat /etc/redhat-release # 或 lsb_release -a
yum install httpd -y
安裝過程中輸入 y 確認。若報錯 You could try using --skip-broken,請更換國內 yum 源(阿里云、清華、網易等)後重試。
| 操作 | CentOS 7 (systemd) | CentOS 6 (SysVinit) |
|---|---|---|
| 啟動 | systemctl start httpd 或 apachectl start | service httpd start 或 /etc/init.d/httpd start |
| 停止 | systemctl stop httpd | service httpd stop |
| 重啟 | systemctl restart httpd | service httpd restart |
| 開機自啟 | systemctl enable httpd | chkconfig httpd on |
| 查看狀態 | systemctl status httpd | service httpd status |
瀏覽器訪問 https://服務器公網IP,出現 Apache 測試頁面即成功。
yum install php -y
注意:默認 yum 源(base/epel)提供的 PHP 版本可能較舊(如 5.4/5.6)。安裝前可用 yum info php 查看版本。
# CentOS 7 systemctl restart httpd # 或 apachectl restart # CentOS 6 service httpd restart
echo '<?php phpinfo(); ?>' > /var/www/html/info.php
瀏覽器訪問 https://IP/info.php,查看 PHP 信息頁面。**驗證後請刪除該文件!**
默認源版本過舊時,需啟用 Remi 源:
# CentOS 7 yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install -y yum-utils yum-config-manager --enable remi-php74 # 或 remi-php81 # CentOS 6 yum install -y https://rpms.remirepo.net/enterprise/remi-release-6.rpm # 同樣啟用對應 remi-phpXX # 安裝 PHP 及常用擴展 yum install -y php php-cli php-fpm php-mysqlnd php-pdo php-gd php-mbstring php-xml php-json php-opcache php-curl php-zip php-intl php-bcmath # 啟用 php-fpm(生產環境推薦 Nginx + php-fpm) systemctl enable php-fpm systemctl start php-fpm
; 錯誤處理 display_errors = Off log_errors = On error_log = /var/log/php-fpm/error.log ; 性能 opcache.enable = 1 opcache.memory_consumption = 128 opcache.max_accelerated_files = 10000 realpath_cache_size = 4096k realpath_cache_ttl = 7200 ; 安全 expose_php = Off cgi.fix_pathinfo = 0 session.cookie_httponly = 1 session.cookie_secure = 1 ; 僅 HTTPS ; 上傳 upload_max_filesize = 50M post_max_size = 50M max_file_uploads = 20 ; 執行時間 max_execution_time = 30 memory_limit = 256M
| 防火牆類型 | 命令 |
|---|---|
| firewalld (CentOS 7 默認) | firewall-cmd --permanent --add-service=http --add-service=https && firewall-cmd --reload |
| iptables (CentOS 6) | iptables -I INPUT -p tcp --dport 80 -j ACCEPT && service iptables save |
核心觀點:手動搭建不僅是為了「不依賴一鍵包」,更是為了掌握每個組件的版本選擇、配置參數含義、服務管理方式、日誌位置、防火牆策略。這些知識在遷移雲服務器、排查 502 錯誤、應對安全掃描、實現藍綠部署時極其關鍵。
生產環境建議:Nginx + php-fpm 替代 Apache + mod_php,性能更高、資源佔用更低、配置更靈活。