真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CentOS7.2上NginxPHPMariadb環(huán)境搭建-創(chuàng)新互聯(lián)

最近有個(gè)ERP+PHP-web 測(cè)試頁(yè)面環(huán)境部署需求,需要部署nginx+php的cgi+socket的模式、mysql環(huán)境。查看服務(wù)端口是否起來(lái),我們習(xí)慣使用netstat指令查看,所以如果你的系統(tǒng)里尚未安裝netstat,可直接安裝 yum install -y net-tools即可

創(chuàng)新互聯(lián)建站聯(lián)系熱線:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)建站網(wǎng)頁(yè)制作領(lǐng)域十載,包括VR全景等多個(gè)行業(yè)擁有多年設(shè)計(jì)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)建站,為企業(yè)錦上添花!

實(shí)驗(yàn)環(huán)境:

Linux版本:CentOS 7.2

nginx版本:nginx-1.10.1

PHP版本:php-5.6.5

mysql版本:MariaDB-5.5.52

一、首先部署nginx

把相關(guān)依賴包安裝完畢

openssl-devel 、zlib-devel 、pcre-devel

程序默認(rèn)是使用 nobody 身份運(yùn)行的,我們使用 nginx 用戶來(lái)運(yùn)行,首先添加Nginx組和用戶,不創(chuàng)建家目錄,不允許登陸系統(tǒng)

#groupadd  nginx #useradd  -M  -s /sbin/nologin  -g  nginx  nginx

安裝nginx採(cǎi)取的是nginx-1.10.1.tar.gz

# tar xf nginx-1.10.1.tar.gz  # cd nginx-1.10.1

指定安裝目錄和運(yùn)行時(shí)用的屬主和屬組,並啟用狀態(tài)監(jiān)控模塊等

#  ./configure \   --prefix=/usr/local/nginx   \   --pid-path=/usr/local/nginx/logs/nginx.pid  \   --lock-path=/var/lock/nginx.lock \   --user=nginx \   --group=nginx \   --with-http_ssl_module \   --with-http_flv_module \   --with-http_stub_status_module \   --with-http_gzip_static_module \   --http-client-body-temp-path=/var/tmp/nginx/client/ \   --http-proxy-temp-path=/var/tmp/nginx/proxy/ \   --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \   --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \   --http-scgi-temp-path=/var/tmp/nginx/scgi \   --with-pcre

大致的配置結(jié)果

Configuration summary   + using system PCRE library   + using system OpenSSL library   + md5: using OpenSSL library   + sha1: using OpenSSL library   + using system zlib library   nginx path prefix: "/usr/local/nginx"   nginx binary file: "/usr/local/nginx/sbin/nginx"   nginx modules path: "/usr/local/nginx/modules"   nginx configuration prefix: "/usr/local/nginx/conf"   nginx configuration file: "/usr/local/nginx/conf/nginx.conf"   nginx pid file: "/var/run/nginx/nginx.pid"   nginx error log file: "/usr/local/nginx/logs/error.log"   nginx http access log file: "/usr/local/nginx/logs/access.log"   nginx http client request body temporary files: "/var/tmp/nginx/client/"   nginx http proxy temporary files: "/var/tmp/nginx/proxy/"   nginx http fastcgi temporary files: "/var/tmp/nginx/fcgi/"   nginx http uwsgi temporary files: "/var/tmp/nginx/uwsgi"   nginx http scgi temporary files: "/var/tmp/nginx/scgi"

上述配置完,就進(jìn)行編譯安裝

#make && make install  #mkdir /var/tmp/nginx/client/ -pv

等編譯安裝完成后在 /usr/local 下就會(huì)出現(xiàn) nginx 這個(gè)目錄了,進(jìn)入這個(gè)目錄后發(fā)現(xiàn)目錄非常簡(jiǎn)單。

它的配置文件存放在 conf 目錄中,網(wǎng)頁(yè)文件存放在 html 中,日志文件存放在 logs 中,

