生產環境LNMP (果圖片)

1、 下載一鍵安裝包 LNMP   官方地址爲:http://lnmp.org/php

登錄後運行:screen -S lnmphtml

cd /usr/local/src
wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz
tar zxf lnmp1.3-full.tar.gz
cd lnmp1.3-full
./install.sh lnmp

安裝mysql

第1步:  輸入MYSQL 的密碼  默認爲 rootnginx

第2步:詢問是否須要啓用MySQL InnoDB,InnoDB引擎默認爲開啓,通常建議開啓,直接回車或輸入 y web

第3步:選擇MySQL版本,目前提供了較多版本的MySQL和MariaDB, 選擇 2(5.5) 或 3 (5.6)redis

第4步:選擇6 (PHP7) ,選擇PHP7等高版本時須要自行確認是否與本身的程序兼容。sql

第5步:能夠選擇不安裝、Jemalloc或TCmalloc,輸入對應序號回車,直接回車爲默認1爲不安裝。shell

第6步:提示"Press any key to install...or Press Ctrl+c to cancel"後,按回車鍵確認開始安裝。 
           LNMP腳本就會自動安裝編譯Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer這幾個軟件。數據庫

安裝完成: 若是顯示Nginx: OK,MySQL: OK,PHP: OK  和  Install lnmp V1.3 completed! enyoy it.vim

 

二 、安裝FTP:  pureftpd

cd /usr/local/src/lnmp1.3-full
./pureftpd.sh

回車自動安裝。

卸載Pureftpd  執行:./pureftpd.sh uninstall 便可對pureftpd進行卸載。

管理:lnmp ftp {add|list|del} 進行FTP帳號管理。

 

三 、安裝 memcached   :  進入lnmp解壓後的目錄,執行:./addons.sh install memcached 

cd /usr/local/src/lnmp1.3-full
./addons.sh install memcached

addons-install-memcached.png
能夠根據本身的需求選擇 php-memcache php-memcached 擴展,
目前discuz x使用的是前者,功能上php-memcached更強大一些。
我所須要的是 1php-memcache )輸入對應的序號,回車,再次確認回車開始安裝。   

卸載
執行:./addons.sh uninstall memcached

 注意: 若是是升級了PHP  從新安裝 memcached  可能會被防火牆阻止了 出現

Use PHP Memcache extension.
Could not connect

解決方法:  iptables -F

四 、開啓PHP錯誤日誌

第一步:

LNMP下的錯誤須要在/usr/local/php/etc/php-fpm.conf裏設置,
第一種方法:
在[www]下增長上 catch_workers_output = yes,錯誤信息就會記錄到php-fpm.conf裏error_log=設置的文件裏。
第二種方法:  在php-fpm.conf里加上
php_admin_value[error_log] = /usr/local/php/var/log/php-error.log
php_admin_flag[log_errors] = on
上述兩種方法都行,重啓php-fpm生效
同理php.ini裏的display_errors也是須要在php-fpm.conf裏設置的,加上php_flag[display_errors] = On就開啓了。

vim /usr/local/php/etc/php-fpm.conf

[global]
pid = /usr/local/php/var/run/php-fpm.pid
#開啓PHP錯誤日誌 第一種方法 這種方法估計會和 php-fpm 的錯誤日誌混在一塊兒 
#我這裏還沒開啓catch_workers_output = yes 因此不會輸出PHP的錯誤日誌,只輸出php-fpm進程的錯誤
error_log
= /usr/local/php/var/log/php-fpm.log log_level = notice [www] listen = /tmp/php-cgi.sock listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0666 user = www group = www pm = static pm.max_children = 200 pm.start_servers = 20 pm.min_spare_servers = 10 pm.max_spare_servers = 30 request_terminate_timeout = 100 # 開啓慢日誌的話 把0改成 3 或5 之類 request_slowlog_timeout = 0 slowlog = var/log/slow.log #第二種方法 我這裏使用的是第二種方法 php_admin_value[error_log] = /usr/local/php/var/log/php-error.log php_admin_flag[log_errors] = on

 

php_admin_value[error_log] = /home/wwwroot/log/php-error.log

 

有時可能錯誤日誌文件不自動建立,能夠執行:看php-error.log 放哪裏
touch /usr/local/php/var/log/php-error.log && chown www:www /usr/local/php/var/log/php-error.log

第二步: 說明:這個第二步 估計LNMP是不須要作的,可是我是設置了。估計是PHP和Apache結合的時候的設置方法。

vim /usr/local/php/etc/php.ini
display_errors = Off  
log_errors = On
error_log = /usr/local/php/var/log/php-error.log

擴展說明:對於PHP開發人員來講,一旦某個產品投入使用,那麼第一件事就是應該將php.ini中display_errors選項關閉,以避免由於這些錯誤所透露的路徑、數據庫鏈接、數據表等信息而遭到黑客攻擊。PHP的log_errors默認開啓,默認是記錄到WEB服務器的日誌文件裏,好比Apache的error.log文件。

 

5、 開啓PHP支持 exif 

教程來源:http://www.vpser.net/manage/lnmp-php-install-ext.html  (安裝imap模塊 和 安裝exif模塊 )

進入LNMP包的PHP源碼目錄 解決壓你相應該的PHP版本包:

cd /usr/local/src/lnmp1.3-full/src
tar zxf php-7.0.7.tar.gz
[root@localhost src]# cd php-7.0.7/ext/ #咱們要安裝exif模塊,執行  
cd exif/ #再執行 
/usr/local/php/bin/phpize 
會返回以下信息:
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519 再執行如下命令:
[root@localhost exif]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost exif]# make && make install

執行完返回:

Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

表示已經成功,再修改
vim /usr/local/php/etc/php.ini

查找:extension = 再最後一個extension= 後面添加上 extension = "exif.so"

//如下這段可選 可不加 註釋裏有,去掉註釋就行
[exif]
exif.encode_unicode = ISO-8859-15
exif.decode_unicode_motorola = UCS-2BE
exif.decode_unicode_intel    = UCS-2LE
exif.encode_jis =
exif.decode_jis_motorola = JIS
exif.decode_jis_intel    = JIS

保存,執行/etc/init.d/php-fpm restart 重啓。

安裝其餘模塊:基本上都是這兩種方式(第一種在教程來源查看),當./configure --with-php-config=/usr/local/php/bin/php-config 執行這個的時候是會檢查系統上庫是否安裝上,若是沒有安裝上就會報錯,按錯誤提示安裝相關的庫就行。

擴展閱讀: 測試exif 是否成功 請查看上面的 教程來源

 

六 、安裝opcache 

教程來源:http://www.phpsong.com/1806.html   及  http://lnmp.org/faq/addons.html

說明:php7(5.5及以上版本)默認是安裝opcache的,沒有啓用是由於配置php.ini沒有加 zend_extension=opcache.so 
        包括LNMP1.2起的安裝包也是須要配置才啓用。

ZendGuardLoader和Zend Opcache同樣嗎:opcache是優化緩存代碼用的,guardloader是運行zendguard加密的php代碼用的。

兩個好像只能啓用一個???

vim /usr/local/php/etc/php.ini

在php.ini最後加入 

[Zend ZendGuard Loader]
;zend_extension=opcache.so 我是使用下面的絕對路徑 ;爲果果配置opcache加入
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so

 

opcache.force_restart_timeout=3600
opcache.memory_consumption=1024
opcache.optimization_level=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4096
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable=1
opcache.enable_cli=1

 

phpinfo檢查 有: Zend OPcache

擴展閱讀:opcache

lnmp安裝包下的 此腳本是用來安裝opcache的,是 Zend 開發的閉源但能夠無償使用的 PHP 優化加速組件。
LNMP 1.2下安裝的PHP 5.5或更高版本的PHP不須要額外安裝OPcache,默認已經安裝上。
安裝
進入lnmp解壓後的目錄,執行:./addons.sh install opcache 
Opcache和eAccelerator是衝突的,腳本會卸載eAccelerator後再安裝Opcache,回車確認後就會自動安裝opcache。
卸載
執行:./addons.sh uninstall opcache

 

