1. 程式人生 > >編譯安裝LNMP環境

編譯安裝LNMP環境

說明:

1、        LNMP(Linux+Nginx+MySQL+PHP)是一種高效能的web環境。

2、       該文件只介紹簡單的LNMP環境編譯安裝,並不涉及優化。

2、如完全按照該文件安裝,需注意,因由於系統和軟體版本不同可能造成安裝失敗,建議作為參考。

3、該文件只解決了部分常見的安裝報錯資訊,如碰見詭異的報錯請百度。

4、該文件涉及的軟體只在一臺pc機上安裝,並未分離。

一、     準備基礎軟體包

yum -y install gcc gcc-c++ make

二、     安裝MySQL(版本大於5.5)

前提:

1、        安裝MySQL的版本大於5.5時配置工具由make變為cmake

2、        cmake版本需要大於2.8

3、        安裝依賴包:

yum -yinstall cmake bison bzip2bzip2-devel bzip2-libs python-devel

4、        準備mysql使用者和組:

useraddmysql

安裝:

解壓且進入解壓目錄

配置:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306-DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

引數詳解:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\    #安裝路徑

 -DMYSQL_DATADIR=/usr/local/mysql/data   \    #資料檔案存放位置

 -DSYSCONFDIR=/etc             \    #my.cnf路徑

 -DWITH_MYISAM_STORAGE_ENGINE=1    \   #支援MyIASM引擎

 -DWITH_INNOBASE_STORAGE_ENGINE=1    \   #支援InnoDB引擎

 -DWITH_READLINE=1                \    #快捷鍵功能

 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      \    #連線資料庫socket路徑

 -DMYSQL_TCP_PORT=3306                \    #

 -DENABLED_LOCAL_INFILE=1           \   #允許從本地匯入資料

 -DWITH_PARTITION_STORAGE_ENGINE=1        \   #安裝支援資料庫分割槽

 -DEXTRA_CHARSETS=all                  \    #安裝所有的字符集

 -DDEFAULT_CHARSET=utf8               \    #預設字元

 -DDEFAULT_COLLATION=utf8_general_ci

編譯和編譯安裝:

make && makeinstall

(注意:需要大量記憶體和cup資源,記憶體小於1G且沒有記憶體空間時容易安裝停止在make50%左右。)

給予許可權:

setfacl -m u:mysql:rwx -R /usr/local/mysql

setfacl -m d:u:mysql:rwx -R /usr/local/mysql

初始化資料庫:

MySQL5.6:

/usr/local/mysql/bin/mysql_install_db--user=mysql

MySQL5.7:

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data

準備配置檔案:

cp /usr/local/mysql/support-files/my-default.cnf  /etc/my.cnf

修改配置檔案(簡單的配置):

[mysqld]

user=mysql

datadir = /mydata/mysql/data

socket =/tmp/mysql.sock

character-set-server= utf8

collation-server =utf8_unicode_ci

pid-file = /mydata/mysql/data/mysql.pid

port = 3306

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld.pid

 [client]

port            = 3306

socket          = /tmp/mysql.sock

default-character-set=utf8

啟動和開機自啟MySQL:

方法1:原始碼包方式

啟動:/usr/local/mysql/bin/mysqld_safe--user=mysql &

關閉:/usr/local/mysql/bin/mysqladmin-uroot -p shutdown

自啟:在/etc/rc.local里加上/usr/local/mysql/bin/mysqld_safe--user=mysql &

方法2:系統管理方式

cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

啟動:server mysqldstart/stop/restart

自啟:chkconfig--add mysqld

設定MySQL密碼(一般初始化後預設為空,或者初始化生成預設密碼。):

方法一(已知密碼):/usr/local/mysql/bin/mysqladmin –uroot -p舊密碼 password 新密碼

方法二(已知或未知密碼):

未知密碼則用/usr/local/mysql/bin/mysql_secure_installation命令啟動MySQL,此時登陸密碼為空,可登陸MySQL,在進行以下操作。

/usr/local/mysql/bin/mysql–uroot –p臨時密碼

>SETPASSWORD=PASSWORD('密碼');

>FLUSHPRIVILEGES;

或者

>UPDATEmysql.user SET Password=PASSWORD('密碼') where USER='root' and host='root' orhost='localhost';