sbin 目錄下只有一個(gè)可執(zhí)行程序 "nginx"

二、部署php環(huán)境

a. FastCGI是一個(gè)可伸縮地、高速地在HTTP server和動(dòng)態(tài)腳本語(yǔ)言間通信的接口

b. Nginx是個(gè)輕量級(jí)的HTTP server,必須借助第三方的FastCGI處理器才可以對(duì)PHP進(jìn)行解析

c. PHP-FPM是一個(gè)第三方的FastCGI進(jìn)程管理器,它是作為PHP的一個(gè)補(bǔ)丁來(lái)開(kāi)發(fā)的,在安裝的時(shí)候也需要和PHP源碼一起編譯,

也就是說(shuō)PHP-FPM被編譯到PHP內(nèi)核中,因此在處理性能方面更加優(yōu)秀;同時(shí)它在處理高并發(fā)方面也比spawn-fcgi引擎好很多,

因此,推薦Nginx+PHP/PHP-FPM這個(gè)組合對(duì)PHP進(jìn)行解析。

首先安裝php的一些依賴包

yum install -y gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel

然後解壓下載好的tar包

# tar -xvzf php-5.6.5.tar.gz

進(jìn)入到解壓後的php-5.6.5中

# cd php-5.6.5 # ./configure --prefix=/usr/local/php –enable-fpm –enable-mbstring –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd # make && make install

查看php版本

# php -v PHP 5.6.5 (cli) (built: Jan 10 2017 03:53:13)  Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies

如果不行,則直接在php的執(zhí)行文件做個(gè)軟鏈接到/usr/bin/php或者復(fù)制一份至/usr/bin/下面即可查看PHP版本啦

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

或者

#cp -raf /usr/local/php/bin/php  /usr/bin/php

php的配置文件php.ini,復(fù)制一份安裝目錄下的php.ini-development這個(gè)配置文件模板到php的目錄

# cp -raf php-5.6.5/php.ini-development  /usr/local/php/lib/php.ini

當(dāng)然,我們還需要配置一下php-fpm,在安裝php的時(shí)候,已經(jīng)為我們生成了一個(gè)配置模板了,在 /usr/local/php/etc/php-fpm.conf.default了,所以只要復(fù)制這個(gè)模板并改名為php-fpm.conf就可以了,進(jìn)去把 daemonize改成yes,以后臺(tái)服務(wù)的運(yùn)行方式啟動(dòng)。然后捏,whereis php-fpm,

這個(gè)是個(gè)可執(zhí)行文件,直接執(zhí)行php-fpm就可以運(yùn)行了,然后netstat -an| grep php-fpm,看到,果然9000號(hào)端口在監(jiān)聽(tīng)啦

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

配置與優(yōu)化PHP-FPM

PHP的全局配置文件是php.ini,在上面的步驟中,已經(jīng)將此文件復(fù)制到了/usr/local/php/lib/php.ini下??梢愿鶕?jù)每個(gè)應(yīng)用需求的不同,對(duì)php.ini進(jìn)行相應(yīng)的配置。

下面重點(diǎn)介紹PHP-FPM引擎的配置文件。

根據(jù)上面指定的安裝路徑,PHP-FPM的默認(rèn)配置文件為/usr/local/php/etc/php-fpm.conf。

php-fpm.conf是一個(gè)XML格式的純文本文件,其內(nèi)容很容易看明白。這里重點(diǎn)介紹幾個(gè)重要的配置標(biāo)簽:

標(biāo)簽listen_address是配置fastcgi進(jìn)程監(jiān)聽(tīng)的IP地址以及端口,默認(rèn)是127.0.0.1:9000,端口可更改

127.0.0.1:9000

標(biāo)簽display_errors用來(lái)設(shè)置是否顯示PHP錯(cuò)誤信息,默認(rèn)是0,不顯示錯(cuò)誤信息,設(shè)置為1可以顯示PHP錯(cuò)誤信息。

