Ubuntu16.04安裝php7(擴(kuò)展swoole)攘宙,composer,nginx拐迁,mysql5.7蹭劈,redis5,git

  1. 源碼安裝php7.2.5
// 下載和解壓
$ sudo apt-get update
$ wget http://am1.php.net/distributions/php-7.2.5.tar.gz
$ tar -xzf php-7.2.5.tar.gz
// 安裝curl线召,make 
$ sudo apt-get install curl
$ sudo apt-get install make
// 構(gòu)建必需的工具, 安裝依賴
$ sudo apt-get -y install build-essential
$ sudo apt-get -y install libxml2-dev          // PHP中XML相關(guān)的函數(shù)會(huì)用到這個(gè)庫(kù)
$ sudo apt-get -y install libssl-dev           // PHP中使用HTTPS流裝協(xié)議時(shí)需要這個(gè)庫(kù)
$ sudo apt-get -y install libcurl4-gnutls-dev  // PHP中的curl函數(shù)需要這個(gè)庫(kù)
$ sudo apt-get -y install libgd-dev            // GD铺韧,JPEG,PNG和其他與圖像相關(guān)的系統(tǒng)庫(kù)
$ sudo apt-get install libmcrypt-dev           // PHP中使用mcrypt加密和解密函數(shù)
// 進(jìn)入解壓的路徑缓淹,配置PHP
$ ./configure --prefix=/usr/local/php7.2.5 --enable-opcache --enable-fpm --enable-maintainer-zts --with-gd --with-zlib --with-jpeg-dir=/usr --with-png-dir=/usr --with-pdo-mysql=mysqlnd --with-mysqli --enable-mbstring --enable-sockets --with-curl --with-openssl --enable-pcntl --with-fpm-user=www-data --with-fpm-group=www-data
 // 文件系統(tǒng)中的一個(gè)目錄路徑哈打,這個(gè)目錄用于存放編譯得到的PHP二進(jìn)制文件,要引入的文件讯壶,庫(kù)和配置文件料仗。執(zhí)行./configure之前,--prefix選項(xiàng)設(shè)定的目錄要存在
--prefix=/usr/local/php7.2.5     

// 啟用PHP內(nèi)置的字節(jié)碼緩存系統(tǒng)
--enable-opcache           
         
//啟用PHP內(nèi)置的FastCGI進(jìn)程管理器
--enable-fpm            
            
// 讓PHP能與操作系統(tǒng)中的GD圖像處理庫(kù)交互
--with-gd

// 讓PHP能與操作系統(tǒng)中的Zlib庫(kù)交互
--with-zlib

// 指定JPEG庫(kù)在文件系統(tǒng)中的目錄路徑
--with-jpeg-dir

// 指定PNG庫(kù)文件系統(tǒng)中的目錄路徑
--with-png-dir

// 讓PHP使用原生的MySQL驅(qū)動(dòng)為MySQL數(shù)據(jù)庫(kù)啟用PDO數(shù)據(jù)庫(kù)抽象API
--with-pdo-mysql=mysqlnd

// 讓PHP支持多字節(jié)字符串
--enable-mbstring

// 讓PHP支持網(wǎng)絡(luò)套接字
--enable-sockets

// 讓PHP與操作系統(tǒng)中的curl庫(kù)交互
--with-curl

// 讓PHP與操作系統(tǒng)中的mcrypt庫(kù)交互
--with-mcrypt

// 讓PHP與操作系統(tǒng)中的openssl庫(kù)交互
--with-openssl

// 讓PHP支持多進(jìn)程編程
--enable-pcntl

// 讓PHP支持多線程編程
--enable-maintainer-zts
// 構(gòu)建并安裝PHP
$ sudo make && sudo make install
// 配置環(huán)境變量
$ vim ~/.bash_profile
  export PATH="$PATH:/usr/local/php7.2.5/bin/:/usr/local/php7.2.5/sbin"
$ source .bash_profile
// 檢查php.ini的路徑
$ php -i | grep php.ini

// 創(chuàng)建php.ini文件
$ cd /usr/local/php7.2.5/lib

