centos搭建服務器的方法「centos搭建網站教程」

首先,安裝好NGINX服務器(安裝方法請參加我發佈的「centos7搭建nginx網站服務器一次性通過」文章)。

現在開始配置PHP服務器

一、首先安裝PHP服務

1、安裝php的lib庫

#yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devellibiconv-devel curl-devel mhash mcrypt -y
#yum install freetype-devel libpng-devel gd-devel libcurl-devellibxslt-devel libxslt-devel libmcrypt-devel openssl openssl-devel libbz2-dev -y

3、安裝和下載php

下載地址:
https://www.php.net/releases/,下載安裝包

#wget https://www.php.net/distributions/php-5.5.32.tar.gz 
#tar -zxvf php-5.5.32.tar.gz 
#cd php-5.5.32

開始安裝PHP服務

#./configure \
--prefix=/usr/local/php-5.5.32 \
--with-mysql=/opt/mysql/ \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no

################################################################

./configure 編譯參數詳解

–prefix=/application/php5.3.27 指定php的安裝路徑為/application/php5.3.27

–with-mysql=/application/mysql/

需要指定mysql的安裝路徑,安裝PHP需要的MySQL相關內容。當然如果沒有MySQL軟件包,也可以不單獨安裝,這樣的情況可使用–with-mysql=mysqlnd替代–with-mysql=/application/mysql,因為PHP軟件裏面已經自帶連接MySQL的客戶端工具。

–with-iconv-dir=/usr/local/libiconv libiconv庫,各種字符集間的轉換

–with-freetype-dir 打開對freetype字體庫支持

–with-jpeg-dir 打開對jpeg圖片的支持

–with-png-dir 打開對png圖片的支持

–with-zlib 打開zlib庫的支持,用於http壓縮傳輸

–with-libxml-dir=/usr 打開libxml2庫的支持

–enable-xml

–disable-rpath 關閉額外的運行庫文件

–enable-safe-mode 打開安全模式

–enable-bcmath 打開圖片大小調整,用zabbix監控時會用到該模塊

–enable-shmop

–enable-sysvsem 使用sysv信號機制,則打開此選項


enable-inline-optimization 優化線程

–with-curl 打開curl瀏覽工具的支持

–with-curlwrappers 運用curl工具打開url流

–enable-mbregex

–enable-mbstring 支持mbstring

–with-mcrypt 編碼函數庫

–with-gd 打開gd庫的支持

–enable-gd-native-ttf 支持TrueType字符串函數庫

–with-openl openl的支持,加密傳輸時用到

–with-mhash mhash算法的擴展

–enable-pcntl freeTDS需要用到,可能是鏈接mql

–enable-sockets 打開sockets支持

–with-xmlrpc 打開xml-rpc的c語言

–enable-zip 打開對zip的支持

–enable-soap soap模塊的擴展

–enable-short-tags 開始和標記函數

–enable-zend-multibyte 支持zend的多位元組

–enable-static 生成靜態鏈接庫

–with-xsl 打開XSLT文件支持,擴展libXML2庫,需要libxslt軟件

–enable-ftp 打開ftp的支持

–enable-fpm 表示激活PHP-FPM方式服務,即FactCGI方式運行PHP服務。

–with-fpm-user=www 指定PHP-FPM進程管理的用戶為www,此處最好和Nginx服務用戶統一。

–with-fpm-group=www 指定PHP-FPM進程管理用戶組為www,此處最好和Nginx服務用戶組統一。

################################################################

備註:防錯

#ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib64/
#touch ext/phar/phar.phar

編譯安裝

# make
# make install

創建軟鏈接

#ln -s /usr/local/php-5.5.32 /usr/local/php 

複製php配置文件到安裝目錄

#cp php.ini-production /usr/local/php/etc/php.ini

添加軟鏈接到 /etc目錄

#ln -s /usr/local/php/etc/php.ini  /etc/php.ini 

複製模板文件為php-fpm配置

#cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf 

添加軟件鏈接到 /etc目錄

#ln -s /usr/local/php/etc/php-fpm.conf  /etc/php-fpm.conf  

編輯php配置文件php-fpm.conf

#vim /usr/local/php/etc/php-fpm.conf   
pid = run/php-fpm.pid    
user = nginx
group = nginx

保存並退出

#:wq! 

修改網頁存放文件夾權限

#chown -R nginx.nginx /usr/local/nginx/html 

啟動php-fpm

#/usr/local/php/sbin/php-fpm

二、開始配置nginx

1、找到nginx的配置文件,先備份文件配置文件

#cp /usr/local/nginx/conf/nginx.conf nginx.conf.bak

2、開始編輯配置文件

#vim /usr/local/nginx/conf/nginx.conf
server {
	listen 80;
	server_name  localhost;
	access_log  /var/log/nginx/access.log  main;
	location / {
		root /usr/share/nginx/html;
		index index.php;
	}
	location ~ \.php$ {
		root /usr/share/nginx/html;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		include		fastcgi_params;
	}
     }

(備註:$document_root可以用/usr/share/nginx/html替換)