0

標(biāo)簽user和group用于設(shè)置運(yùn)行FastCGI進(jìn)程的用戶和用戶組。需要注意的是,這里指定的用戶和用戶組要和Nginx配置文件中指定的用戶和用戶組一致。

nobody  nobody

標(biāo)簽max_children用于設(shè)置FastCGI的進(jìn)程數(shù)。根據(jù)官方建議,小于2GB內(nèi)存的服務(wù)器,可以只開(kāi)啟64個(gè)進(jìn)程,4GB以上內(nèi)存的服務(wù)器可以開(kāi)啟200個(gè)進(jìn)程。

5

標(biāo)簽request_terminate_timeout用于設(shè)置FastCGI執(zhí)行腳本的時(shí)間。默認(rèn)是0s,也就是無(wú)限執(zhí)行下去,可以根據(jù)情況對(duì)其進(jìn)行修改。

0s

標(biāo)簽rlimit_files用于設(shè)置PHP-FPM對(duì)打開(kāi)文件描述符的限制,默認(rèn)值為1024。這個(gè)標(biāo)簽的值必須和Linux內(nèi)核打開(kāi)文件數(shù)關(guān)聯(lián)起來(lái),例如要將此值設(shè)置為65535,

就必須在Linux命令行執(zhí)行'ulimit -HSn 65536'。

1024

標(biāo)簽max_requests指明了每個(gè)children最多處理多少個(gè)請(qǐng)求后便會(huì)被關(guān)閉,默認(rèn)的設(shè)置是500。

500

標(biāo)簽allowed_clients用于設(shè)置允許訪問(wèn)FastCGI進(jìn)程解析器的IP地址。如果不在這里指定IP地址,Nginx轉(zhuǎn)發(fā)過(guò)來(lái)的PHP解析請(qǐng)求將無(wú)法被接受。

127.0.0.1

管理FastCGI進(jìn)程,在配置完php-fpm后,就可以啟動(dòng)FastCGI進(jìn)程

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

FastCGI進(jìn)程啟動(dòng)后,其監(jiān)聽(tīng)的IP地址和端口也隨即啟動(dòng),可以通過(guò)ps和netstat查看相關(guān)信息

由于Nginx本身不會(huì)對(duì)PHP進(jìn)行解析,因此要實(shí)現(xiàn)Nginx對(duì)PHP的支持,其實(shí)是將對(duì)PHP頁(yè)面的請(qǐng)求交給fastCGI進(jìn)程監(jiān)聽(tīng)的IP地址及端口。

如果把php-fpm當(dāng)做動(dòng)態(tài)應(yīng)用服務(wù)器,那么Nginx其實(shí)就是一個(gè)反向代理服務(wù)器。Nginx通過(guò)反向代理功能實(shí)現(xiàn)對(duì)PHP的解析,這就是Nginx實(shí)現(xiàn)PHP動(dòng)態(tài)解析的原理

Nginx配置文件的路徑為/usr/local/nginx/conf/nginx.conf。下面是在Nginx下支持PHP解析的一個(gè)虛擬主機(jī)配置實(shí)例

# vi /usr/local/nginx/conf/nginx.conf

fastcgi_param指令指定放置PHP動(dòng)態(tài)程序的主目錄,也就是$fastcgi_script_name前面指定的路徑,這里是/usr/local/nginx/html目錄

fastcgi_params文件是FastCGI進(jìn)程的一個(gè)參數(shù)配置文件,在安裝Nginx后,會(huì)默認(rèn)生成一個(gè)這樣的文件,這里通過(guò)include指令將FastCGI參數(shù)配置文件包含了進(jìn)來(lái)

在配置完成Nginx+FastCGI之后,為了保證Nginx下PHP環(huán)境的高速穩(wěn)定運(yùn)行,需要添加一些FastCGI優(yōu)化指令。下面給出一個(gè)優(yōu)化實(shí)例,

將下面代碼添加到Nginx主配置文件中的HTTP層級(jí)

