ubuntu下編譯安裝nginx以及php7筆記

最近在ubuntu上部署php的開發(fā)環(huán)境花了不少時(shí)間理茎,在安裝成功后,又安裝了一遍,在這做個(gè)日志,總結(jié)一下經(jīng)驗(yàn)

加載依賴包:

sudo apt-get update

sudo apt-get install libxml2-dev

sudo apt-get install build-essential

sudo apt-get install openssl

sudo apt-get install libssl-dev

sudo apt-get install make

sudo apt-get install curl

sudo apt-get install libcurl4-gnutls-dev

sudo apt-get install libjpeg-dev

sudo apt-get install libpng-dev

sudo apt-get install libtool-bin

sudo apt-get install bison

sudo apt-get install zlib1g-dev libpcre3 libpcre3-dev libssl-dev libxslt1-dev? libgeoip-dev libgoogle-perftools-dev libperl-dev libtool

sudo apt-get install libxml2-dev?build-essential?openssl??libssl-dev?make?curl??libcurl4-gnutls-dev?libjpeg-dev??libpng-dev?libtool-bin?bison??zlib1g-dev libpcre3 libpcre3-dev libssl-dev libxslt1-dev? libgeoip-dev libgoogle-perftools-dev libperl-dev libtool?



編譯安裝nginx:

1细诸、下載新版本,到官網(wǎng)復(fù)制下載鏈接

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

2陋守、解壓tar -zxvf nginx-1.17.4.tar.gz

3震贵、編譯安裝

# 進(jìn)入解壓目錄:

cd nginx-1.17.4.tar.gz

# 配置并編譯安裝nginx:

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-mail=dynamic

sudo make

sudo make install

# 啟動nginx:

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#注意:-c 指定配置文件的路徑,不加的話水评,nginx會自動加載默認(rèn)路徑的配置文件猩系,可以通過 -h查看幫助命令。

# 查看nginx進(jìn)程:

ps -ef|grep nginx

# 建立軟鏈接(由于/usr/local/bin包含于$PATH當(dāng)中中燥,這樣就不需要額外的設(shè)置環(huán)境變量了寇甸,這意味著可以在其他路徑下直接運(yùn)行nginx命令)

#(創(chuàng)建鏈接)

sudo ln -s /opt/dotnet/dotnet /usr/local/bin

編譯選項(xiàng)說明:

--prefix=path 如果在編譯的不指定安裝位置,那么默認(rèn)的位置/usr/local/nginx目錄

--sbin-path=path 設(shè)置nginx執(zhí)行腳本的位置疗涉,這里如果設(shè)置在path變量里面拿霉,就可以在bash環(huán)境下,任意使用nginx命令博敬,默認(rèn)位置prefix/sbin/nginx? 注意這里的prefix是在配置文件里面配置的路徑

--conf-path=path 配置nginx配置文件的路徑友浸,如果不指定這個(gè)選項(xiàng)峰尝,那么配置文件的默認(rèn)路徑就會是 prefix/conf/nginx.conf

--pid-path =path 配置nginx.pid file的路徑偏窝,一般來說,進(jìn)程在運(yùn)行的時(shí)候的時(shí)候有一個(gè)進(jìn)程id武学,這個(gè)id會保存在pid file里面祭往,默認(rèn)的pid file的放置位置是prefix/logs/nginx.pid

--error-log-path=path 設(shè)置錯誤日志的存放路徑,如果不指定火窒,就默認(rèn) prefix/logs/error.log

--http-log-path= path 設(shè)置http訪問日志的路徑硼补,如果不指定,就默認(rèn) prefix/logs/access.log

--user=name 設(shè)置默認(rèn)啟動進(jìn)程的用戶熏矿,如果不指定已骇,就默認(rèn) nobody

--group=name 設(shè)置這個(gè)用戶所在的用戶組,如果不指定票编,依然是nobody

--with-http_ssl_module 開啟HTTP SSL模塊褪储,使NGINX可以支持HTTPS請求。需要安裝了OPENSSL

--with-http_flv_module

--with-http_stub_status_module 啟用 "server status" 頁

--without-http_gzip_module 禁用 ngx_http_gzip_module. 如果啟用慧域,需要 zlib

--without-http_ssi_module 禁用 ngx_http_ssi_module

--without-http_referer_module 禁用 ngx_http_referer_module

--without-http_rewrite_module 禁用 ngx_http_rewrite_module. 如果啟用需要 PCRE 鲤竹。

--without-http_proxy_module 禁用 ngx_http_proxy_module

--without-http_fastcgi_module 禁用 ngx_http_fastcgi_module

--without-http_memcached_module 禁用 ngx_http_memcached_module

--without-http_browser_module 禁用 ngx_http_browser_module

--http-proxy-temp-path=PATH 設(shè)置路徑到the http proxy temporary files

--http-fastcgi-temp-path=PATH 設(shè)置路徑到Set path to the http fastcgi temporary files

--without-http 禁用 HTTP server

--with-mail 啟用 IMAP4/POP3/SMTP 代理模塊

--with-mail_ssl_module 啟用ngx_mail_ssl_module

--with-openssl=DIR 設(shè)置路徑到OpenSSL library sources

--with-stream 用來實(shí)現(xiàn)四層協(xié)議的轉(zhuǎn)發(fā)、代理或者負(fù)載均衡等

自動啟動nginx:

編譯安裝需要自己進(jìn)行設(shè)置方可自動啟動

# 設(shè)置nginx自啟動昔榴,在/lib/systemd/system/ 目錄下創(chuàng)建一個(gè)服務(wù)文件

vim /lib/systemd/system/nginx.service

內(nèi)容如下:

[Unit]

Description=nginx - high performance web server

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]

WantedBy=multi-user.target

文件說明

[Unit]部分

Description:描述服務(wù)

After:依賴辛藻,當(dāng)依賴的服務(wù)啟動之后再啟動自定義的服務(wù)

[Service]部分

Type=forking是后臺運(yùn)行的形式

ExecStart為服務(wù)的具體運(yùn)行命令(需要根據(jù)路徑適配)

ExecReload為重啟命令(需要根據(jù)路徑適配)

ExecStop為停止命令(需要根據(jù)路徑適配)

PrivateTmp=True表示給服務(wù)分配獨(dú)立的臨時(shí)空間

注意:啟動碘橘、重啟、停止命令全部要求使用絕對路徑

[Install]部分

服務(wù)安裝的相關(guān)設(shè)置吱肌,可設(shè)置為多用戶

# 設(shè)置了自啟動后痘拆,任意目錄下執(zhí)行

systemctl enable nginx.service

# 啟動nginx服務(wù)

systemctl start nginx.service

# 設(shè)置開機(jī)自動啟動

systemctl enable nginx.service

# 停止開機(jī)自動啟動

systemctl disable nginx.service

# 查看狀態(tài)

systemctl status nginx.service

# 重啟服務(wù)

systemctl restart nginx.service

# 查看所有服務(wù)

systemctl list-units --type=service

PHP編譯安裝

1.下載、解壓

#版本根據(jù)自身需求下載

wget http://am1.php.net/distributions/php-7.2.12.tar.gz

sudo tar-zxvf php-7.2.12.tar.gz

cd php-7.2.12/

2.查看安裝幫助,執(zhí)行配置腳本來進(jìn)行編譯預(yù)處理

./configure --help

#不添加 --with-gd ,添加的 --with-gd將無法安裝jpeg的擴(kuò)展

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir? --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip

編譯預(yù)處理可能會出現(xiàn)一些error,一般是缺少依賴包的原因氮墨,根據(jù)提示安裝即可

特別強(qiáng)調(diào)一個(gè)錯誤错负,編譯預(yù)處理出現(xiàn)include/curl 不存在錯誤,但是明明已經(jīng)安裝了curl勇边,可能出現(xiàn)的問題是所需的curl目錄信息不在include目錄下犹撒,

錯誤:configure: error: Cannot find OpenSSL's libraries

原文:https://blog.csdn.net/qq_16399991/article/details/73604324

apt-get install build-essential libexpat1-dev libgeoip-dev libpng-dev libpcre3-dev libssl-dev libxml2-dev rcs zlib1g-dev libmcrypt-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libwebp-dev pkg-config


找到curl的目錄夾所在,將curl目錄文件復(fù)制到include中(遇到時(shí)使用的方法)或創(chuàng)建軟連接

已安裝crul卻一直出現(xiàn)include/curl 不存在錯誤粒褒,curl的版本與php擴(kuò)展的curl不兼容识颊,下載更的php版本(php7.2)


4.預(yù)處理通過之后就可以make編譯了

sudo make

sudo make install

5.配置php

編譯安裝成功后,一般可以在usr/local找到安裝的php/

/php.ini

# cp php.ini-development /usr/local/php/lib/php.ini

//php-fpm

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

# cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm 或cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

需要注意的是php7中www.conf這個(gè)配置文件配置phpfpm的端口號等信息奕坟,如果你修改默認(rèn)的9000端口號需在這里改祥款,再改nginx的配置

6.啟動

#cd /usr/local/php/etc/php-fpm.d/

#sudo vim www.conf

//修改

user = www

group = www

#adduser www

# /etc/init.d/php-fpm start ? ? //或者

#sudo /usr/local/php/sbin/php-fpm


nginx配置

server{ listen 80;

? ? ? ? server_name? www.test.com;

? ? ? ? root? "/var/www/html/test/public";

? ? ? ? index?? index.php index.htm index.html;

? ? ? ? charset UTF-8;

? ? ? ? location / {

? ? ? ? ? ? if (!-e $request_filename) {

??????????????????? #rewrite ^(.*)$ /index.php?s=/$1 last; #//tp隱藏index.php

??????????????????? #break;?

???????????????????? rewrite ^.*$ /index.php;

? ? ? ? ? ? }?

? ? ? ? }?

? ? ? ? location ~ \.php$ {

? ? ? ? ? ? fastcgi_pass? 127.0.0.1:9000;

? ? ? ? ? ? fastcgi_index? index.php;

? ? ? ? ? ? fastcgi_param? SCRIPT_FILENAME? $document_root$fastcgi_script_name;

? ? ? ? ? ? include? ? ? ? fastcgi_params;

? ? ? }?

}

安裝php7.3編譯擴(kuò)展報(bào)錯

問題:configure.ac:20: error: Autoconf version 2.68 or higher is required

下載更高版本的autoconf,2.68及以上

#sudo ./configure --with-php-config=/usr/local

#sudo make && make install

安裝Gd庫擴(kuò)展

因?yàn)閜hp編譯安裝直接使用--with gd沒有安裝jpeg圖片處理擴(kuò)展月杉,所以在這里手動編譯安裝

?進(jìn)入php安裝包ext/gd

make clean

apt-get install libfreetype6-dev

?./configure --with-php-config=/usr/local/php/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-zlib-dir --with-gd

make?

make install

php.ini 添加extension=gd.so

安裝yaf擴(kuò)展

1.下載yaf擴(kuò)展

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

#tar -zxvf yaf-3.0.8.tgz

#cd yaf-3.0.7/

#sudo /usr/local/php/bin/phpize

#sudo ./configure --with-php-config=/usr/local/php/bin/php-config

#sudo make && make install

在php.ini中加入

[yaf]

yaf.library = NULL

yaf.cache_config = 0

yaf.name_suffix = 1

yaf.name_separator = ""

yaf.forward_limit = 5

yaf.use_namespace = 1

yaf.use_spl_autoload = 0

extension=yaf.so

具體配置的需要參考yaf手冊

安裝redis服務(wù)刃跛、redis擴(kuò)展

1.下載redis服務(wù),解壓并安裝:

#sudo tar -zxvf redis-4.0.9.tar.gz

#cd redis-4.0.9/

#sudo make

#sudo make install

2.下載安裝redis擴(kuò)展苛萎,并編譯安裝

#wget http://pecl.php.net/get/redis-4.3.0.tgz

#sudo tar -zxvf redis-4.3.0.tgz

#cd redis-4.3.0/

#sudo /usr/local/php/bin/phpize

#sudo ./configure --with-php-config=/usr/local/php/bin/php-config

#sudo make

#sudo make install

3.最后老樣子桨昙,在php.ini加上:

extension=redis.so

第一次分享自己的經(jīng)驗(yàn),希望能幫助到大家腌歉!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛙酪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翘盖,更是在濱河造成了極大的恐慌桂塞,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馍驯,死亡現(xiàn)場離奇詭異阁危,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)汰瘫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門狂打,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吟吝,你說我怎么就攤上這事菱父。” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵浙宜,是天一觀的道長官辽。 經(jīng)常有香客問我,道長粟瞬,這世上最難降的妖魔是什么同仆? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮裙品,結(jié)果婚禮上俗批,老公的妹妹穿的比我還像新娘。我一直安慰自己市怎,他們只是感情好岁忘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著区匠,像睡著了一般干像。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驰弄,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天麻汰,我揣著相機(jī)與錄音,去河邊找鬼戚篙。 笑死五鲫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岔擂。 我是一名探鬼主播位喂,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼智亮!你這毒婦竟也來了忆某?” 一聲冷哼從身側(cè)響起点待,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤阔蛉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后癞埠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體状原,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年苗踪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了颠区。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡通铲,死狀恐怖毕莱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤朋截,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布蛹稍,位于F島的核電站,受9級特大地震影響部服,放射性物質(zhì)發(fā)生泄漏唆姐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一廓八、第九天 我趴在偏房一處隱蔽的房頂上張望奉芦。 院中可真熱鬧,春花似錦剧蹂、人聲如沸声功。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽减噪。三九已至,卻和暖如春车吹,著一層夾襖步出監(jiān)牢的瞬間筹裕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工窄驹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朝卒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓乐埠,卻偏偏與公主長得像抗斤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子丈咐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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