// 從GitHub中的倉(cāng)庫(kù)下載php.ini-development文件鹏溯,將其命名為php.ini
$ sudo wget -O php.ini https://raw.githubusercontent.com/php/php-src/master/php.ini-development

// 復(fù)制php-fpm.conf 與 www.conf
$ sudo cp /usr/local/php7.2.5/etc/php-fpm.conf.default /usr/local/php7.2.5/etc/php-fpm.conf
$ sudo cp /usr/local/php7.2.5/etc/php-fpm.d/www.conf.default /usr/local/php7.2.5/etc/php-fpm.d/www.conf

$ sudo cp /usr/local/php7.2.5/sbin/php-fpm /bin

// 啟動(dòng)php-fpm
$ php-fpm

// 強(qiáng)制關(guān)閉
$ sudo pkill php-fpm

// 平滑重啟
$ sudo kill -USR2 'php-fpm master 進(jìn)程號(hào)'

php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信號(hào)控制: master進(jìn)程可以理解以下信號(hào)
1. INT, TERM 立刻終止
2. QUIT 平滑終止
3. USR1 重新打開(kāi)日志文件
4. USR2 平滑重載所有worker進(jìn)程并重新載入配置和二進(jìn)制模塊

  1. 安裝swoole擴(kuò)展
// swoole下載地址:
https://github.com/swoole/swoole-src/releases
http://pecl.php.net/package/swoole
http://git.oschina.net/swoole/swoole
// 下載與解壓swoole:
$ wget http://pecl.php.net/get/swoole-4.4.2.tgz
$ tar -xzf swoole-4.4.2.tgz
// 進(jìn)入解壓的目錄:
$ phpize (如果報(bào)錯(cuò)淹仑,先執(zhí)行 sudo apt-get install autoconf)
$ ./configure --with-php-config=/usr/local/php7.2.5/bin/php-config
$ make 
$ sudo make install
// 配置擴(kuò)展
$ echo 'extension=swoole.so' >> /usr/local/php7.2.5/lib/php.ini (通過(guò) php --ini 來(lái)找php.ini 絕對(duì)路徑)
// 檢查swoole擴(kuò)展
$ php -m
  1. 安裝composer與換倉(cāng)庫(kù)地址
// 創(chuàng)建一個(gè)目錄存放要下載的composer
$ mkdir composer && cd composer
// 下載composer
$ curl -sS https://getcomposer.org/installer | php

// 將二進(jìn)制文件移動(dòng)到/usr/local/bin 并改名為composer
$ sudo mv composer.phar /usr/local/bin/composer

// 賦予composer可執(zhí)行權(quán)限
$ sudo chmod +x /usr/local/bin/composer

// 在~/.bash_profile文件中添加環(huán)境變量
PATH = /usr/local/bin:$PATH
// 查看當(dāng)前 packagist 地址
$  composer config -g -l repo.packagist

// 更換為阿里的 packagist 鏡像服務(wù)
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

// 取消配置 (恢復(fù)為原來(lái)的配置)
$ composer config -g --unset repos.packagist
  1. 安裝nginx
$ echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list 
$ curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
$ apt-key fingerprint ABF5BD827BD9BF62
$ sudo apt-get update
$ sudo apt-get install -y nginx
$ nginx -v
  1. 安裝mysql5.7
// 更新與升級(jí)
$ sudo apt-get update && sudo apt-get upgrade

$ sudo apt-get install -y libaio1
// 下載解壓
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.24-1ubuntu16.04_amd64.deb-bundle.tar
$ tar -xf mysql-server_5.7.24-1ubuntu16.04_amd64.deb-bundle.tar
$ sudo dpkg -i mysql-common_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg-preconfigure mysql-community-server_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i libmysqlclient20_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i libmysqlclient-dev_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i libmysqld-dev_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i mysql-community-client_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i mysql-client_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i mysql-community-source_5.7.24-1ubuntu16.04_amd64.deb
$ sudo apt-get -f install
$ sudo apt-get -f install libmecab2
$ sudo dpkg -i mysql-community-server_5.7.24-1ubuntu16.04_amd64.deb
$ sudo dpkg -i mysql-server_5.7.24-1ubuntu16.04_amd64.deb