location ~ \.php$ {           root           html;           fastcgi_pass   127.0.0.1:9000;           fastcgi_index  index.php;           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;           include        fastcgi_params;          # fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;               fastcgi_connect_timeout 300;               fastcgi_send_timeout 300;               fastcgi_read_timeout 300;               fastcgi_buffer_size 64k;               fastcgi_buffers 4 64k;               fastcgi_busy_buffers_size 128k;               fastcgi_temp_file_write_size 128k;              # fastcgi_cache TEST;               fastcgi_cache_valid 200 302 1h;               fastcgi_cache_valid 301 1d;               fastcgi_cache_valid any 1m;         }

下面是對(duì)上述代碼的含義進(jìn)行介紹。

第一行代碼是為FastCGI緩存指定一個(gè)文件路徑、目錄結(jié)構(gòu)等級(jí)、關(guān)鍵字區(qū)域存儲(chǔ)時(shí)間和非活動(dòng)刪除時(shí)間。

fastcgi_connect_timeout指定連接到后端FastCGI的超時(shí)時(shí)間。

fastcgi_send_timeout指定向FastCGI傳送請(qǐng)求的超時(shí)時(shí)間,這個(gè)值是已經(jīng)完成兩次握手后向FastCGI傳送請(qǐng)求的超時(shí)時(shí)間。

fastcgi_read_timeout指定接收FastCGI應(yīng)答的超時(shí)時(shí)間,這個(gè)值是已經(jīng)完成兩次握手后接收FastCGI應(yīng)答的超時(shí)時(shí)間。

fastcgi_buffer_size用于指定讀取FastCGI應(yīng)答第一部分需要用多大的緩沖區(qū),這個(gè)值表示將使用1個(gè)64KB的緩沖區(qū)讀取應(yīng)答的第一部分(應(yīng)答頭),可以設(shè)置為fastcgi_buffers選項(xiàng)指定的緩沖區(qū)大小。

fastcgi_buffers指定本地需要用多少和多大的緩沖區(qū)來(lái)緩沖FastCGI的應(yīng)答請(qǐng)求。如果一個(gè)PHP腳本所產(chǎn)生的頁(yè)面大小為256KB,那么會(huì)為其分配4個(gè)64KB的緩沖區(qū)來(lái)緩存;如果頁(yè)面大小大于256KB,那么大于256KB的部分會(huì)緩存到fastcgi_temp指定的路徑中,但是這并不是好方法,因?yàn)閮?nèi)存中的數(shù)據(jù)處理速度要快于硬盤。一般這個(gè)值應(yīng)該為站點(diǎn)中PHP腳本所產(chǎn)生的頁(yè)面大小的中間值,如果站點(diǎn)大部分腳本所產(chǎn)生的頁(yè)面大小為256KB,那么可以把這個(gè)值設(shè)置為“16 16k”、“4 64k”等。

fastcgi_busy_buffers_size的默認(rèn)值是fastcgi_buffers的兩倍。

fastcgi_temp_file_write_size表示在寫入緩存文件時(shí)使用多大的數(shù)據(jù)塊,默認(rèn)值是fastcgi_buffers的兩倍。

fastcgi_cache表示開(kāi)啟FastCGI緩存并為其指定一個(gè)名稱。開(kāi)啟緩存非常有用,可以有效降低CPU的負(fù)載,并且防止502錯(cuò)誤的發(fā)生,但是開(kāi)啟緩存也會(huì)引起很多問(wèn)題,要視具體情況而定。

fastcgi_cache_valid、fastcgi用來(lái)指定應(yīng)答代碼的緩存時(shí)間,實(shí)例中的值表示將200和302應(yīng)答緩存一個(gè)小時(shí),將301應(yīng)答緩存1天,其他應(yīng)答均緩存1分鐘。

測(cè)試Nginx對(duì)PHP的解析功能

