當前位置:首頁 » 編程軟體 » lnmp的一鍵安裝腳本

lnmp的一鍵安裝腳本

發布時間: 2023-05-29 01:47:26

A. 502 Bad Gateway nginx/1.4.6 怎麼解決

遇到502問題,可以優先考慮按照以下兩個步驟去解決。
1、查看當前的php FastCGI進程數是否夠用:

復制代碼 代碼如下:
netstat -anpo | grep "php-cgi" | wc -l

如果實際使用的「FastCGI進程數」接近預設的「FastCGI進程數」,那麼,說明「FastCGI進程數」不夠用,需要增大。
2、部分PHP程序的執行時間超過了Nginx的等待時間,可以適當增加nginx.conf配置文件中FastCGI的timeout時間,例如:

復制代碼 代碼如下:
http { fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ...... } ......

php.ini中memory_limit設低了會出錯,修改了php.ini的memory_limit為64M,重啟nginx,發現好了,原來是PHP的內存不足了。
如果這樣修改了還解決不了問題,可以參考下面這些方案:
一、max-children和max-requests
一台伺服器上運行著nginx php(fpm) xcache,訪問量日均 300W pv左右。
最近經常會出現這樣的情況:php頁面打開很慢,cpu使用率突然降至很低,系統負載突然升至很高,查看網卡的流量,也會發現突然降到了很低。這種情況只持續數秒鍾就恢復了。
檢查php-fpm的日誌文件發現了一些線索。

復制代碼 代碼如下:
Sep 30 08:32:23.289973 [NOTICE] fpm_unix_init_main(), line 271: getrlimit(nofile): max:51200, cur:51200 Sep 30 08:32:23.290212 [NOTICE] fpm_sockets_init_main(), line 371: using inherited socket fd=10, 「127.0.0.1:9000″ Sep 30 08:32:23.290342 [NOTICE] fpm_event_init_main(), line 109: libevent: using epoll Sep 30 08:32:23.296426 [NOTICE] fpm_init(), line 47: fpm is running, pid 30587

在這幾句的前面,是1000多行的關閉children和開啟children的日誌。
原來,php-fpm有一個參數 max_requests,該參數指明了,每個children最多處理多少個請求後便會被關閉,默認的設置是500。因為php是把請求輪詢給每個 children,在大流量下,每個childre到達max_requests所用的時間都差不多,這樣就造成所有的children基本上在同一時間 被關閉。
在這期間,nginx無法將php文件轉交給php-fpm處理,所以cpu會降至很低(不用處理php,更不用執行sql),而負載會升至很高(關閉和開啟children、nginx等待php-fpm),網卡流量也降至很低(nginx無法生成數據傳輸給客戶端)
解決問題很簡單,增加children的數量,並且將 max_requests 設置未 0 或者一個比較大的值:
打開 /usr/local/php/etc/php-fpm.conf調大以下兩個參數(根據伺服器實際情況,過大也不行)

復制代碼 代碼如下:
<value>5120</value><value>600</value>

然後重啟php-fpm。
二、增加緩沖區容量大小
將nginx的error log打開,發現「pstream sent too big header while reading response header from upstream」這樣的錯誤提示。查閱了一下資料,大意是nginx緩沖區有一個bug造成的,我們網站的頁面消耗佔用緩沖區可能過大。參考老外寫的修 改辦法增加了緩沖區容量大小設置,502問題徹底解決。後來系統管理員又對參數做了調整隻保留了2個設置參數:client head buffer,fastcgi buffer size。
三、request_terminate_timeout
如果主要是在一些post或者資料庫操作的時候出現502這種情況,而不是在靜態頁面操作中常見,那麼可以查看一下php-fpm.conf設置中的一項:
request_terminate_timeout
這個值是max_execution_time,就是fast-cgi的執行腳本時間。
0s
0s為關閉,就是無限執行下去。(當時裝的時候沒仔細看就改了一個數字)問題解決了,執行很長時間也不會出錯了。優化fastcgi中,還可以改改這個值5s 看看效果。
php-cgi進程數不夠用、php執行時間長、或者是php-cgi進程死掉,都會出現502錯誤。Nginx 502 Bad Gateway錯誤的解決辦法2
今天,我的VPS頻繁提示Nginx 502 Bad Gateway錯誤了,重啟了VPS解決之後又出現,很煩。有點想不通,前兩天網站達到了1290的訪問量都沒有出什麼問題,怎麼這次就出現了502 Bad Gateway?郁悶啊!!!在搜索了很久,終於找到了不少相關的答案,希望修改之後不會再出現這個錯誤了。唉,既然在網上找了那麼久的答案,那當然得把有用的東西記錄下,免得我下次再去谷歌~
由於我是採用了LNMP一鍵安裝包 ,出了問題肯定要先到官方論壇去搜索下了,真好,官方有個這樣的置頂帖,大家先瞧瞧。
LNMP一鍵安裝包官方的:
第一種原因:目前lnmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。解決辦法:可以嘗試根據lnmp一鍵安裝包中的腳本手動安裝一下,看看是什麼錯誤導致的。
第二種原因:
在php.ini里,eaccelerator配置項一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway
第三種原因:
在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。
第四種原因:
php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 改為300
第五種原因:
磁碟空間不足,如mysql日誌佔用大量空間
第六種原因:
查看php-cgi進程是否在運行
也有網友給出了另外的解決辦法:
Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但是由於某種原因(一般是讀取資源的問題)沒有執行完畢而導致PHP-CGI進程終止,一般來說Nginx 502 Bad Gateway和php-fpm.conf的設置有關。
php-fpm.conf有兩個至關重要的參數,一個是max_children,另一個是request_terminate_timeout,但是這個值不是通用的,而是需要自己計算的。在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。
計算的方式如下:
如果你的伺服器性能足夠好,且寬頻資源足夠充足,PHP腳本沒有系循環或BUG的話你可以直接將 request_terminate_timeout設置成0s。0s的含義是讓PHP-CGI一直執行下去而沒有時間限制。而如果你做不到這一點,也就 是說你的PHP-CGI可能出現某個BUG,或者你的寬頻不夠充足或者其他的原因導致你的PHP-CGI假死那麼就建議你給 request_terminate_timeout賦一個值,這個值可以根據伺服器的性能進行設定。一般來說性能越好你可以設置越高,20分鍾-30分 鍾都可以。而max_children這個值又是怎麼計算出來的呢?這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少。 設置max_children也需要根據伺服器的性能進行設定,一般來說一台伺服器正常情況下每一個php-cgi所耗費的內存在20M左右。
按照官方的答案,排查了相關的可能,並結合了網友的答案,得出了下面的解決辦法。
1、查看php fastcgi的進程數(max_children值)
代碼:netstat -anpo | grep 「php-cgi」 | wc -l
5(假如顯示5)
2、查看當前進程
代碼:top觀察fastcgi進程數,假如使用的進程數等於或高於5個,說明需要增加(根據你機器實際狀況而定)
3、調整/usr/local/php/etc/php-fpm.conf 的相關設置
<value name=」max_children」>10</value><value name=」request_terminate_timeout」>60s</value>max_children最多10個進程,按照每個進程20MB內存,最多200MB。request_terminate_timeout執行的時間為60秒,也就是1分鍾。

B. php出現502是什麼問題

502 Bad Gateway是一種報錯提示,這一錯誤並不意味著上游伺服器已關閉(無響應網關/代理),而是上游伺服器和網關/代理不同意的協議交換數據。

  1. 第一種原因:目前lnmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。解決辦法:可以嘗試根據lnmp一鍵安裝包中的腳本手動安裝一下,看看是什麼錯誤導致的。

  2. 第二種原因:在php.ini里,eaccelerator配置項一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway

  3. 第三種原因:在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。

  4. 第四種原因:php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time改為300。

  5. 第五種原因:磁碟空間不足,如mysql日誌佔用大量空間。

  6. 第六種原因:查看php-cgi進程是否在運行。

另外的解決辦法:

  1. Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但陸衫凳是由於某種原因(一般是讀取資源的問題)沒有執行完畢而導致PHP-CGI進程終止,一般來說Nginx 502 Bad Gateway和php-fpm.conf的設置有關。

  2. php-fpm.conf有兩個至關重要的參數,一個是max_children,另一個是request_terminate_timeout,但是這個值不是通用的,而是需要自己計算的。

  3. 在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。

  4. 計算的方式如下:如果伺服器性能足夠好,且寬頻資源足夠充足,PHP腳本沒有系循環或BUG的話可以直接將request_terminate_timeout設置成0s。0s的含義是讓PHP-CGI一直執行下去而沒有時間限制。如果做不到這一點,也就 是說PHP-CGI可塌碧能出現某個BUG,或者寬頻不夠充足或者其他的原因導致PHP-CGI假死那麼就建議給request_terminate_timeout賦一個值,這個值可以根據伺服器的性能進行設定。一般來說性能越好可以設置越高,20分鍾-30分 鍾都可以。

  5. 而max_children這個值又是怎麼計算出來的呢?這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少。 設置max_children也需要根據伺服器的性能進行設定,一般來說一台伺服器正常情況下每一個php-cgi所耗費的內存在20M左右。

  6. 按照官方的答案,排查了相關的可能,並結合了網友的答案,得出了下面的解決辦法:

    1、查看php fastcgi的進程數(max_children值)代碼:netstat -anpo | grep 「php-cgi」 | wc -l

    5(假如早旅顯示5)

    2、查看當前進程,代碼:top觀察fastcgi進程數,假如使用的進程數等於或高於5個,說明需要增加(根據機器實際狀況而定)

    3、調整/usr/local/php/etc/php-fpm.conf的相關設置

    <value name=」max_children」>10</value>

    <value name=」request_terminate_timeout」>60s</value>

    max_children最多10個進程,按照每個進程20MB內存,最多200MB。

    request_terminate_timeout執行的時間為60秒,也就是1分鍾。

C. 如何在VPS伺服器上快速搭建一個Web伺服器

你好,為你推薦LNMP一鍵部署腳本,下載後,解壓,直接執行即可安裝。無需其他操作。

LNMP一鍵安裝包是什麼?

LNMP一鍵安裝包是一個用linuxShell編寫的可以為CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/MintLinuxVPS或獨立主機安裝LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生產環境的Shell程序。

為什麼需要它?

編譯安裝需要輸入大量的命令,如果是配置生產環境需要耗費大量的時間。不會Linux的站長或Linux新手想使用Linux作為臘頃兆生產環境

有什麼優勢和功能?

無需一個輪租一個的輸入命令,無需值守,編譯安裝優化編譯參數,提高性能,解決不必要的軟體間依賴,特別針對配置自動優化。支持自定義Nginx、PHP編譯參數及網站和資料庫目錄、支持生成LetseEcrypt證書、LNMP模式支持多PHP版本、支持單獨安裝Nginx/MySQL/MariaDB/Pureftpd伺服器,同時提供一些實用的輔助工具如:虛擬主機管理、FTP用戶管理、Nginx、MySQL/MariaDB、PHP的升級、常用緩存組件Redis/Xcache等的安裝、重置MySQLroot密碼、502自動重啟、日誌切割、SSH防護DenyHosts/Fail2Ban、備份等許多實用腳本。

如何獲取?

你可以自由下載並使用它在VPS或獨立伺服器上,做為真正的生產環境或測試環境。我們為什麼採用LNMP這種架構?採用Linux、PHP、MySQL的優點我們不必多說。

Nginx是一個小巧而高效的Linux下的Web伺服器軟體,是由IgorSysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,已經在一些乎橋俄羅斯的大型網站上運行多年,目前很多國內外的門戶網站、行業網站也都在是使用Nginx,相當的穩定。Nginx相當的穩定、功能豐富、安裝配置簡單、低系統資源

D. 阿里雲安裝lnmpa

官方地址: https://lnmp.org/

LNMP一鍵安裝包是一個用Linux Shell編寫的可以為CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或獨立主機安裝LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生產環境的Shell程序。

流程就是:安裝lnmp,然後再安裝pureftp,開放相應的埠,對各個應用伺服器進行設置。

各個應用伺服器進行設置:

對pureftp進行防火牆埠設置、阿里雲安全組規則埠開放,用主動模式去連接ftp。

對mysql進行防火牆埠設置、阿里雲安全組規則埠開放、設置root用戶可遠程ip連接。

對nginx進行防火牆埠設置、遠程ip連接、阿里雲安全組規則埠開放。

安裝過程中,我選擇安裝 mysql 5.7,php 5.6,Jemalloc內存分配器

一些提示操作:可以查看/usr/lnmp/README,從lnmp1.4開始,不再安裝pureftp,需要自己手動安裝。見下文 安裝PureFtp篇

搭建好lnmpa後,通過外網ip訪問nginx,mysql,pure-ftp等有可能因埠問題訪問失敗,我們需要對防火牆進行設置。包括開啟防火牆、開機自動啟動防火牆、開放應用伺服器對應的埠;

另附firewall的其他命令操作

開放了防火牆埠還不夠,還需要再阿里雲安全組規則頁面進行再次開放埠。

我分別開放了21、22、80、88、3306、8080埠。

1、阿里雲安全組規則,開放80埠

2、阿里雲安全組規則,開放80埠

安裝後, -h localhost 可以訪問mysql,但是 -h 公網ip 無法正常登錄mysql,提示2003錯誤。

網上很多說法是「因為centos7系統,即使關閉 firewalld,除了22埠,其餘埠無法被外界訪問,本地訪問正常。」但經過測試,即使關了防火牆,訪問其他埠時,未在==阿里雲安全組規則==配置,也會被阿里雲安全組規則進行擋住而無法訪問。針對該問題,需要進行下面三步操作設置。

1、打開防火牆,然後開放防火牆3306埠

2、阿里雲安全組規則,開放3306埠

3、mysql授權任何ip都可以遠程該mysql伺服器

默認LNMP是不安裝FTP伺服器的,如需要FTP伺服器: https://lnmp.org/faq/ftpserver.html

我選擇安裝pureftpd ,當然也可以不按照pureftpd,直接使用xshell的xftp去操作。

這個ftp虛擬用戶為 系統用戶 下的虛擬用戶。就是說,你通過ftp客戶端登錄後上傳的文件的所有者(許可權)為該系統用戶。比如,將ftp用戶test綁定到系統用戶cjf下,那麼登錄ftp後,上傳的伺服器的文件所有者是cjf。這樣就可以不用給你該系統用戶的登錄密碼,免得你登錄伺服器去干其他壞事。

解決方法:更改Filezilla設置,編輯-設置-連接-FTP-被動模式,將「使用伺服器的外部ip地址來代替」改為「回到主動模式」即可。 ----------就是嘗試==被動模式==不行的話,就用==主動模式==去連接。

以前總使用 ftp 公網ip ,登錄後操作總是提示227,按網上教程說,把 ftp> passive 關閉被動模式,但還是無法正常使用,這是因為在 ftp 公網ip 會因為==ForcePassiveIP沒開啟==,==安全組埠沒設置==而出現被動模式阻塞。相比 ftp 局部網內部ip 這種方式,更麻煩,且伺服器開放了更多的埠,更加不安全。不建議這種操作。

如果你不想了解什麼是主動模式、什麼是被動模式的話,就記住:

關閉passive(不用操作,只是補充知識點)

主動模式和被動模式:

【內網穿透筆記】FTP映射出現227 Entering Passive Mode錯誤命令原因及解決方法

安裝lnmpa後,可以在 /usr/local/apache/conf/httpd.conf 中看到,apache的根目錄Directory也被設置到了 /home/wwwroot/deafualt,而非${apche_home}/htdocs。

在lnmpa的架構中,默認情況下,apache被用來提供訪問php的伺服器。

如果想讓nginx反向代理,通過80埠就可以訪問tomcat的項目的話,可以進行設置

vim /usr/local/nginx/conf/nginx.conf

vim tomcat-users.xml

通過putty或者SecureCRT安裝lnmp時,網路突然掉線或者不小心putty被關掉等等原因,造成lnmp安裝過程被中斷怎麼辦,其實防止這種現象很簡單,只要在安裝lnmp前執行screen命令就可以了。

詳細介紹: https://www.ibm.com/developerworks/cn/linux/l-cn-screen/

screen操作演示

微信公眾平台消息介面開發在線調試系統

E. CentOS 7 用戶怎樣安裝 LNMP

配置安裝
基於 YUM 特性,可以簡單快速的安裝 LNMP 環境。

配置 YUM 源
CentOS 7 的 默認 YUM 源里的軟體包版本可能不是最新的,如果要安裝最新的軟體包就得配置下 YUM 源。
配置 YUM 源可以通過直接安裝 RPM (Red Hat Package Manager) 包,或者修改 Repository,本文講解通過安裝 RPM 方式。
首先需要安裝 EPEL ( Extra Packages for Enterprise Linux ) YUM 源,用以解決部分依賴包不存在的問題:
yum install -y epel-release

接著是 MySQL YUM 源,MySQL 官網給出了配置教程,因為本文章講解的是 CentOS 7,我們只需要安裝對應的 RPM 包就行了。
安裝 RPM 包前需要導入 RPM-GPG-KEY 文件,不然安裝過程會出錯。
將 MySQL RPM-GPG-KEY 另存為 mysql_pubkey.asc 並導入 :
rpm --import mysql_pubkey.asc

導入後安裝 CentOS 7 的 MySQL RPM 包:
rpm -Uvh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

然後是 PHP YUM 源,PHP 最新的 RPM 包,可以使用 Remi's RPM repository。
導入 PHP RPM-GPG-KEY (remi):
rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi

安裝 PHP RPM (remi) 包:
rpm -Uvh http://remi.mirrors.arminco.com/enterprise/remi-release-7.rpm

最後是 Nginx YUM 源,Nginx 官網也給出了配置教程。
導入 Nginx RPM-GPG-KEY:
rpm --import http://nginx.org/packages/keys/nginx_signing.key

安裝 Nginx RPM 包:
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

到目前為止,YUM 源已經安裝好了 ,接著進行下一步的配置。
MySQL YUM 源默認是啟用的 MySQL-5.6,PHP YUM 源默認都沒有啟用,Nginx YUM 源默認是啟用的 Nginx-1.8。
定位到 /etc/yum.repos.d/,對 後綴為 .repo 的文件進行編輯,修改 enabled 為 1 以啟用。
啟用 PHP-7.0 :
1、修改 /etc/yum.repos.d/remi.repo,將 [remi] 和 [remi-test] 下面的 enabled=0 改為 enabled=1;
2、修改 /etc/yum.repos.d/remi-php70.repo,將 [remi-php70] 下面的 enabled=0 改為 enabled=1;
sed -i "/remi\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo
sed -i "/test\/mirror/{n;n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo
sed -i "/php70\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi-php70.repo

到這一步 YUM 配置就算完成了,清除並生成 YUM 緩存使之生效:
yum clean all
yum makecache

安裝 MySQL + PHP + Nginx + phpMyAdmin
YUM 源已經配置好了,現在直接安裝 MySQL + PHP + Nginx + phpMyAdmin:
yum install -y mysql-community-server nginx php php-bcmath php-fpm php-gd php-json php-mbstring php-mcrypt php-mysqlnd php-opcache php-pdo php-pdo_dblib php-pgsql php-recode php-snmp php-soap php-xml php-pecl-zip phpMyAdmin

註:上面安裝的 php-* 可以根據實際使用情況選擇安裝
安裝完成後,進行下一步的環境配置,MySQL 配置文件在 /etc/my.cnf.d/,PHP 配置文件在 /etc/php-fpm.d/,Nginx 配置文件在 /etc/nginx/ ,phpMyAdmin 的配置文件在 /etc/phpMyAdmin/。

配置 MySQL
MySQL 配置文件保持默認,運行一次安全配置即可。
啟動 MySQL:
systemctl start mysqld.service

安全配置 MySQL:
設置 root 密碼、刪除匿名用戶、禁止 root 遠程登錄、刪除 test 資料庫、重新載入許可權表,一路 Y 下去
mysql_secure_installation

配置 PHP
PHP 默認配置文件使用的是監聽 9000 埠進行通信,針對小型單一、沒有做負債均衡的伺服器,可以使用 unix sock 方式通信。
使用 unix sock 方式需要修改 PHP 配置文件:
#更換監聽方式
listen = /dev/shm/php-fpm-default.sock

#監聽隊列最大長度為不限
listen.backlog = -1
#指定監聽用戶和用戶組(需存在)
listen.owner = www
listen.group = www

啟動 PHP-FPM:
systemctl start php-fpm.service

配置 Nginx
讓伺服器默認訪問顯示為 400 提示頁。
#新建名為 nginx-default.conf 的配置文件
touch /etc/nginx/conf.d/nginx-default.conf
#編輯配置文件
vi /etc/nginx/conf.d/nginx-default.conf

將以下信息輸入到 nginx-default.conf
server
{
listen 80 default;
return 400;
}

按下 Esc,輸入 :x 保存並退出。
防火牆放行 HTTP 埠訪問:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload

啟動 Nginx:
systemctl start nginx.service