卸載mysql5.7

$ debconf-set-selections <<< "mysql-community-server mysql-community-server/remove-data-dir seen true"
$ apt -y purge mysql-*
$ rm -rf /etc/mysql /var/lib/mysql
  1. 源碼安裝redis5

安裝路徑:/usr/local/redis5

$ sudo mkdir /usr/local/redis5
$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
$ tar -xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5
$ sudo make  
$ sudo make PREFIX=/usr/local/redis5 install

// redis 配置
$ sudo mkdir /usr/local/redis5/etc/
$ sudo cp redis.conf /usr/local/redis5/etc/ 
$ cd /usr/local/redis5/bin/
$ sudo cp redis-benchmark redis-cli redis-server /usr/bin/

// 配置環(huán)境變量
$ vim ~/.bash_profile
  export PATH="$PATH:/usr/bin/:/usr/local/php7.2.5/bin/:/usr/local/php7.2.5/sbin"
$ source .bash_profile

// 調(diào)整下內(nèi)存分配使用方式并使其生效
$ sudo su
$ echo "vm.overcommit_memory=1">>/etc/sysctl.conf    #1表示內(nèi)核允許超量使用內(nèi)存直到內(nèi)存用完為止
$ sysctl -p

修改redis配置

$ vim /usr/local/redis5/etc/redis.conf

# 修改一下配置
# redis以守護(hù)進(jìn)程的方式運(yùn)行
# no表示不以守護(hù)進(jìn)程的方式運(yùn)行(會(huì)占用一個(gè)終端)  
daemonize yes

# 客戶端閑置多長(zhǎng)時(shí)間后斷開(kāi)連接丙挽,默認(rèn)為0關(guān)閉此功能                                      
timeout 300

# 設(shè)置redis日志級(jí)別,默認(rèn)級(jí)別:notice                    
loglevel verbose

# 設(shè)置日志文件的輸出方式,如果以守護(hù)進(jìn)程的方式運(yùn)行redis 默認(rèn):"" 
# 并且日志輸出設(shè)置為stdout,那么日志信息就輸出到/dev/null里面去了 
logfile stdout
// 啟動(dòng)服務(wù)    
$ redis-server /usr/local/redis5/etc/redis.conf
// 客戶端連接
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
  1. 安裝git
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt-get update && sudo apt-get install -y git
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末匀借,一起剝皮案震驚了整個(gè)濱河市颜阐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吓肋,老刑警劉巖凳怨,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肤舞,警方通過(guò)查閱死者的電腦和手機(jī)紫新,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)李剖,“玉大人芒率,你說(shuō)我怎么就攤上這事「菟常” “怎么了偶芍?”我有些...
    開(kāi)封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)德玫。 經(jīng)常有香客問(wèn)我匪蟀,道長(zhǎng),這世上最難降的妖魔是什么宰僧? 我笑而不...
    開(kāi)封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任材彪,我火速辦了婚禮,結(jié)果婚禮上撒桨,老公的妹妹穿的比我還像新娘查刻。我一直安慰自己,他們只是感情好凤类,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布穗泵。 她就那樣靜靜地躺著,像睡著了一般谜疤。 火紅的嫁衣襯著肌膚如雪佃延。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天夷磕,我揣著相機(jī)與錄音履肃,去河邊找鬼。 笑死坐桩,一個(gè)胖子當(dāng)著我的面吹牛尺棋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绵跷,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼膘螟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了碾局?” 一聲冷哼從身側(cè)響起荆残,我...
    開(kāi)封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎净当,沒(méi)想到半個(gè)月后内斯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蕴潦,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年俘闯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了潭苞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡备徐,死狀恐怖萄传,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜜猾,我是刑警寧澤秀菱,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站蹭睡,受9級(jí)特大地震影響衍菱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肩豁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一脊串、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧清钥,春花似錦琼锋、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至篡悟,卻和暖如春谜叹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搬葬。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工荷腊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人急凰。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓女仰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抡锈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疾忍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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