用源碼包安裝lnmp+discuz

遇到的問題1、

discuz合適的安裝版本是php5.3 ,因爲我安裝的是最新版的php7.1,因此致使運行時會報錯134 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /usr/local/nginx/html/bbs/install/index.php:12,
解決辦法,在install/index.php 中12行刪除掉set_magic_quotes_runtime(0) 這個函數。前臺頁面就能夠顯示了。其實discuz3.2適合安裝的版本是php5.3,

本次安裝用的是nginx 源碼包、php7.1源碼包、mysql用的是二進制包, nginx繼上一篇安裝

nginx默認站點目錄是:/usr/local/nginx/sbin/nginx 
php默認站點目錄是:/usr/local/php/sbin/php-fpm
權限設置:chown nginx.nginx/usr/local/nginx/html/ -R
MySQL數據庫目錄是:/var/lib/mysql
權限設置:chown mysql.mysql -R /var/lib/mysql

卸載了php7.1 後從新安裝了php5.6版本,就沒有遇到此問題。

1、下載php源碼

下載地址:http://cn.PHP.net/downloads.phpphp

2、安裝

一、將下載的二進制包移動到/usr/local目錄,解壓縮文件包html

tar zxvf php-5.6.31.tar.gz
mysql

二、進入解壓的php文件夾下/usr/local/php-5.6.31,安裝依賴,編譯安裝
安裝依賴

apt-get install libxml2-dev libssl-dev libbz2-dev libcurl3-dev libdb5.1-dev libjpeg-dev libpng-dev libXpm-dev libfreetype6-dev libt1-dev libgmp3-dev libc-client-dev libldap2-dev libmcrypt-dev libmhash-dev freetds-dev libz-dev libmysqlclient15-dev ncurses-dev libpcre3-dev unixODBC-dev postgresql-server-dev-9.1 libsqlite-dev libaspell-dev libreadline6-dev librecode-dev libsnmp-dev libtidy-dev libxslt-dev libt1-dev
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel
nginx


yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel

安裝依賴包的時候可能會有提示yun庫裏面沒有這個包,因此要更新下 yum擴展包,和yum源

yum  install epel-release  //擴展包更新包
yum  update //更新yum源


yum install libmcrypt libmcrypt-devel mcrypt mhash 

建立 www 用戶

groupadd www useradd -g www -s /sbin/nologin -M www

編譯安裝

cd /usr/local/test/upload/php-5.6.31

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline
參數說明:

""" 安裝路徑 """ --prefix=/usr/local/php56 \ """ php.ini 配置文件路徑 """ --with-config-file-path=/usr/local/php56/etc \ """ 優化選項 """ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ """ 啓用 opcache,默認爲 ZendOptimizer+(ZendOpcache) """ --enable-opcache \ """ FPM """ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ """ MySQL """ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ """ 國際化與字符編碼支持 """ --with-gettext \ --enable-mbstring \ --with-iconv \ """ 加密擴展 """ --with-mcrypt \ --with-mhash \ --with-openssl \ """ 數學擴展 """ --enable-bcmath \ """ Web 服務,soap 依賴 libxml """ --enable-soap \ --with-libxml-dir \ """ 進程,信號及內存 """ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ """ socket & curl """ --enable-sockets \ --with-curl \ """ 壓縮與歸檔 """ --with-zlib \ --enable-zip \ --with-bz2 \ """ GNU Readline 命令行快捷鍵綁定 """ --with-readline

make cleansql

# make && make install

編譯安裝php時遇到virtual memory exhausted: Cannot allocate memory數據庫

php時日誌中有以下錯誤記錄:
virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
api

PHP安裝配置文件中加了引號中的配置
--disable-fileinfo
作了上述修改後終於編譯安裝經過

配置 PHP文件

cp /usr/local/test/upload/php-5.6.31/php.ini-development /usr/local/php/etc/php.ini
php -fpm 服務

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp /usr/local/test/upload/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm
啓動 php-fpm
/usr/local/php/sbin/php-fpm  

添加 PHP 命令到環境變量


vi /etc/profile
瀏覽器

打開後,在文檔最下方添加以下配置:php7

export PATH=/usr/local/php/bin:$PATHapp

:wq!保存退出,執行以下命令,使更改生效

source /etc/profile


一、配置nginx支持php    

cp /usr/local/nginx/conf/nginx.conf      /usr/local/nginx/conf/nginx.confbak    #備份原有配置文件
vi /usr/local/nginx/conf/nginx.conf  #編輯
user  root;  #  nginx 用戶修改成root
:wq!    #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak   #備份原有配置文件
vi /usr/local/nginx/conf/nginx.conf  #編輯

index index.php index.html index.htm;   #增長index.php
 # pass the PHPscripts to FastCGI server listening on 127.0.0.1:9000
 #
 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 server下location的註釋,並要注意fastcgi_param行的參數,/scripts改成$document_root 或者使用絕對路徑
/usr/local/nginx/sbin/nginx -t    #檢查Nginx配置

/usr/local/nginx/sbin/nginx -s reload # 平滑重啓


二、PHP配置

在源碼包解壓文件裏複製出來

cp /usr/local/test/upload/php-5.6.31/php.ini-development /usr/local/php/etc/php.ini


vi /usr/local/php/etc/php.ini #編輯
date.timezone = PRC #在946行 把前面的分號去掉,改成date.timezone = PRC
expose_php = Off #在432行 禁止顯示php版本的信息
:wq! #保存退出

二、配置php-fpm

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf   #備份原有配置文件
vi /usr/local/php/etc/ php-fpm.conf    #編輯
user = www   #爲用戶爲nginx
group = www   #爲組爲nginx
/etc/init.d/mysqld restart  #重啓MySql
/usr/local/nginx/sbin/nginx -s reload     # 平滑重啓 nginx
/usr/local/php/sbin/php-fpm  restart  #重啓php-fpm

五、啓動php測試

#啓動

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

#測試php

cd /usr/local/nginx/html

vi test.php

添加以下內容:
<?php  
 echo phpinfo();  
?>

:wq!保存退出。

瀏覽器輸入:http://XXXXXXXX/test.php

若是出現:PHP Version 5.6.31 界面,顯示php詳細的配置的界面,說明安裝正確

六、php重啓、中止

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

2.解壓Discuz_X3.2_SC_UTF8.zip,獲得3個文件夾(readme,upload,utility
3.把upload裏全部文件複製到/usr/local/nginx/html/bbs/

4.chmod -R 777 /usr/local/nginx/html

bbs 是新建的目錄





備註

nginx默認站點目錄是:/usr/local/nginx/sbin/nginx 

php默認站點目錄是:/usr/local/php/sbin/php-fpm 權限設置:chown nginx.nginx/usr/local/nginx/html/ -R MySQL數據庫目錄是:/var/lib/mysql 權限設置:chown mysql.mysql -R /var/lib/mysql