這里在/usr/local/nginx/html目錄下創(chuàng)建一個(gè)phpinfo.php文件,內(nèi)容如下:

然后通過(guò)瀏覽器訪問(wèn)http://ip/index.html,默認(rèn)會(huì)在瀏覽器顯示“Welcome to Nginx!”表示Nginx正常運(yùn)行。

接著在瀏覽器中訪問(wèn)http://ip/phpinfo.php,如果PHP能夠正常解析,會(huì)出現(xiàn)PHP安裝配置以及功能列表統(tǒng)計(jì)信息。

三.yum 安裝Mariadb數(shù)據(jù)庫(kù)

刪除全部MySQL/MariaDB相關(guān)的rpm包

MySQL 已經(jīng)不再包含在 CentOS 7 的源中,而改用了 MariaDB;

1、使用rpm -qa | grep mariadb搜索 MariaDB 現(xiàn)有的包:

如果存在,使用rpm -e --nodeps mariadb-*將全部刪除

2、使用rpm -qa | grep mysql搜索 mysql現(xiàn)有的包:

如果存在,使用yum remove mysql mysql-server mysql-libs compat-mysql全部刪除;

我比較推薦使用系統(tǒng)自帶的mariadb,所以直接yum安裝比較方便

3、yum安裝mariadb

# yum install -y mariadb mariadb-server

注:mariadb為數(shù)據(jù)庫(kù)客戶端,mariadb-server是數(shù)據(jù)庫(kù)服務(wù)器端

4、命令啟動(dòng)MariaDB 服務(wù)

# systemctl start mariadb

5、查看mariadb進(jìn)程服務(wù)是否在跑

# ps -ef | grep mariadb root     10131 10095  0 19:24 pts/2    00:00:00 grep --color=auto mariadb mysql    10197 10009  0 Jan19 ?       15:56:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/lib/mysql/zgz.pid --socket=/var/lib/mysql/mysql.sock

6、查看數(shù)據(jù)庫(kù)狀態(tài)

#systemctl status mariadb

7、接著運(yùn)行 mysql_secure_installation初始化配置MariaDB:

#mysql_secure_installation

在這個(gè)階段進(jìn)入時(shí)root初始密碼為空,所以回車即可。我個(gè)人覺(jué)得可以選擇在這個(gè)時(shí)候修改設(shè)定數(shù)據(jù)庫(kù)root密碼,然后接下來(lái)的設(shè)定中,除了Disallow root login remotely 、Remove test database and accesss to it 可以為n,其他都是y

8、登錄 MariaDB 并創(chuàng)建相應(yīng)的數(shù)據(jù)庫(kù)用戶與數(shù)據(jù)庫(kù)

 (1)使用mysql -uroot -p登錄,回車之后會(huì)提示輸入密碼。

 (2)創(chuàng)建新用戶,其中$password填寫自己設(shè)置的密碼。當(dāng)然后面也可以修改;

CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';

 (3)設(shè)置存儲(chǔ)引擎

mariadb[none]> set storage_engine=INNODB;

(4)創(chuàng)建數(shù)據(jù)庫(kù)

 mariadb[none]>create database database_name character set utf8;

(5)設(shè)置用戶權(quán)限

grant all privileges on *.* to 'root'@'%' identified by '$password' with option;

  #上述可以定義為:root用戶可以從任何機(jī)器上遠(yuǎn)程連接數(shù)據(jù)庫(kù)里的所有內(nèi)容且具備高權(quán)限,并且具有授予權(quán)他人遠(yuǎn)程連接的權(quán)限。

經(jīng)過(guò)上述操作步驟,lnmp環(huán)境就算是基本搭建完畢。后面只需要把應(yīng)用代碼放進(jìn)Nginx的html內(nèi),并將應(yīng)用與數(shù)據(jù)庫(kù)連接的配置文件設(shè)定完畢即可。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章題目:CentOS7.2上NginxPHPMariadb環(huán)境搭建-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://weahome.cn/article/dgpdjp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部