一、安裝nginx
一條指令搞定:
use=fastcgi emerge nginx
新使用者和群組:
groupadd www
useradd www - g www
nginx 安裝好後預設會新增nginx 群組和nginx 用戶,不過我本身還是習慣新建個www 群組和www 用戶來做http 服務用戶。若今後 http 伺服器更換為 apache 或是 lighttpd 時,使用者名稱和使用者群組可以不變。
二、安裝 mysql
在裝 php 前必須先裝 mysql,因為 php 裡的 mysql 操作函數需要 mysql 頭檔和函式庫的支援。
emerge dev-db/mysql
初始化資料庫:
資料庫的預設路徑為 /var/lib/mysql,本文的安裝把它放在 /work/db/3306/data 中。
複製程式 程式碼如下:
mkdir -p /work/db/3306/data
mysql_install_db --basedir=/usr --datadir=/work/db/ 3306/data --user=mysql
修改設定檔:
vim /etc/mysql/my.cnf
將datadir 修改為:
datadir = /work/db /3306/data
啟動mysql:
/etc/init.d/mysql start
修改root 密碼:
mysqladmin -uroot password hily
#測試資料庫:
mysql -uroot -p
顯示:
gentoo setup # mysql -uroot -p
enter password:
welcome to the mysql monitor. commands end with ; or \ g.
your mysql connection id is 2
server version: 5.0.84-log gentoo linux mysql-5.0.84-r1
type 'help;' 或 '\h' for help. type '\c' to clear the current input statement.
mysql>
測試成功!
三、安裝 php
以 fastcgi 方式來執行 php,需要安裝 php-fpm。
目前最後一個需要以 patch 形式安裝 php-fpm 的 php 版本是 5.3.0,php 5.3.2 版本中將可能直接整合 php-fpm。
這裡我就使用 php 5.3.0 來安裝。
因為 gentoo 中目錄還沒有整合 php-fpm 的 portage,所以下面直接透過原始碼編譯形式進行安裝。
下載php 5.3.0:
wget http://cn.php.net/distributions/php-5.3.0.tar.bz2
下載php-fpm 補丁:
wget http://php-fpm.org/downloads/php-5.3.0-fpm-0.5.12.diff.gz
解壓縮php 並打fpm 補丁:
tar jxf php-5.3.0 .tar.bz2
gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1
安裝php 所需的函式庫(依照自身需要):
emerge libpng
emerge jpeg
emerge freetype
use="png jpeg truetype" emerge gd
或直接:
use="png jpeg truetype" emerge gd
use="png jpeg truetype" emerge gd
複製程式碼 程式碼如下:
cd php-5.3.0
./configure --prefix= /usr/local/php --with-config-file-path=/usr/local/php/etc
--with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --enable -fpm --enable-sockets
--enable-pdo --with-pdo-mysql=/usr --with-gd --with-jpeg-dir --with-png-dir
--with -freetype-dir --with-zlib
複製程式碼 程式碼如下:
php-fpm 設定檔:
vim /usr/local/php/etc/php-fpm.conf
#修改使用者使用者群組與使用者名稱:
複製程式碼 程式碼如下:
unix user of processes
unix group of processes
修改php-fpm 運作模式為apache-like 模式:
複製程式碼 程式碼如下:
#
startservers、minspareservers 和maxspareservers 根據實際需要設置,我這裡是
#startservers、minspareservers 和maxspareservers 根據實際需要設置,我這裡是虛擬機,沒必要太大。
php-fpm 啟動腳本:
cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm
啟動php-fpm
/etc/init.d/php-fpm start##新增啟動服務
複製程式碼 程式碼如下:
rc-update add nginx default
rc-update add mysql default
測試nginx php
##新增測試網站目錄:#複製程式碼 程式碼如下:
mkdir -p /work/www/test
echo "" > /work/www/test/index.php
#新增測試站點的nginx 配置:
註解掉server 段,在http 段尾部加上:
之後每個網站的設定檔都以一個獨立的檔案保存在 /etc/nginx/sites 目錄下,方便管理和維護。
mkdir /etc/nginx/sites
vim /etc/nginx/test.enable
test.enable 設定如下:
#複製程式碼 程式碼如下:
server {
listen 80;
server_name test.local;
access_log /work//logs/test.acc/log .error.log;
location / {
root /work/www/test;
index index.html index.htm index.php;
root /work/www/test;
fastcgi_index index.php;
fastcgi_param script_filename fastcgi_params;
fastcgi_pass unix:/tmp/php-fpm.sock;
}
}
新儲存日誌目錄:
mkdir /work/www/logs
本機hosts 中新增記錄:
192.168.1.10 test.local
重新載入nginx 設定
/etc/init.d/nginx reload
存取:
http://test.local/
以上是怎麼安裝與設定Nginx+MySQL+PHP環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

MySQL是一個開源的關係型數據庫管理系統,適用於數據存儲、管理、查詢和安全。 1.它支持多種操作系統,廣泛應用於Web應用等領域。 2.通過客戶端-服務器架構和不同存儲引擎,MySQL高效處理數據。 3.基本用法包括創建數據庫和表,插入、查詢和更新數據。 4.高級用法涉及復雜查詢和存儲過程。 5.常見錯誤可通過EXPLAIN語句調試。 6.性能優化包括合理使用索引和優化查詢語句。

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

InnoDB的鎖機制包括共享鎖、排他鎖、意向鎖、記錄鎖、間隙鎖和下一個鍵鎖。 1.共享鎖允許事務讀取數據而不阻止其他事務讀取。 2.排他鎖阻止其他事務讀取和修改數據。 3.意向鎖優化鎖效率。 4.記錄鎖鎖定索引記錄。 5.間隙鎖鎖定索引記錄間隙。 6.下一個鍵鎖是記錄鎖和間隙鎖的組合,確保數據一致性。

MySQL查询性能不佳的原因主要包括没有使用索引、查询优化器选择错误的执行计划、表设计不合理、数据量过大和锁竞争。1.没有索引导致查询缓慢,添加索引后可显著提升性能。2.使用EXPLAIN命令可以分析查询计划,找出优化器错误。3.重构表结构和优化JOIN条件可改善表设计问题。4.数据量大时,采用分区和分表策略。5.高并发环境下,优化事务和锁策略可减少锁竞争。

在數據庫優化中,應根據查詢需求選擇索引策略:1.當查詢涉及多個列且條件順序固定時,使用複合索引;2.當查詢涉及多個列但條件順序不固定時,使用多個單列索引。複合索引適用於優化多列查詢,單列索引則適合單列查詢。

要優化MySQL慢查詢,需使用slowquerylog和performance_schema:1.啟用slowquerylog並設置閾值,記錄慢查詢;2.利用performance_schema分析查詢執行細節,找出性能瓶頸並優化。

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版