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 重新打開日志文件
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í)間后斷開連接,默認(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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容