> FLUSHPRIVILEGES;

登陸MySQL:

/usr/local/msyql/bin/mysql –uroot –p密碼

三、     安裝PHP(版本大於等於5.6):

準備包(依賴包可選擇yum或者原始碼方式安裝。):

yum -yinstall gcc gcc-c++ make autoconf libjpeg libjpeg-devel libpng libpng-develfreetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-develglib2 glib2-devel bzip2 bzip2-devel ncursesncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidnlibidn-devel openssl openssl-devel openldap openldap-devel nss_ldapopenldap-clients openldap-servers patch perl-CPAN pcre-devel pcre libxsltlibxslt-devel php-mcrypt  libmcrypt libmcrypt-devel mcrypt* mhash

原始碼包:

libiconv 下載:https://ftp.gnu.org/pub/gnu/libiconv/

libmcrypt下載:ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/

mhash下載:https://sourceforge.net/projects/mhash/files/mhash/

安裝:

解壓且進入安裝目錄

準備php使用者和組:useradd web

配置

./configure --prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc--with-config-file-scan-dir=/usr/local/php/etc/php.d --with-curl--with-freetype-dir --with-gd --with-gettext --with-iconv-dir=/usr/local--with-jpeg-dir --with-kerberos --with-ldap --with-ldap-sasl--with-libdir=lib64 --with-libxml-dir=/usr/lib64 --with-mcrypt --with-mhash--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl--with-pcre-regex=/usr --with-pdo-mysql=mysqlnd --with-pdo-sqlite=shared--with-pear=/usr/local/lib/php --with-png-dir --with-xmlrpc --with-xsl--with-zlib --enable-fpm --enable-bcmath --enable-inline-optimization--enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-pcntl--enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip--disable-rpath --enable-opcache --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-pcntl--enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml--enable-zip --disable-rpath --enable-opcache --disable-debug --enable-shared--enable-ftp --enable-session --enable-fastcgi --disable-fileinfo--with-fpm-user=web --with-fpm-group=web

配置詳解:

--with-mysql-sock=/var/run/mysql/mysql.sock  //mysqlsock檔案

--with-iconv-dir=/usr/local     //iconv庫檔案,編譯安裝icon庫時需要指定路徑

--with-fpm-user=web--with-fpm-group=web       //指定php-fpm程序所屬的使用者和組,需要建立。

編譯安裝:

ln -s/usr/local/lib/libiconv.so.2 /usr/lib64/

make ZEND_EXTRA_LIBS='-liconv'

報錯:

collect2: ld returned 1 exit status  

make: *** [sapi/cli/php] Error 1  

解決方法:

編輯Makefile 大約100行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最後加上-liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv

make clean

make&& make install

編譯安裝php 的時候,執行make報錯誤

錯誤:make: *** [ext/mysqli/mysqli.lo] Error 1

[[email protected] php-5.4.9]# mkdir /usr/local/webserver/mysql/include/mysql

 [[email protected]]# ln -s /usr/local/webserver/mysql/include/*/usr/local/webserver/mysql/include/mysql
make clean

make&& make install

拋錯:Generating phar.phar/usr/local/src/php-5.4.9/sapi/cli/php:error while loading shared libraries: libiconv.so.2: cannot open shared objectfile: No such file or directory
make: *** [ext/phar/phar.php] Error 127

解決的方法如下:

#vi /etc/ld.so.conf

在裡面加上一行
/usr/local/lib

/usr/lib64

/usr/lib

然後執行/sbin/ldconfig

#/sbin/ldconfig

編譯make

make clean

make&& make install

拋錯:

