編譯安裝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且沒有記憶體空間時容易安裝停止在make的50%左右。)
給予許可權:
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 //mysql的sock檔案
--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使用epoll,FreeBSD使用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