溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Ubuntu14如何安裝php7擴(kuò)展

發(fā)布時(shí)間:2021-12-15 10:06:09 來(lái)源:億速云 閱讀:142 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)Ubuntu14如何安裝php7擴(kuò)展,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

Ubuntu14安裝php7的方法:1、安裝mysql;2、下載php源碼“php-7.2.27.tar.gz”并解壓到root目錄下;3、安裝編譯需要的依賴;4、創(chuàng)建安裝目錄;5、配置開(kāi)啟php-fpm支持即可。

本文操作環(huán)境:ubuntu14.04系統(tǒng),PHP7.2版,Dell G3電腦。

解決問(wèn)題:

  • 無(wú)法安裝php7.0

  • 以上版本 php上傳1M以上文件異常

  • php未指定Loaded Configuration File

  • php使用phpmailer ssl發(fā)送郵件異常

系統(tǒng):

服務(wù)器:Linux version 4.4.0-53-generic (buildd@lgw01-18) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #74~14.04.1-Ubuntu SMP Fri Dec 2 03:43:31 UTC 2016

安裝php7.0以上版本:

通過(guò)查詢,幾乎所有的教程都如下步驟
首先添加php官方源

$ sudo add-apt-repository ppa:ondrej/php

然后更新源

$ sudo apt-get update

然后安裝

$ sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readline

但實(shí)際操作下來(lái),無(wú)法找到7.0以上的源
錯(cuò)誤如下

root@iZuf624uxtr8143n2396iaZ:~# sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readlineReading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package php7.0
E: Couldn't find any package by regex 'php7.0'
E: Unable to locate package php7.0-cli
E: Couldn't find any package by regex 'php7.0-cli'E: Unable to locate package php7.0-fpm
E: Couldn't find any package by regex 'php7.0-fpm'
E: Unable to locate package php7.0-gd
E: Couldn't find any package by regex 'php7.0-gd'E: Unable to locate package php7.0-json
E: Couldn't find any package by regex 'php7.0-json'
E: Unable to locate package php7.0-mysql
E: Couldn't find any package by regex 'php7.0-mysql'E: Unable to locate package php7.0-readline
E: Couldn't find any package by regex 'php7.0-readline'

無(wú)奈只能自己下載安裝包,手動(dòng)安裝,中間各種踩坑,再此記錄一下,方便需要的小伙伴直接拿走,節(jié)省時(shí)間

使用安裝包,安裝php7.0以上版本:
  • 編譯環(huán)境:php-7.2.27

  • 靜態(tài)資源服務(wù)器:nginx/1.4.6 (Ubuntu)

  • 數(shù)據(jù)庫(kù):mysql

一、mysql安裝

1、安裝mysql ,安裝目錄/usr/bin/mysql 安裝步驟略

二、PHP安裝
1、下載php源碼php-7.2.27.tar.gz,并解壓到/root目錄下

$ tar -zxvf /root/php-7.2.27.tar.gz -C /root/

2、安裝編譯需要的依賴

①安裝libxml2-dev

$ sudo apt-get update 	 
$ sudo apt-get install libxml2-dev

②安裝gcc

$ sudo apt-get install build-essential

③安裝依賴庫(kù)

$ 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 libfreetype6-dev
$ sudo apt-get install libjpeg-dev
$ sudo apt-get install libpng-dev
$ sudo apt-get install libmcrypt-dev
$ sudo apt-get install libreadline6 libreadline6-dev
$ sudo apt-get install libbz2-dev

④安裝apache2-dev,否則無(wú)法指定–with-apxs2=/usr/bin/apxs來(lái)生成libphp7.so

sudo apt-get install apache2-dev

3、創(chuàng)建安裝目錄

$ mkdir /usr/local/php

4、切換到解壓編譯目錄

$ cd /root/php-7.2.27/

配置開(kāi)啟php-fpm支持,開(kāi)啟多線程支持–enable-maintainer-zts,否則無(wú)法使用Apache2的Event MPM功能。

①執(zhí)行:

$ ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/bin/mysql --enable-bcmath --enable-mbstring --with-gettext --enable-fpm --enable-shmop --enable-soap --enable-opcache --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar

②執(zhí)行:

$ make && make test
You can then email it to qa-reports@lists.php.net later.Do you want to send this report now? [Yns]:

$ make && sudo make install

較長(zhǎng)時(shí)間等待~~~

③執(zhí)行以下 :查看版本號(hào)

/usr/local/php/bin/php -v

5、配置php-fpm

進(jìn)入安裝目錄的etc下,復(fù)制php-fpm.conf.default到php-fpm.conf
進(jìn)入安裝目錄的etc/php-fpm.d下,復(fù)制www.conf.default到www.conf 此文件中可修改fpm的端口號(hào)

$ cd /usr/local/php/etc
$ cp php-fpm.conf.default php-fpm.conf

$ cd /usr/local/php/etc/php-fpm.d
$ cp www.conf.default www.conf
$ vim  /usr/local/php/etc/php-fpm.d/www.conf

修改 :
user = www-data
group = www-data
Eg:如果www-data用戶不存在,那么先添加www-data用戶

groupadd www-datauseradd -g www-data www-data

啟動(dòng)php-fpm 啟動(dòng)方式一

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

6、將php-fpm添加至init.d中

$ /usr/local/php/etc
$ Vim /usr/local/php/etc

編輯 php-fpm.conf 文件,將 ;pid = run/php-fpm.pid 前面的分號(hào)去掉 關(guān)閉fpm服務(wù),執(zhí)行:

$ killall php-fpm

進(jìn)入目錄(該目錄為php源碼包解壓后的目錄),找到 init.d.php-fpm 文件

$ cd /root/php-7.2.27/sapi/fpm/

將該文件復(fù)制到 /etc/init.d 目錄下并改名為 php-fpm

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

添加權(quán)限:

chmod +x /etc/init.d/php-fpm 
chkconfig --add php-fpm
chkconfig php-fpm on

啟動(dòng)php-fpm 啟動(dòng)方式二:

$ sudo /etc/init.d/php-fpm start

啟動(dòng)php-fpm 啟動(dòng)方式三:

$ service php-fpm start

fpm默認(rèn)使用9000端口號(hào),
lsof -i:9000查看詳情

三、服務(wù)器配置
1、apache2配置方案

安裝配置忽略

2、 nginx配置方案

安裝nginx sudo apt-get install nginx nginx指向fpm進(jìn)程管理器

Eg:

server {
        listen       80;
        server_name  ip地址或者域名;
        
		root /home/cms/phpProject/;
        
		location / {
			index index.html index.htm index.php;
			if (!-e $request_filename) {
			   rewrite  ^(.*)$  /index.php?s=/$1  last;
			   break;
			}
		}
		
		location ~ \.php(.*)$ {
			fastcgi_pass  127.0.0.1:9000;
			fastcgi_index index.php;
			fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
			fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
			fastcgi_param PATH_INFO $fastcgi_path_info;
			fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
			include       fastcgi_params;
		}
	
        access_log  /var/log/nginx/cms.access.log;
        error_log  /var/log/nginx/cms.error.log  info;}

將項(xiàng)目放入/home/cms/phpProject/ 下
將runtime設(shè)置權(quán)限

$ chmod +x /home/cms/phpProject/runtime/

啟動(dòng)nginx

$ /etc/nginx nginx

訪問(wèn)地址 ip/域名

四、其它注意點(diǎn)

1、runtime下模板文件權(quán)限導(dǎo)致系統(tǒng)無(wú)法訪問(wèn)問(wèn)題

日志在/home/cms/prod/runtime/目錄下
注意數(shù)據(jù)庫(kù)連接的端口號(hào)
注意cache文件的讀寫(xiě)狀態(tài)
chmod -R 777 /home/cms/phpProject/runtime/

2、lunix服務(wù)器php7.0+環(huán)境無(wú)法指向php.ini文件問(wèn)題,無(wú)法調(diào)整上傳文件大小問(wèn)題

通過(guò)phpinfo()查看PHP基本信息,發(fā)現(xiàn)未指定Loaded Configuration File
通過(guò)將php-fpm 指定到日志中查看strace /usr/local/php/sbin/php-fpm -i 2>1.log
將cp /usr/local/php/lib/php.ini /usr/local/php/etc/php.ini 拷貝到指定目錄下

