lnmp編譯安裝

(centos7+nginx1.9+mysql5.6+php7)

1.準(zhǔn)備工作:

1)把所有的軟件安裝在/data/web淮阐,源碼包放在/data/software/岩榆,數(shù)據(jù)放在/data/data檐蚜,日志文件放在/data/wwwlogs,項(xiàng)目放在/data/wwwroot上

mkdir -p /data/web/

mkdir -p /data/software/

mkdir -p /data/data/

mkdir -p /data/wwwlogs/

mkdir -p /data/wwwroot/

2)安裝源碼包所需要的依賴包 (yum安裝前? yum update)

yum -y install wget openssl* gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make gd gd2 gd-devel gd2-devel libaio

3)創(chuàng)建www所屬組及用戶

/usr/sbin/groupadd www

/usr/sbin/useradd -g www www

4) 設(shè)置系統(tǒng)資源限制

ulimit -SHn 65535

2.Nginx安裝:

1)pcre源碼安裝

cd /data/software/

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz

tar zxvf pcre-8.38.tar.gz

cd pcre-8.38

./configure --prefix=/data/web/pcre

make && make install

2)nginx源碼安裝:

cd /data/software/

wget http://nginx.org/download/nginx-1.9.9.tar.gz

tar zxvf nginx-1.9.9.tar.gz

cd nginx-1.9.9

./configure --user=www --group=www --prefix=/data/web/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/data/software/pcre-8.38 --with-http_realip_module --with-http_image_filter_module

make && make install

3)啟動(dòng)nginx? ?

/data/web/nginx/sbin/nginx -s reload

報(bào)錯(cuò):nginx: [error] open() "/data/web/nginx/logs/nginx.pid" failed (2: No such file or directory)

解決辦法:/data/web/nginx/sbin/nginx -c /data/web/nginx/conf/nginx.conf

3.Mysql安裝:

1)mysql源碼安裝:

cd /data/software/

wget http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

tar zxvf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.12-linux-glibc2.5-x86_64 /data/web/mysql

2)創(chuàng)建mysql所屬組及用戶:

groupadd mysql

useradd -r -g mysql mysql

3)改變mysql軟件所屬組:

cd /data/web

chown -R mysql:mysql mysql

4)初始化數(shù)據(jù)庫:

mkdir -p /data/data/mysql/data

cd /data/data

chown -R mysql:mysql mysql

su mysql

/data/web/mysql/scripts/mysql_install_db --user=mysql --basedir=/data/web/mysql --datadir=/data/data/mysql/data

exit

5)數(shù)據(jù)庫配置文件:

cp /data/web/mysql/support-files/my-default.cnf /etc/my.cnf

cp /data/web/mysql/support-files/mysql.server /etc/init.d/mysql

vi /etc/init.d/mysql

#修改文件中的兩個(gè)變更值

basedir=/data/web/mysql

datadir=/data/web/mysql/data

6)添加mysql環(huán)境變量

vi /etc/profile

#最后一行添加以下兩行:

exportMYSQL_HOME="/data/web/mysql"

exportPATH="$PATH:$MYSQL_HOME/bin"

#保存退出

source /etc/profile

7)添加自啟動(dòng)服務(wù)

chkconfig --add mysql

chkconfig mysql on

8)啟動(dòng)mysql

service mysql start

出現(xiàn)問題:Starting MySQL...The server quit without updating PID file [FAILED]eb/mysql/data/iZwz9dizolap93pvpp5cvbZ.pid).

解決辦法

重新配置vi /etc/my.cnf 加入

#在[mysqld]中添加:

datadir = /data/web/mysql/data

log-error = /data/wwwlogs/mysql/data/error.log

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

user = mysql

tmpdir = /tmp

#保存退出

/data/web/mysql/scripts/mysql_install_db --user=mysql --basedir=/data/web/mysql --datadir=/data/web/mysql/data --pid-file=/data/web/mysql/data/mysql.pid --tmpdir=/tmp

#會(huì)提示:Starting MySQL.. SUCCESS!

#查看mysql服務(wù):

ps aux|grep mysql

9)登錄mysql及改密碼與配置遠(yuǎn)程訪問

#修改root用戶密碼

/data/web/mysql/bin/mysqladmin -u root password 'youpasswod'

#登錄mysql,需要輸入密碼

/data/web/mysql/bin/mysql -u root -p


#允許root用戶遠(yuǎn)程訪問

mysql>GRANT ALL PRIVILEGES ON *.* TO'kexun'@'%'IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES;#刷新權(quán)限

mysql>exit

10)忘記root密碼后,如何找回密碼

/data/web/mysql/bin/bin/mysqld_safe --basedir=/data/web/mysql --datadir=/data/data/mysql/data --skip-grant-tables & /data/web/mysql/bin/bin/mysql -u root mysql

UPDATE user SET password=PASSWORD("new_password") WHERE user='root';

FLUSH PRIVILEGES;

4.PHP安裝:

1)php依賴安裝通惫,順序執(zhí)行:

a)創(chuàng)建目錄

mkdir -p /data/web/libs/

b)jpeg源碼安裝

cd /data/software/

wget http://www.ijg.org/files/jpegsrc.v9.tar.gz

tar zxvf jpegsrc.v9.tar.gz

cd jpeg-9

./configure --prefix=/data/web/libs --enable-shared --enable-static

make && make install

c)libpng源碼安裝

cd /data/software/

wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.2.tar.gz

tar zxvf libpng-1.6.2.tar.gz

cd libpng-1.6.2

./configure --prefix=/data/web/libs

make && make install

d)freetype源碼安裝

cd /data/software/

wget https://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.gz

tar zxvf freetype-2.4.12.tar.gz

cd freetype-2.4.12/

./configure --prefix=/data/web/libs

make && make install

e)libmcrypt源碼安裝

cd /data/software/

wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure --prefix=/data/web/libs

make && make install

cd libltdl/

./configure --prefix=/data/web/libs --enable-ltdl-install

make && make install

f)mhash源碼安裝

cd /data/software/

wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz

tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9

./configure --prefix=/data/web/libs

make && make install

g)libiconv源碼安裝

cd /data/software/

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar -zxvf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/data/web/libs

make && make install

#解決./stdio.h:1010:1: 錯(cuò)誤:‘gets’未聲明(不在函數(shù)內(nèi)) 的問題

cd srclib/

sed -i -e '/gets is a security/d' ./stdio.in.h

cd ../

make && make install

h)添加編譯時(shí)使用的動(dòng)態(tài)鏈接庫的路徑

vi /etc/ld.so.conf

#添加一行

/data/web/libs/lib

#生效

ldconfig

i)mcrypt源碼安裝

cd /data/software/

wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8/

export LDFLAGS="-L/data/web/libs/lib -L/usr/lib"

export CFLAGS="-I/data/web/libs/include -I/usr/include"

touch malloc.h

./configure --prefix=/data/web/libs --with-libmcrypt-prefix=/data/web/libs

make && make install

2)php編譯安裝:

a)php7源碼安裝

cd /data/software

wget http://cn2.php.net/distributions/php-7.0.6.tar.gz

tar xzvf php-7.0.6.tar.gz

cd php-7.0.6

#./configure --help

./configure --prefix=/data/web/php7 --with-config-file-path=/data/web/php7/etc --with-mysqli=/data/web/mysql/bin/mysql_config --with-iconv=/data/web/libs/ --with-freetype-dir=/data/web/libs --with-jpeg-dir=/data/web/libs --with-png-dir=/data/web/libs --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/data/web/libs --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --with-bz2 --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-zts --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --without-pear --with-gettext --enable-fpm --enable-opcache=no

#備注:較之前的版本仙逻,去除的選項(xiàng)(不全)

--with-mysql

--with-mime-magic

--enable-fastcgi

--enable-force-CGI-redirect

make && make install

cp php.ini-development /data/web/php7/etc/php.ini

cp ./sapi/fpm/php-fpm.conf /data/web/php7/etc/php-fpm.conf

cp /data/web/php7/etc/php-fpm.d/www.conf.default /data/web/php7/etc/php-fpm.d/www.conf

#下面是為了php-fpm隨系統(tǒng)自啟動(dòng)驰吓。

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

#更改php-fpm啟動(dòng)用戶

vi /data/web/php7/etc/php-fpm.d/www.conf

#把下面兩行

user = nobody

group = nobody

#改為:

user = www

group = www

#啟動(dòng)php

/data/web/php7/sbin/php-fpm

#查看進(jìn)程ps aux | grep php-fpm

3)php擴(kuò)展安裝:

a)yaf擴(kuò)展安裝yaf.so

cd /data/software

wget http://pecl.php.net/get/yaf-3.0.2.tgz

tar zxvf yaf-3.0.2.tgz

cd yaf-3.0.2

/data/web/php7/bin/phpize

./configure --with-php-config=/data/web/php7/bin/php-config

make && make install

b)redis擴(kuò)展安裝redis.so

cd /data/software

wget https://github.com/edtechd/phpredis/archive/php7.zip

yum -y install unzip(如果沒安裝unzip的可以用yum安裝)

unzip php7.zip

cd phpredis-php7

/data/web/php7/bin/phpize

./configure --with-php-config=/data/web/php7/bin/php-config

make && make install

c)msgpack擴(kuò)展安裝msgpack.so

cd /data/software

wget http://pecl.php.net/get/msgpack-2.0.1.tgz

tar zxvf msgpack-2.0.1.tgz

cd msgpack-2.0.1

/data/web/php7/bin/phpize

./configure --with-php-config=/data/web/php7/bin/php-config

make && make install

d)swoole擴(kuò)展安裝swoole.so

swoole擴(kuò)展安裝swoole.so

cd /data/software

wget http://pecl.php.net/get/swoole-1.8.4.tgz

tar zxvf swoole-1.8.4.tgz

cd swoole-1.8.4

/data/web/php7/bin/phpize

./configure --with-php-config=/data/web/php7/bin/php-config

make && make install

e)使擴(kuò)展生效:

vi /data/web/php7/etc/php.ini

#打開 /data/web/php7/etc/php.ini 查找 ; extension_dir = "ext"

#更改extension_dir的值涧尿,此值視具體情況而定

extension_dir ="/Data/apps/php7/lib/php/extensions/no-debug-zts-20151012/"

#在其后增加一行:

extension ="yaf.so"

extension ="swoole.so"

extension ="redis.so"

extension ="msgpack.so"

f)其他擴(kuò)展安裝類似


5.Redis安裝:

1)Redis安裝目錄

mkdir -p /data/web/redis

2)redis源碼安裝

cd /data/software

wget http://download.redis.io/releases/redis-3.0.7.tar.gz

cd redis-3.0.7

make PREFIX=/data/web/redis install? ? ? ?#安裝到指定目錄中


注:在安裝redis成功后,你將可以在/Data/apps/redis看到一個(gè)bin的目錄檬贰,里面包括了以下文件:

redis-benchmark? ? ? redis-check-aof? ? redis-check-dump? ? ?redis-cli? ? ? ?redis-server

其中:

redis-server:Redis服務(wù)器的daemon啟動(dòng)程序

redis-cli:Redis命令行操作工具姑廉。或者通過telnet進(jìn)行純文本協(xié)議操作

redis-benchmark:Redis性能測(cè)試工具翁涤,測(cè)試Redis在你的系統(tǒng)及你的配置下的讀寫性能


3)將redis做成一個(gè)服務(wù)

#必須將其復(fù)制到/etc/rc.d/init.d的目錄下,將redis_init_script復(fù)制到/etc/rc.d/init.d/桥言,同時(shí)易名為redis。

cp /data/software/redis-3.0.7/utils/redis_init_script /etc/rc.d/init.d/redis

#如果這時(shí)添加注冊(cè)服務(wù):

chkconfig --add redis

#將報(bào)以下錯(cuò)誤:

redis服務(wù)不支持chkconfig

#為此葵礼,我們需要更改redis腳本号阿。

vi /etc/rc.d/init.d/redis

#!/bin/sh

#chkconfig: 2345 80 90 #添加這一行

#同時(shí)修改

EXEC=/data/web/redis/bin/redis-server

CLIEXEC=/data/web/redis/bin/redis-cli

.將redis配置文件拷貝到/etc/redis/${REDISPORT}.conf

mkdir /etc/redis

cp /data/software/redis-3.0.7/redis.conf /etc/redis/6379.conf

cp /data/software/redis-3.0.7/redis.conf /data/web/redis/bin/redis.conf

#去掉行前的注釋蜒程,并修改密碼為所需的密碼,保存文件

vi?/etc/redis/6379.conf

#requirepass foobared

requirepass myRedis

5)redis的一些配置

redis的持久化有rdb和aof兩種媚污。

rdb是記錄一段時(shí)間內(nèi)的操作,一盤的配置是一段時(shí)間內(nèi)操作超過多少次就持久化近弟。

aof可以實(shí)現(xiàn)每次操作都持久化届谈。

這里我們使用aof扰柠。

配置方式,打開redis的配置文件疼约。找到appendonly卤档。默認(rèn)是appendonly no。改成appendonly yes程剥。

redis.conf參數(shù):

daemonize:是否以后臺(tái)daemon方式運(yùn)行?

daemonize yes后臺(tái)運(yùn)行

pidfile:pid文件位置

port:監(jiān)聽的端口號(hào)

timeout:請(qǐng)求超時(shí)時(shí)間

loglevel:log信息級(jí)別

logfile:log文件位置

databases:開啟數(shù)據(jù)庫的數(shù)量

save *:保存快照的頻率劝枣,第一個(gè)表示多長時(shí)間(秒級(jí)),第三個(gè)*表示執(zhí)行多少次寫操作织鲸。在一定時(shí)間內(nèi)執(zhí)行一定數(shù)量的寫操作時(shí)舔腾,自動(dòng)保存快照÷Р粒可設(shè)置多個(gè)條件稳诚。

rdbcompression:是否使用壓縮

dbfilename:數(shù)據(jù)快照文件名(只是文件名,不包括目錄)

dir:數(shù)據(jù)快照的保存目錄(這個(gè)是目錄)

appendonly:是否開啟appendonlylog瀑踢,開啟的話每次寫操作會(huì)記一條log扳还,這會(huì)提高數(shù)據(jù)抗風(fēng)險(xiǎn)能力,但影響效率橱夭。

appendfsync:appendonlylog如何同步到磁盤(三個(gè)選項(xiàng)氨距,分別是每次寫都強(qiáng)制調(diào)用fsync、每秒啟用一次fsync棘劣、不調(diào)用fsync等待系統(tǒng)自己同步)

slaveof :主從配置俏让,在redis-slave上配置master的ip port,即可

這樣,redis服務(wù)腳本指定的CONF就存在了首昔。默認(rèn)情況下寡喝,Redis未啟用認(rèn)證,可以通過開啟6379.conf的requirepass 指定一個(gè)驗(yàn)證密碼勒奇。

6)注冊(cè)redis服務(wù)

chkconfig --add redis

chkconfig redis on

7)加到環(huán)境變量中

#將Redis的命令所在目錄添加到系統(tǒng)參數(shù)PATH中

vi /etc/profile

#在最后行追加:

export PATH="$PATH:/data/web/redis/bin"

#然后馬上應(yīng)用這個(gè)文件:

./etc/profile

#或者

source/etc/profile

#這樣就可以直接調(diào)用redis-cli的命令了拘荡,如下所示:

redis-cli

redis127.0.0.1:6379> auth mypasswd

OK

redis127.0.0.1:6379>

8)啟動(dòng)redis服務(wù)

a)直接啟動(dòng)

./redis-server ./redis.conf &

#如果更改了端口,使用`redis-cli`客戶端連接時(shí)撬陵,也需要指定端口珊皿,例如:

redis-cli -p 6380

b)使用Redis啟動(dòng)腳本設(shè)置開機(jī)自啟動(dòng)(推薦)

service redis start

c)關(guān)閉之前備份

#有密碼

./redis-cli -a your_passwd save

#無密碼

./redis-cli save

d)停止

#使用客戶端redis-cli shutdown

#因?yàn)镽edis可以妥善處理SIGTERM信號(hào),所以直接kill -9也是可以的

kill -9 PID

#指定密碼關(guān)閉

/data/web/redis/bin/redis-cli -a your_passwd shutdown

e)備份的方式

#在從服務(wù)器上執(zhí)行下列命令:

redis-cli save

#關(guān)閉redis服務(wù)器

redis-cli shutdown

#然后巨税,拷貝數(shù)據(jù)目錄下的rdb文件蟋定。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市草添,隨后出現(xiàn)的幾起案子驶兜,更是在濱河造成了極大的恐慌,老刑警劉巖远寸,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抄淑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡驰后,警方通過查閱死者的電腦和手機(jī)肆资,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灶芝,“玉大人郑原,你說我怎么就攤上這事∫固椋” “怎么了犯犁?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長女器。 經(jīng)常有香客問我酸役,道長,這世上最難降的妖魔是什么驾胆? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任涣澡,我火速辦了婚禮,結(jié)果婚禮上俏拱,老公的妹妹穿的比我還像新娘暑塑。我一直安慰自己,他們只是感情好锅必,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般搞隐。 火紅的嫁衣襯著肌膚如雪驹愚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天劣纲,我揣著相機(jī)與錄音逢捺,去河邊找鬼。 笑死癞季,一個(gè)胖子當(dāng)著我的面吹牛劫瞳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绷柒,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼志于,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了废睦?” 一聲冷哼從身側(cè)響起伺绽,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗜湃,沒想到半個(gè)月后奈应,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡购披,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年杖挣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刚陡。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡程梦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橘荠,到底是詐尸還是另有隱情屿附,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布哥童,位于F島的核電站挺份,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏贮懈。R本人自食惡果不足惜匀泊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朵你。 院中可真熱鬧各聘,春花似錦、人聲如沸抡医。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至大脉,卻和暖如春搞监,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背镰矿。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工琐驴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秤标。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓绝淡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親苍姜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牢酵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容