Gentoo 下安裝與配置Nginx+ MySQL + PHP (fastcgi) 環境步驟分享

來源:互聯網
上載者:User

一、安裝 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;' or '\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

配置並編譯 PHP(根據自身需要):

複製代碼 代碼如下: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
make && make install

PHP 設定檔:

複製代碼 代碼如下:cp php.ini-production /usr/local/php/etc/php.ini

PHP-FPM 設定檔:
vim /usr/local/php/etc/php-fpm.conf
修改 listen_address 為 socket 地址(socket 比 IP:Port 高效):
<value name="listen_address">/tmp/php-fpm.sock</value>

修改使用者組和使用者名稱:

複製代碼 代碼如下:Unix user of processes
<value name="user">www</value>
Unix group of processes
<value name="group">www</value>

修改 PHP-FPM 運行模式為 Apache-Like 模式:

複製代碼 代碼如下:<value name="style">apache-like</value>
<value name="StartServers">1</value>
<value name="MinSpareServers">1</value>
<value name="MaxSpareServers">5</value>

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
rc-update add php-fpm default

測試 Nginx+PHP

添加測試網站目錄:

複製代碼 代碼如下:mkdir -p /work/www/test
echo "<?php phpinfo(); ?>" > /work/www/test/index.php

添加測試網站的 Nginx 配置:
vim /etc/nginx/nginx.conf

注釋掉 server 段,在 http 段尾部加上:
include sites/*.enable;

之後每個網站的設定檔都以一個獨立的檔案儲存在 /etc/nginx/sites 目錄下,方便管理和維護。
mkdir /etc/nginx/sites
vim /etc/nginx/test.enable

test.enable 配置如下:

複製代碼 代碼如下: server {
listen 80;
server_name test.local;
access_log /work/www/logs/test.access.log main;
error_log /work/www/logs/test.error.log;
location / {
root /work/www/test;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /work/www/test;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fpm.sock;
}
}

建立儲存日誌目錄:
mkdir /work/www/logs

本地 hosts 中添加記錄:
192.168.1.10 test.local
192.168.1.10 是我這台 Gentoo 機器的 IP。

重新載入 Nginx 配置
/etc/init.d/nginx reload

訪問:
http://test.local/
顯示正常的 phpinfo 資訊,則安裝完成。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.