上傳仍最大限制為1M,暫時(shí)未解決提升上傳最大限制問(wèn)題 解決方法待補(bǔ)充

3、2020-04-27問(wèn)題修復(fù)上傳大小限制問(wèn)題

通過(guò)問(wèn)題排查,發(fā)現(xiàn)是nginx文件上傳配置太小導(dǎo)致:
通過(guò)查看var/logs/nginx中的錯(cuò)誤文件,會(huì)有錯(cuò)誤如下

recv() failed (104: Connection reset by peer) while waiting for
request

修正:nginx.conf中調(diào)整參數(shù)

client_header_buffer_size 64k;
	large_client_header_buffers 4 64k;
	client_body_buffer_size 20m;
	fastcgi_buffer_size 128k;
	fastcgi_buffers 4 128k;
    fastcgi_busy_buffers_size 256k;
	fastcgi_connect_timeout 600;
	fastcgi_send_timeout 600;
	fastcgi_read_timeout 600;
	
	proxy_buffer_size 64k;
	proxy_buffers 4 128k;
	proxy_busy_buffers_size 256k;
	proxy_connect_timeout 600s;
	proxy_send_timeout 1200;
	proxy_read_timeout 1200;

重啟nginx后,圖片上傳,發(fā)現(xiàn)仍然報(bào)錯(cuò),打開(kāi)php日志,發(fā)現(xiàn)報(bào)錯(cuò)
[ error ] [2]mkdir(): Permission denied[/home/biotool/cms/prod/thinkphp/library/think/File.php:160]
記住,凡是遇到此類問(wèn)題都是無(wú)權(quán)限導(dǎo)致。
執(zhí)行:

chmod -R 777 /home/cms/prod/public/`

超過(guò)1M大圖片上傳成功

4、服務(wù)器郵件發(fā)送失敗,openssl未指定問(wèn)題

4.1、我的源碼在 /root/php-7.2.27 ,安裝位置在 /usr/local/php, php.ini 在/ usr/local/php/lib 下。如果沒(méi)有php.ini需要把源碼中的配置文件 php.ini-development 或php.ini-production改名成php.ini并放在lib下。
4.2、進(jìn)入openssl的擴(kuò)展目錄 :

cd /root/php-7.2.27/ext/openssl

3.3、運(yùn)行phpize

/usr/local/php7/bin/phpize

執(zhí)行后,發(fā)現(xiàn)錯(cuò)誤 無(wú)法找到config.m4 ,config0.m4就是config.m4。直接重命名

mv config0.m4 config.m4

執(zhí)行后若報(bào)

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

執(zhí)行: apt install autoconf

3.4、執(zhí)行安裝

./configure --with-openssl --with-php-config=/usr/local/php7/bin/php-config 
make&&make install

3.5、過(guò)程中可能出現(xiàn)libssl找不到,執(zhí)行下面的命令再重新執(zhí)行3.4對(duì)應(yīng)的執(zhí)行安裝

yum install openssl 
yum install openssl-devel

3.6、執(zhí)行安裝后,會(huì)提示在某個(gè)目錄生成.so文件,我生成的位置在

/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

3.7、打開(kāi)etc/ php.ini

vim /usr/local/php/etc/php.ini

添加下面兩句話

extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/"
extension=openssl.so

3.8、重啟php即可。

killall php-fpm
/usr/local/php/sbin/php-fpm

4、切換域名方式
4.1登錄中心節(jié)點(diǎn),將xxx.net域名對(duì)應(yīng)的代理轉(zhuǎn)發(fā)地址修改為: http://ip/
4.2登錄應(yīng)用服務(wù)器,server_name中添加ip
注:此處使用內(nèi)網(wǎng)地址,可提升跨服務(wù)之間的訪問(wèn)速度(帶寬20M)
配置成功后,訪問(wèn)xxx.net,網(wǎng)站切換成功,且訪問(wèn)速度比IP直接訪問(wèn)快

關(guān)于“Ubuntu14如何安裝php7擴(kuò)展”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI