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

PHP 環境搭建全攻略:Windows/Linux 手動安裝、Apache/Nginx 整合、phpMyAdmin 部署

     編輯:PHP 相關知識

Windows 手動安裝(非 Installer 版)

1. 解壓與重命名

# 下載 PHP 5.2.1 Non Thread Safe (NTS) for Windows
# 解壓至 C:\php5
# 複製 php.ini-development 為 C:\Windows\php.ini

2. 核心 DLL 複製

# 複製至 C:\Windows\System32\
php5ts.dll
libmysql.dll
# 擴展 DLL(按需)
php_gd2.dll
php_mysql.dll
php_mbstring.dll

3. php.ini 關鍵配置

; 擴展目錄
extension_dir = "C:/php5/ext"

; 啟用擴展
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll

; 會話存儲
session.save_path = "C:/Windows/Temp"

; 短標籤(兼容舊代碼)
short_open_tag = On

; 開發環境顯示錯誤
display_errors = On
error_reporting = E_ALL

; 時區(解決 PHP 5.1+ 8小時偏移)
date.timezone = PRC

; 註冊全局變量(舊代碼兼容,新項目建議 Off)
register_globals = Off

Apache 2.2/2.4 整合 PHP

1. httpd.conf 修改

# 1. 站點根目錄
DocumentRoot "C:/www"

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted


# 2. 默認文檔
DirectoryIndex index.html index.php

# 3. 載入 PHP 模塊(Apache 2.2)
LoadModule php5_module "C:/php5/php5apache2_2.dll"
# Apache 2.4 需對應 php5apache2_4.dll

# 4. PHP 處理器
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# 5. PHPIniDir(可選,指定 php.ini 位置)
PHPIniDir "C:/Windows"

2. 重啟 Apache 驗證

# 建立測試文件 C:\www\phpinfo.php
<?php phpinfo(); ?>

# 瀏覽器訪問 https://localhost/phpinfo.php
# 應顯示 PHP Version、Loaded Configuration File、mysql、gd 等模塊

Linux (CentOS/RedHat) 編譯安裝

# 1. 依賴
yum install -y gcc libxml2-devel libjpeg-devel libpng-devel freetype-devel \
    libicu-devel openldap-devel libzip-devel sqlite-devel oniguruma-devel

# 2. 下載源碼
wget https://www.php.net/distributions/php-8.2.10.tar.gz
tar xzf php-8.2.10.tar.gz && cd php-8.2.10

# 3. 配置編譯
./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm --with-fpm-user=www --with-fpm-group=www \
    --enable-mbstring --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem \
    --enable-inline-optimization --enable-mbregex --enable-pcntl --enable-sockets \
    --with-curl --with-zlib --with-openssl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
    --with-gd --with-jpeg --with-freetype --with-zip --with-libxml

# 4. 編譯安裝
make -j$(nproc) && make install

# 5. 配置文件
cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/www.conf /usr/local/php/etc/php-fpm.d/www.conf

Nginx + PHP-FPM 生產配置

# /usr/local/nginx/conf/nginx.conf
server {
    listen 80;
    server_name example.com;
    root /data/www;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000; # 或 unix:/tmp/php-fpm.sock
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        # 安全:禁止訪問隱藏文件
        location ~ /\.(htaccess|git|svn) { deny all; }
    }
}

phpMyAdmin 部署

# 1. 下載解壓至站點目錄
cd /data/www
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
unzip phpMyAdmin-5.2.1-all-languages.zip
mv phpMyAdmin-5.2.1-all-languages phpmyadmin

# 2. 配置
cd phpmyadmin
cp config.sample.inc.php config.inc.php
# 修改 config.inc.php
$cfg['blowfish_secret'] = 'your_32_chars_random_string'; # cookie 加密密鑰
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'your_mysql_password';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['DefaultLang'] = 'zh_CN';
$cfg['DefaultCharset'] = 'utf-8';

# 3. Nginx 限制訪問(建議)
location /phpmyadmin {
    allow 192.168.1.0/24; # 僅內網
    deny all;
    # ... php location 繼承上層
}

常見問題速查

現象原因解決
空白頁display_errors=Off 且代碼報錯開啟 display_errors 或查錯誤日誌
Call to undefined function mysql_connect()未啟用 php_mysql.dll / php-mysqlndphp.ini 啟用擴展、重啟服務
日期相差 8 小時未設置 date.timezonephp.ini 設置 date.timezone = PRC
上傳大文件失敗upload_max_filesize / post_max_size 過小調整 php.ini、nginx client_max_body_size
Session 不生效session.save_path 無寫權限chmod 777 /tmp 或指定可寫目錄

結語

PHP 環境搭建的核心在於「版本對應、路徑正確、權限到位、配置生效」。Windows 開發機推薦使用集成包;Linux 生產環境建議編譯安裝或使用官方倉庫。無論哪種方式,保留一份標準化的安裝腳本/Ansible Playbook,才能實現環境的可復現、可遷移、可審計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved