本文是介紹使用源碼編譯安裝置蜀,包括具體的編譯參數(shù)信息。
正式開始前胁住,編譯環(huán)境gcc g++ 開發(fā)庫之類的需要提前裝好筹吐。
安裝make:
yum -y install gcc automake autoconf libtool make
安裝g++:
yum install gcc gcc-c++
一般我們都需要先裝pcre, zlib,前者為了重寫rewrite狮崩,后者為了gzip壓縮蛛勉。
1.選定源碼目錄
可以是任何目錄,本文選定的是/usr/local/src
2.安裝PCRE庫
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
下載最新的 PCRE 源碼包睦柴,使用下面命令下載編譯和安裝 PCRE 包:
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
tar -zxvf pcre-8.41.tar.gz
cd pcre-8.41
./configure
make && make install
3.安裝zlib庫
http://zlib.net/zlib-1.2.11.tar.gz?下載最新的 zlib 源碼包诽凌,使用下面命令下載編譯和安裝 zlib包:
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install
5.安裝nginx
以安裝最新穩(wěn)定版ngixn-1.10.2為例子,其他版本也一樣坦敌。
下面是把 Nginx 安裝到 /usr/local/nginx 目錄下的詳細步驟:
cd /usr/local/src
wget http://nginx.org/download/nginx-1.10.2.tar.gz
tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2
(1)1侣诵、添加nginx用戶和用戶組
?? groupadd -r nginx
?? useradd -r -g nginx nginx
(2)2、配置nginx安裝參數(shù)
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_mp4_module? \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre=/usr/local/src/pcre-8.41 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.0g \
注:當前所在目錄一定要是/usr/local/src/nginx-1.10.2
--with-pcre=/usr/local/src/pcre-8.41 指的是pcre-8.41 的源碼路徑狱窘。
--with-zlib=/usr/local/src/zlib-1.2.11 指的是zlib-1.2.11 的源碼路徑杜顺。
--with-openssl=/usr/local/src/openssl-1.1.0g 指的是openssl-1.1.0g 的源碼路徑。
(3)編譯安裝
make && make install
(4)啟動nginx
!!!前提確保80端口沒有被占用,如占用請自行修改
啟動命令:?? /usr/local/nginx/sbin/nginx
!可能會出現(xiàn)mkdir /var/tmp/nginx/client failed或者/var/tmp/nginx/client 不存在 的提示
這時手動創(chuàng)建就可以了
?mkdir -p /var/tmp/nginx/client
打開瀏覽器訪問此機器的 IP蘸炸,如果瀏覽器出現(xiàn) Welcome to nginx! 則表示 Nginx 已經(jīng)安裝并運行成功
注意:安裝完nginx 后cmd命令行會顯示一些nginx安裝目錄和 配置目錄
leaving directory '/usr/local/src/nginx-1.10.2'表示nginx 程序已經(jīng)離開安裝目錄/usr/local/src
以上cp...命令執(zhí)行,表示現(xiàn)在nginx已經(jīng)安裝在? /usr/local/nginx 目錄,相應(yīng)的配置文件.日志等也都在/usr/local/nginx目錄下
(6)nginx編譯選項
make是用來編譯的躬络,它從Makefile中讀取指令,然后編譯幻馁。
make install是用來安裝的洗鸵,它也從Makefile中讀取指令,安裝到指定的位置仗嗦。
configure命令是用來檢測你的安裝平臺的目標特征的膘滨。它定義了系統(tǒng)的各個方面,包括nginx的被允許使用的連接處理的方法稀拐,比如它會檢測你是不是有CC或GCC火邓,并不是需要CC或GCC,它是個shell腳本德撬,執(zhí)行結(jié)束時铲咨,它會創(chuàng)建一個Makefile文件。nginx的configure命令支持以下參數(shù):
--prefix=path定義一個目錄蜓洪,存放服務(wù)器上的文件?纤勒,也就是nginx的安裝目錄。默認使用/usr/local/nginx隆檀。
--sbin-path=path設(shè)置nginx的可執(zhí)行文件的路徑摇天,默認為prefix/sbin/nginx.
--conf-path=path設(shè)置在nginx.conf配置文件的路徑粹湃。nginx允許使用不同的配置文件啟動,通過命令行中的-c選項泉坐。默認為prefix/conf/nginx.conf.
--pid-path=path設(shè)置nginx.pid文件为鳄,將存儲的主進程的進程號。安裝完成后腕让,可以隨時改變的文件名 孤钦, 在nginx.conf配置文件中使用 PID指令。默認情況下纯丸,文件名 為prefix/logs/nginx.pid.
--error-log-path=path設(shè)置主錯誤偏形,警告,和診斷文件的名稱液南。安裝完成后壳猜,可以隨時改變的文件名 勾徽,在nginx.conf配置文件中 使用 的error_log指令滑凉。默認情況下,文件名 為prefix/logs/error.log.
--http-log-path=path設(shè)置主請求的HTTP服務(wù)器的日志文件的名稱喘帚。安裝完成后畅姊,可以隨時改變的文件名 ,在nginx.conf配置文件中 使用 的access_log指令吹由。默認情況下若未,文件名 為prefix/logs/access.log.
--user=name設(shè)置nginx工作進程的用戶。安裝完成后倾鲫,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令粗合。默認的用戶名是nobody。
--group=name設(shè)置nginx工作進程的用戶組乌昔。安裝完成后隙疚,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的為非特權(quán)用戶磕道。
--with-select_module--without-select_module?啟用或禁用構(gòu)建一個模塊來允許服務(wù)器使用select()方法供屉。該模塊將自動建立,如果平臺不支持的kqueue溺蕉,epoll伶丐,rtsig或/dev/poll。
--with-poll_module--without-poll_module啟用或禁用構(gòu)建一個模塊來允許服務(wù)器使用poll()方法疯特。該模塊將自動建立哗魂,如果平臺不支持的kqueue,epoll漓雅,rtsig或/dev/poll录别。
--without-http_gzip_module— 不編譯壓縮的HTTP服務(wù)器的響應(yīng)模塊羹与。編譯并運行此模塊需要zlib庫。
--without-http_rewrite_module不編譯重寫模塊庶灿。編譯并運行此模塊需要PCRE庫支持纵搁。
--without-http_proxy_module— 不編譯http_proxy模塊。
--with-http_ssl_module— 使用https協(xié)議模塊往踢。默認情況下腾誉,該模塊沒有被構(gòu)建。建立并運行此模塊的OpenSSL庫是必需的峻呕。
--with-pcre=path—?設(shè)置PCRE庫的源碼路徑利职。PCRE庫的源碼(版本4.4 - 8.30)需要從PCRE網(wǎng)站下載并解壓。其余的工作是Nginx的./ configure和make來完成瘦癌。正則表達式使用在location指令和 ngx_http_rewrite_module 模塊中猪贪。
--with-pcre-jit—編譯PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)讯私。
--with-zlib=path—設(shè)置的zlib庫的源碼路徑热押。要下載從 zlib(版本1.1.3 - 1.2.5)的并解壓。其余的工作是Nginx的./ configure和make完成斤寇。ngx_http_gzip_module模塊需要使用zlib 桶癣。
--with-cc-opt=parameters— 設(shè)置額外的參數(shù)將被添加到CFLAGS變量。例如,當你在FreeBSD上使用PCRE庫時需要使用:--with-cc-opt="-I /usr/local/include娘锁。.如需要需要增加select()支持的文件數(shù)量:--with-cc-opt="-D FD_SETSIZE=2048".
--with-ld-opt=parameters—設(shè)置附加的參數(shù)牙寞,將用于在鏈接期間。例如莫秆,當在FreeBSD下使用該系統(tǒng)的PCRE庫,應(yīng)指定:--with-ld-opt="-L /usr/local/lib".
nginx與PHP關(guān)系
nginx本身不能處理PHP间雀,它只是個web服務(wù)器,當接收到請求后镊屎,如果是php請求惹挟,則發(fā)給php解釋器處理,并把結(jié)果返回給客戶端杯道。
nginx一般是把請求發(fā)fastcgi管理進程處理匪煌,fascgi管理進程選擇cgi子進程處理結(jié)果并返回被nginx
本文以php-fpm為例介紹如何使nginx支持PHP
什么是PHP-FPM
PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下載得到.
PHP-FPM其實是PHP源代碼的一個補丁党巾,旨在將FastCGI進程管理整合進PHP包中萎庭。必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用齿拂。
新版PHP已經(jīng)集成php-fpm了驳规,不再是第三方的包了,推薦使用署海。PHP-FPM提供了更好的PHP進程管理方式吗购,可以有效控制內(nèi)存和進程医男、可以平滑重載PHP配置,比spawn-fcgi具有更多優(yōu)點捻勉,所以被PHP官方收錄了镀梭。在./configure的時候帶 –enable-fpm參數(shù)即可開啟PHP-FPM,其它參數(shù)都是配置php的踱启,具體選項含義可以查看這里报账。
安裝PHP前準備
centos下執(zhí)行
1 yum -y install gcc gcc-c++ glibc
2.
yum -y install libmcrypt-devel mhash-devel libxslt-devel \
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
3.進入安裝目錄
cd /usr/local/src
4.從網(wǎng)上下載PHP安裝包
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
!!!(這塊下載時間長一點,如果你執(zhí)行此命令后,幾分鐘就完成了,并且沒有顯示Complete!字樣,說明PHP下載出錯
可能顯示你下載了部分KB, 此時 說明你的下載地址有錯,請到網(wǎng)上查找其他下載地址,進入cmd執(zhí)行),如果出現(xiàn)
下載進度條的顯示,說明 地址正確,只需等待下載完成即可,100%
5.解壓
tar zvxf php-5.6.30.tar.gz
6.?? cd php-5.6.30
7.? groupadd www
???? useradd -g www -s /sbin/nologin www
8.編譯安裝
./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
9.? make && make install
以上就完成了php-fpm的安裝
下面是對php-fpm運行用戶進行設(shè)置
10.(1)為php提供配置文件
cp php.ini-production? /usr/local/php/lib/php.ini
(2)2、為php-fpm提供配置文件
? cd /usr/local/php
? cp etc/php-fpm.conf.default etc/php-fpm.conf
? vim etc/php-fpm.conf
修改
user = www-data
group = www-data
如果www-data用戶不存在埠偿,那么先添加www-data用戶
1 groupadd www-data
2 useradd -g www-data www-data
修改
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid?
3透罢、啟動php-fpm
執(zhí)行
1 /usr/local/php/sbin/php-fpm
使用如下命令來驗正(如果此命令輸出有中幾個php-fpm進程就說明啟動成功了):
1 ps aux | grep php-fpm
3、nginx和php-fpm整合
編輯/usr/local/nginx/nginx.conf
1 vim /usr/local/nginx/nginx.conf
修改如下:
紅框中“#”號去掉
添加紅框中內(nèi)容
改成如下
nginx解析PHP只需以下幾處
重新載入nginx的配置文件:
1 . ? /usr/loca/nginx/sbin/nginx -s reload
2冠蒋、測試php文件
?在/usr/local/nginx/html下創(chuàng)建index.php文件羽圃,輸入phpinfo();檢測
3、瀏覽器訪問
訪問http://你的服務(wù)器ip/index.php抖剿,皆可以見到php信息了朽寞。
如果沒有出現(xiàn)phpinfo信息,可能是nginx配置出錯,或者PHP-fpm沒有啟動,進入nginx目錄,
利用nginx -t? 測試nginx.conf 配置文件是否出錯,如有錯誤,解決掉,重新啟動nginx測試
從phpinfo信息中可以看到 nginx安裝目錄,項目根目錄,PHP安裝目錄等其他模塊的安裝路徑
以上項目根目錄默認在/usr/local/nginx/html,根據(jù)自己需要 可以修改nginx配置文件
參考:https://www.cnblogs.com/MBirds/p/6605366.html
Linux 目錄講解 : https://www.jb51.net/LINUXjishu/32180.html
安裝Mysql5.7(解壓縮版)
此處安裝是源碼安裝(自己選擇安裝目錄)
本地下載mysql5.7,用ftp上傳到服務(wù)器 /usr/local目錄
下載地址: http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar
推薦下載通用安裝方法的TAR包
1.(1)安裝mysql很有必要檢測本地服務(wù)器是否安裝有mysql
rpm -qa | grep mysql
如果此命令回車后,沒有任何輸出,則沒有安裝mysql,進行步驟2
如果此命令回車后,有輸出mysql版本,這刪除掉
rpm -e mysql-libs-5.1.52.x86_64(存在的版本,根據(jù)自己的修改) ? --nodeps
如圖所示
(2)另一個干擾項,坑爹的就是centos自帶的maridb的影響,安裝mysql前,確保maridb不存在
rpm?-qa?|?grep mariadb?????????????????????? //檢查數(shù)據(jù)庫自帶版本
rpm?-e?--nodeps mariadb-libs-5.5.37-1.el7_0.x86_64? //強制卸載
2.解壓TAR包,更改所屬的組和用戶
(1)cd? /usr/local/src
tar xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar
make && make install
更改用戶組,用戶
groupadd mysql
useradd -r -g mysql mysql
(2)cd 到mysql源碼目錄,復(fù)制mysql到/usr/local目錄下
cp mysql-5.7.12-linux-glibc2.5-x86_64? /usr/local/mysql
(3)cd /usr/local
?chown -R mysql mysql/
cd mysql/
(4)
bin/mysql_install_db--user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
這里可能會warning
這些都可以自行百度解決