7、安裝APCU 個人版本爲 apcu-5.13  

教程來源:https://www.mf8.biz/101/?spm=5176.bbsr275941.0.0.83C8WP 和 https://bbs.aliyun.com/read/275941.html   

APCu 是老牌 PHP 字節碼和對象緩存 緩存器 APC 的分支,具體由來還得講個故事。

而 APC 原本擁有 字節碼緩存和對象緩存,後來便刪除了字節碼緩存。又將原有的系統緩存和用戶緩存刪去了系統緩存,保留了用戶緩存,所以 APCu = APC User 即是這麼來的。今後 APCu 能夠在 PHP7 下繼續穩定存在,而且不起衝突

cd /usr/local/src
wget http://pecl.php.net/get/apcu-5.1.3.tgz 
tar xzf apcu-5.1.3.tgz 
cd apcu-5.1.3 
phpize 
./configure --with-php-config=/usr/local/php/bin/php-config 
make && make install

大體安裝流程是如此,不一樣安裝環境其中的 --with-php-config=/usr/local/php/bin/php-config文件地址不一樣喲!
而後在 php.ini 文件中添加,相關的 acpu.so 便可!

vim  /usr/local/php/etc/php.ini

extension = "memcache.so" // 這個是LNMP安裝memcache時自動添加的
extension = "apcu.so"        //  這個即是我這時添加進去的
extension = "exif.so"         //   這個是安裝exif擴展添加去的

8、添加主機域名    

LNMP 1.2開始使用lnmp命令進行管理,具體能夠參看更新記錄
虛擬主機管理基本命令介紹:lnmp vhost {add|list|del}

參考教程: http://lnmp.org/faq/lnmp-vhost-add-howto.html

 

9、 Nginx 配置

1 nginx 301 重定向   需求: 將 xxx.com 重定向到  www.xxx.com

2 添加規則     如

 vim /usr/local/nginx/conf/vhost/域名.conf   (如:www.xxx.com.conf)

      #  include enable-php.conf;  //支持PHP  內容爲以下這個location
        location ~ [^/]\.php(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

      # gougou需求 301重定向 xxx.com爲相關域名 if ($host = 'xxx.com'){
           rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
        }

      # gougou-add gougou需求 添加規則
        rewrite "^/tu/([0-9a-zA-Z]+?)={0,2}\.jpg$" /tu/tu.php;
        location / {
        #       rewrite "^/tu/([0-9a-zA-Z]+?)={0,2}\.jpg$" /tu/tu.php;
          if (-f $request_filename/index.html){
                  rewrite (.*) $1/index.html break;
         }
          if (-f $request_filename/index.php){
                 rewrite (.*) $1/index.php;
         }
         if (!-f $request_filename){
                 rewrite (.*) /index.php;
         }
      }
       # gougou -add -end

 擴展閱讀: 如何添加管理僞靜態規則  

 參考教程:http://lnmp.org/faq/lnmp-vhost-add-howto.html  (##僞靜態管理##)

LNMPA或LAMP能夠直接使用網站根目錄下放.htaccess 來設置僞靜態規則(具體規則能夠去程序官網網站找google百度),可是在LNMP下,須要使用Nginx僞靜態規則。
僞靜態能夠隨時添加或刪除,若是添加完虛擬主機後忘記或沒有添加僞靜態,能夠經過修改配置文件來添加僞靜態。
虛擬主機配置文件在:/usr/local/nginx/conf/vhost/域名.conf

僞靜態規則文件須要放在/usr/local/nginx/conf/ 下面。
編輯虛擬主機配置文件,可使用vinanowinscp,後2個工具對新手來講簡單些。

例如前面咱們添加的虛擬主機,打開後前半部分配置會顯示以下:

在root /home/wwwroot/www.vpser.net;這一行下面添加:
include wordpress.conf;
上面的wordpress.conf爲僞靜態文件,如須要其餘僞靜態文件本身建立個並上傳到/usr/local/nginx/conf/ 下面並include 僞靜態.conf; 加完保存,執行:/etc/init.d/nginx restart 重啓生效,若是報錯多是添加有誤或僞靜態規則有誤。

 

10、導出 導入數據庫

在原來的服務器導出SQL文件   #mysqldump -uroot img > /tmp/img.sql

在新服務器上遠程拷貝SQL文件 # scp root@xxx.xxx.233.6:/tmp/img.sql /home/wwwroot/

導入到mySql :        # mysql -uroot img < /home/wwwroot/img.sql

 

11、錯誤:安裝完後 首頁空白:

安裝了一個wordpress程序,在後臺什麼都沒幹,編輯主題時,發現頁面中報下面的錯誤。

notice: /home/wwwroot/test.localhost/wordpress/wp-content/themes is not readable in /home/wwwroot/test.localhost/wordpress/wp-includes/theme.php on line 447 Warning: scandir() has been disabled for security reasons in /home/wwwroot/test.localhost/wordpress/wp-includes/l10n.php on line 764

這個是什麼狀況呢,趕快到網上搜了一下。

原來是scandir被禁用了。經過lnmp探針也能夠看到。

很簡單,編輯php.ini文件

disable_functions = scandir,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
去掉scandir保存並重起php-fpm便可。

 

php.ini 的位置:/usr/local/php/etc/php.ini

最後執行/etc/init.d/php-fpm restart重啓下

lnmp如何支持 imagewebp函數(GD庫)

debian上安裝上libvpx-dev
centos上安裝上libvpx-devel
imageMagick的lnmp有自帶。lnmp安裝的  GD庫默認不支持  imagewebp函數。
upgrade.sh 裏   --with-vpx-dir --with-webp-dir  加了這兩個

[root@localhost include]# pwd
/usr/local/src/lnmp1.3-full/include
[root@localhost include]# vim upgrade_php.sh 

 

11、 LNMP一鍵安裝包的相關文件目錄位置及配置文件位置

LNMP相關軟件安裝目錄
Nginx 目錄: /usr/local/nginx/
MySQL 目錄 : /usr/local/mysql/
MySQL數據庫所在目錄:/usr/local/mysql/var/
MariaDB 目錄 : /usr/local/mariadb/
MariaDB數據庫所在目錄:/usr/local/mariadb/var/
PHP目錄 : /usr/local/php/
PHPMyAdmin目錄 : 0.9版本爲/home/wwwroot/phpmyadmin/ 1.0及之後版本爲 /home/wwwroot/default/phpmyadmin/ 強烈建議將此目錄重命名爲其不容易猜到的名字。phpmyadmin可本身從官網下載新版替換。
默認網站目錄 : 0.9版本爲 /home/wwwroot/ 1.0及之後版本爲 /home/wwwroot/default/
Nginx日誌目錄:/home/wwwlogs/
/root/vhost.sh添加的虛擬主機配置文件所在目錄:/usr/local/nginx/conf/vhost/
PureFtpd 目錄:/usr/local/pureftpd/
PureFtpd web管理目錄: 0.9版爲/home/wwwroot/default/ftp/ 1.0版爲 /home/wwwroot/default/ftp/
Proftpd 目錄:/usr/local/proftpd/
Redis 目錄:/usr/local/redis/

LNMP相關配置文件位置Nginx主配置(默認虛擬主機)文件:/usr/local/nginx/conf/nginx.conf添加的虛擬主機配置文件:/usr/local/nginx/conf/vhost/域名.confMySQL配置文件:/etc/my.cnfPHP配置文件:/usr/local/php/etc/php.iniphp-fpm配置文件:/usr/local/php/etc/php-fpm.confPureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.confPureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.confProftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及以前版本爲/usr/local/proftpd/proftpd.confProftpd 用戶配置文件:/usr/local/proftpd/etc/vhost/用戶名.confRedis 配置文件:/usr/local/redis/etc/redis.conf

相關文章
相關標籤/搜索