Generating phar.phar
chmod: cannot access `ext/phar/phar.phar': No such file or directory
make: [ext/phar/phar.phar] Error 1 (ignored)
Build complete.
Don't forget to run 'make test'.
此處可以忽略不過解決辦法如下

#cd  ext/phar/
#cp ./phar.php  ./phar.phar

然後到php5.4資料夾

#make ZEND_EXTRA_LIBS='-liconv'

#make test

#make install

基本配置:

配置檔案:

cp php解壓目錄的絕對路徑/php.ini-dist /usr/local/php/etc/php.ini      (需要手打!)

啟動php與Nginx通訊程序且開機自啟(開機自啟需寫入/etc/rc.local):

/usr/local/php/sbin/php-fpmstart

或者

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

四、     安裝Nginx

準備依賴包:

Nginx下載:http://nginx.org/

pcre 下載(最好下載最新的):https://ftp.pcre.org/pub/pcre/

#tar zxvfpcre-8.10.tar.gz
cd pcre-8.10/
./configure --enable-utf8
make && make install

Nginx安裝:

解壓且進入安裝目錄

useradd nginx

Nginx簡單配置:

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

user  nginxnginx;
worker_processes 1;

#相當於cpu個數
error_log  logs/nginx_error.log;

#錯誤日誌
pid        /usr/local/nginx/nginx.pid;

#主程序PID儲存檔案worker_rlimit_nofile 65535;

#檔案描述符數量
events 
{
  use epoll;

#網路I/O模型,建議linux使用epollFreeBSD使用kqueue

multi_accepton;

#收到一個新連線通知後接受盡可能多的連線。  worker_connections65535;

#最大允許連線數
}


http 
{
  include       mime.types;
  default_type  application/octet-stream;

 log_format  main  '$remote_addr - $remote_user [$time_local]"$request" '

              '$status $body_bytes_sent"$http_referer" '

              '"$http_user_agent""$http_x_forwarded_for"';

#日誌格式

access_log  logs/access.log  main;

#呼叫格式的日誌
sendfile on;

server_tokensoff;
keepalive_timeout 10;

#保持連線時間

  server

{
    listen       80;

#監聽埠
    server_name  127.0.0.1;

#主機名,或IP。如果是主機名,要能夠DNS解析

location / {

root  html;

#網站主目錄。/usr/local/nginx/html/
index index.html index.htm index.php;

#預設網頁順序

}

    location ~.*\.php?$
  {     

root  html; 
      fastcgi_pass  127.0.0.1:9000;

#連線fastcgi,用來解析php語句
      fastcgi_index index.php;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

#啟動fast-cgi,可以在每個服務中啟動,也可以放入/usr/local/nginx/conf/fastcgi_params,每個server都可以享用
      include fastcgi_params;

#包括fastcgi_params中引數    }

}
}

啟動與自啟:

自啟:

vi /etc/rc.local

/usr/local/nginx/sbin/nginx

啟動:

/usr/local/nginx/sbin/nginx

重啟:

1)Pkill -HUP nginx (常用)

2)kill -HUP `pgrep -uroot nginx`

3)/usr/local/nginx/sbin/nginx-s reload(主要用這個!)

五、     驗證該環境

方法一:

檢視埠,存在3306、80、9000則為環境搭建成功:

netstat -tunl

方法二:

開啟防火牆對應埠或者關閉防火牆:

iptables -Z

iptables -F

iptables -X

在Nginx預設工作目錄新增一個php指令碼檔案,顯示環境資訊。

檔案內容:

<?php

phpinfo();

?>

訪問伺服器ip與對於的php指令碼檔案即可獲得環境資訊。


見此頁面則安裝環境成功。

該頁面未顯示原因很多,防火牆,服務埠沒起來,nginx和php配置問題,php網頁檔案,等等原因,需要一一排查。

相關推薦

centos7編譯安裝lnmp環境

gzip enabled get ash string -m with 用戶組 ttr mysql版本:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz /home/ 準備工作

CentOS 6.5 編譯安裝 LNMP環境

kcon 幹凈 libs prefix bic 基於 nss led dev 建立一個軟件包目錄存放 mkdir -p /usr/local/src/ 清理已經安裝包 rpm -e httpd rpm -e mysql rpm -e php yum -y remov

centos6源碼編譯安裝lnmp環境

p s 是不是 source nta abi cmake for linu pes 操作系統 版本 64位 CentOS-6.6 10.0.0.20 安裝環境所需依賴包 yum -y install gcc automake autoconf libtool

CentOS 6 編譯安裝 LNMP環境

清理已經安裝包 rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y remove mysql yum

Centos6.8 編譯安裝LNMP環境

剛不久,買了一臺阿里雲的雲ECS伺服器,準備搭建自己的個人技術部落格,這裡我並沒有用阿里雲上已經有的lnmp映象,還是通過編譯安裝來搭建自己的環境 yum 安裝 gcc 編譯環境,為編譯 lnmp 做準備 yum install gcc automake aut

centos6.5編譯安裝LNMP環境

安裝編譯工具及庫檔案 yum install -y yasm apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel fr

Centos7 手把手教你 編譯安裝LNMP環境 (古月)

我使用的是騰訊雲的伺服器 Centos7 64位的版本 在我們剛購買完伺服器後我們可以使用Xshell來連線到伺服器 , 但是現在Xshell開始收費了 我們不得不使用之前的版本 下面放上百度雲的連結: https://pan.baidu.com/s/1slHTq9Z 密碼: 3

編譯安裝LNMP環境

說明: 1、        LNMP(Linux+Nginx+MySQL+PHP)是一種高效能的web環境。 2、       該文件只介紹簡單的LNMP環境編譯安裝,並不涉及優化。 2、如完全按照該文件安裝,需注意,因由於系統和軟體版本不同可能造成安裝失敗,建議作為參考。

centos 7.2 編譯安裝 lnmp環境(究極篇)

準備篇: CentOS 7.0系統安裝配置圖解教程 一、配置防火牆,開啟80埠、3306埠 CentOS 7.0預設使用的是firewall作為防火牆,這裡改為iptables防火牆。 1、關閉firewall: systemctl stop firewalld.service #停止firewall

源碼編譯安裝lnmp環境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了無數坑,重裝了十幾次服務器才會的,不容易啊!

uri org ucc height lnmp環境 loading lin num inf 安裝順序 php --- nginx -- mysql 安裝php-5.6.30: 1 環境準備 yum install gcc bison bison-devel zlib-dev

mac上編譯安裝lnmp環境(php7.0)

系統環境:OS X EI Capitan 10.11.6 (15G31) web環境:php7.0.13+nginx1.11.6+mysql5.7(解壓版) 1.php的擴充套件安裝 1.1png安裝(gd庫) tar zxvf libpng-1.6.26.tar.xz c

源碼安裝lnmp環境

lnmp#yum groupinstall "Development Tools" "Development Libraries" -y#yum install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre*

使用編譯搭建LNMP環境

軟連接 指定位置 lease fin 編譯安裝 .html 地址 完成 sql mysql LNMP=Linux+Nginx+MySQL+php 所以搭建LNMP需要逐一安裝這幾個包 下面我們就逐一安裝各種包 安裝環境centos6.8_64 一、安裝Nginx1.10.3

ansible批量一鍵安裝lnmp環境

ansible批量 安裝 lnmp 部署1、ansible一鍵安裝nginx服務#nginx_server install - hosts: 172.16.1.5 根據自己的主機自行定義 tasks: -name: yumpcre-devel yum: name

源碼編譯安裝LAMP環境部署Discuz

liunx技術分享1)源碼編譯apryum install -y pcre-devel gcc openssl-devel 安裝編譯過程需要的依賴包cd /usr/src 切換到此目錄wget -c http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz tar

[CentOS_7.4]Linux編譯安裝mono環境

生效 退出 過程 .com text 可執行程序 路徑 brush linux 一 安裝mono 安裝過程: 下載mono安裝源,配置,編譯,安裝,設置環境變量。 # wget http://download.mono-project.com/sources/mon

源碼編譯安裝LNMP

lnmp 編譯安裝 nginx php mysql LNMP LNMP就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。 Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fed

CentOS7編譯安裝LNMP

zend text ast www. listen with sting 完整 url 安裝編譯工具和依賴包 [root@localhost src]# yum install -y apr* autoconf automake bison bzip2 bzip2* cl

ubuntu16.04安裝lnmp環境

inf 同時 sybase img root adl php7 mys urg 1.安裝mysql sudo apt install mysql-server 2.安裝nginx和php #添加nginx和php的ppa源 sudo apt-add-repo

一個自動安裝lnmp環境的shell腳本

package mysq success 更改 print nload eas rpm包 不可用 #/bin/bash #定義nginx源碼包版本,腳本會根據版本名稱和後綴檢查文件是否在當前目錄如果你需要安裝不同版本的nginx可以修改這兩個變量 nginx_versio