這時,在瀏覽器地址欄輸入當前伺服器 IP 就會看到一個 400 的提示頁面了。
進階!綁定域名+站點目錄+保存日誌+運行 PHP的配置文件:
server
{
listen 80; #監聽80埠
server_name default.com www.default.com; #綁定域名 default.com 和 www.default.com
index index.html index.htm index.php; #設置首頁文件,越前優先順序越高
charset utf-8; #設置網頁編碼

root /home/wwwroot/default; #設置站點根目錄

#運行 PHP
location ~ .*\.php$
{
fastcgi_pass 127.0.0.1:9000 #默認使用9000埠和PHP通信
#fastcgi_pass unix:/dev/shm/php-fpm-default.sock; #使用 unix sock 和PHP通信
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /home/wwwroot/default; #PHP 文檔根目錄
fastcgi_param SCRIPT_FILENAME /home/wwwroot/default$fastcgi_script_name; #PHP 腳本目錄
include fastcgi_params;
try_files $uri = 404;
}

#設置文件過期時間
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$
{
expires 30d;
}

#設置文件過期時間
location ~ .*\.(js|css)$
{
expires 12h;
}

#設置文件訪問許可權
location ~* /templates(/.*)\.(bak|html|htm|ini|old|php|tpl)$ {
allow 127.0.0.1;
deny all;
}

#設置文件訪問許可權
location ~* \.(ftpquota|htaccess|htpasswd|asp|aspx|jsp|asa|mdb)?$ {
deny all;
}

#保存日誌
access_log /var/log/nginx/default-access.log main;
error_log /var/log/nginx/default-error.log crit;
}

配置 phpMyAdmin
# 編輯配置文件
vi etc/phpMyAdmin/config.inc.php

修改以下內容:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['UploadDir'] = '/tmp';
$cfg['SaveDir'] = '/tmp';

如果Nginx使用的是上面的進階代碼,那麼把 phpMyAdmin 的目錄 復制到 /home/wwwroot/default/phpMyAdmin/ 下面,就可通過 http://default.com/phpMyAdmin 訪問了:
#復制 phpMyAdmin 目錄
cp -a /usr/share/phpMyAdmin /home/wwwroot/default/

#替換連接形式為目錄
rm -rf /home/wwwroot/default/phpMyAdmin/doc/html
cp -a /usr/share/doc/phpMyAdmin-<span class="pl-k">*</span>/html /home/wwwroot/default/phpMyAdmin/doc/

一鍵腳本
上面已經講解了如何配置和安裝,但是不能每次都這么一步一步來吧?為了節省時間,麥蔥寫了一個一鍵安裝管理腳本,可選擇安裝 Nginx 1.8/1.9、 MySQL 5.5/5.6/5.7 和 PHP 5.5/5.6/7.0。
安裝
yum install -y unzip

wget https://github.com/maicong/LNMP/archive/master.zip

unzip master.zip

cd LNMP-master

bash lnmp.sh

# 輸出到指定文件
# bash lnmp.sh 2>&1 | tee lnmp.log

管理站點
service vhost (start,stop,list,add,edit,del,exit) <domain> <server_name> <index_name> <rewrite_file> <host_subdirectory>

start 啟動
stop 停止
list 列出
add 添加
edit 編輯
del 刪除
exit 什麼都不做
<domain>: 配置名稱,例如:domain
<server_name>: 域名列表,例如:domain.com,www.domain.com
<index_name>: 首頁文件,例如:index.html,index.htm,index.php
<rewrite_file>: 偽靜態規則文件,保存在 /etc/nginx/rewrite/ 例如:nomal.conf
<host_subdirectory>: 是否支持子目錄綁定,on 或者 off
示例:
#添加一個標識為 domain 的站點
service vhost add domain domain.com,www.domain.com index.html,index.htm,index.php nomal.conf on

#啟動標識為 domain 的站點
service vhost start domain

#停止標識為 domain 的站點
service vhost stop domain

#編輯標識為 domain 的站點
service vhost edit domain

#刪除標識為 domain 的站點
service vhost del domain

#列出所有站點
service vhost list

備份數據
service vbackup (start,list,del) <delete name.tar.gz>

start 添加
list 列出
del 刪除
示例:
#添加一個新的備份
service vbackup start

#列出備份文件
service vbackup list

#刪除一個備份
service vbackup del name.tar.gz

F. 502 bad gateway怎麼解決

502badgateway要先找到nginx配置的路徑。
然後找到nginx所在的error日誌文件來查看具體原因。
如果是客戶端瀏覽器好早配置的問題,以360瀏覽器為例,出現502BadGateway可能是設置了代代理導致的。
取消瀏覽器代理之後,刷新一下就可以訪問了。
502BadGateway是一種報錯提示,這一錯誤並不意味著上游伺服器已關閉(無響應網關/代理),而是上游伺服器和網關/代理不同派姿意的協議交換數據。
鑒於互聯網協議是相當清楚的,它往往意味著一個或兩個機器已友羨雀不正確或不完全編程

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91