3、保存配置文件,並重啟

#:wq
#/usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx -s reload 

備註:配置文件nginx.conf的解述如下

【 nginx.conf 】

#運行用戶

user nginx;

#啟動進程, 通常設置成和cpu的數量相等; 用cat /proc/cpuinfo查看cpu信息, cpu cores一欄顯示內核數

worker_processes 1;

#全局錯誤日誌及PID文件(
/usr/local/nginx/logs/error.log)

error_log /var/log/nginx/error.log;

#進程id存儲文件(
/usr/local/nginx/logs/nginx.pid)

pid /var/run/nginx.pid;

#工作模式及連接數上限

events {

use epoll; #epoll是多路復用IO(I/O Multiplexing)中的一種方式,但是僅用於linux2.6以上內核,可以大大提高nginx的性能

worker_connections 1024; #單個後台worker process進程的最大並發鏈接數

# multi_accept on; #在nginx獲得有新連接的通知之後,接受儘可能多的連接, 如果worker_connections設置太低的話,這樣可能會造成擁堵

}

#設定http服務器,利用它的反向代理功能提供負載均衡支持

http {

#設定mime類型,類型由mime.type文件定義,可以打開mime.type來看(
/usr/local/nginx/conf/mime.types)

#MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型.

include /etc/nginx/mime.types;

#默認文件類型以二進制數據傳輸

default_type application/octet-stream;

#設定日誌文件(
/usr/local/nginx/logs/access.log)

access_log /var/log/nginx/access.log;

#關閉在錯誤頁面中的nginx版本數字,這樣對於安全性是有好處的。

server_tokens off;

#sendfile 指令指定 nginx 是否調用 sendfile 函數(zero copy 方式)來輸出文件,對於普通應用,

#必須設為 on,如果用來進行下載等應用磁盤IO中負載應用,可設置為 off,以平衡磁盤與網絡I/O處理速度,降低系統的uptime.

sendfile on;

#告訴nginx在一個數據包里發送所有頭文件,而不一個接一個的發送

#tcp_nopush on;

#給客戶端分配keep-alive連接超時時間

#keepalive_timeout 0;

keepalive_timeout 65;

#告訴nginx不要緩存數據,而是一段一段的發送;當需要及時發送數據時,就應該給應用設置這個屬性,這樣發送一小塊數據信息時就不能立即得到返回值

tcp_nodelay on;

#開啟gzip壓縮

gzip on;

#指定的客戶端禁用gzip功能。我們設置成IE6或者更低版本以使我們的方案能夠廣泛兼容。

gzip_disable “MSIE [1-6]\.(?!.*SV1)”;

#設定請求緩衝

、、 client_header_buffer_size 1k;

、、
large_client_header_buffers 4 4k;

open_file_cache max=100000 inactive=20s; #打開緩存的同時也指定了緩存最大數目,以及緩存的時間; 我們可以設置一個相對高的最大時間,這樣我們可以在它們不活動超過20秒後清除掉。

open_file_cace_valid 30s; #在open_file_cache中指定檢測正確信息的間隔時間

open_file_cache_min_uses 2; #定義了open_file_cache中指令參數不活動時間期間里最小的文件數

open_file_cache_errors on; #指定了當搜索一個文件時是否緩存錯誤信息,也包括再次給配置中添加文件。我們也包括了服務器模塊,這些是在不同文件中定義的。如果你的服務器模塊不在這些位置,你就得修改這一行來指定正確的位置。

#虛擬主機的配置文件

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

#設定負載均衡的服務器列表

upstream mysvr {

#weigth參數表示權值,權值越高被分配到的幾率越大

#本機上的Squid開啟3128端口

server 192.168.8.1:3128 weight=5;

server 192.168.8.2:80 weight=1;

server 192.168.8.3:80 weight=6;

}

server {

#偵聽80端口

listen 80;

#定義使用www.xx.com訪問

server_name www.xx.com;

#設定本虛擬主機的訪問日誌

access_log logs/www.xx.com.access.log main;

#默認請求

location / {

root /root; #定義服務器的默認網站根目錄位置

index index.php index.html index.htm; #定義首頁索引文件的名稱

fastcgi_pass www.xx.com;

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

include /etc/nginx/fastcgi_params;

}

# 定義錯誤提示頁面

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /root;

}

#靜態文件,nginx自己處理

location ~ ^/(images|javascript|js|css|flash|media|static)/ {

root /var/www/virtual/htdocs;

#過期30天,靜態文件不怎麼更新,過期可以設大一點,如果頻繁更新,則可以設置得小一點。

expires 30d;

}

#PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI默認配置.

location ~ \.php$ {

root /root;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;

include fastcgi_params;

}

#設定查看Nginx狀態的地址

location /NginxStatus {

stub_status on;

access_log on;

auth_basic “NginxStatus”;

auth_basic_user_file conf/htpasswd;

}

#禁止訪問 .htxxx 文件

location ~ /\.ht {

deny all;

}

}

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/252324.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-14 02:15
下一篇 2024-12-14 02:15

相關推薦

發表回復

登錄後才能評論