一 PHP intl 是國際化擴展,是ICU 庫的一個包裝器。所以在安裝PHP intl擴展前要先安裝ICU庫,安裝ICU庫的具體步驟::
二 安裝intl擴展
1:進入php7.2.5源碼:
2:運行:phpize ,找不到命令時,將路徑補全:/usr/local/php7/bin/phpize(是php的安裝路徑),出現如下:
Configuring for:
PHP Api Version: 20100412
Zend Mole Api No: 20100525
Zend Extension Api No: 220100525
3:運行配置
./configure --enable-intl --with-icu-dir=/usr/local/icu/ --with-php-config=/usr/local/php7/bin/php-config
注:前面路徑為icu的安裝路徑,後面路徑為php的安裝路徑。
4:編譯擴展:make
5:復制擴展到目標文件夾
cp /user/local/php/php7.2.5/ext/intl/moles/intl.so /user/local/php7/lib/php/extensions/no-debug-non-zts-20170718
注意:也可以find / -name intl.so 查找。
6:設置擴展加入配置文件中:
[intl]
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/"
extension=intl.so
大坑:::採用phpinfo()時,無法找到配置的intl擴展,說明配置沒有生效。。。。。。
原因:在編譯php時沒有 --with-config-file-path=PATH 指定php.ini路徑,默認的路徑為/usr/local/php7/lib,只需要將php.ini放入這個默認的路徑即可。你也可以安裝配置php時加入,如下:
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --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-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs
訪問:index.php中phpinfo()文件。
Ⅱ 如何在openSUSE42.1下編譯安裝PHP7
首先推薦一篇文章
PHP
7
Release
Date
Arrived:
Will
Developers
Adopt
PHP
7?
-
PHP
Classes
blog
。
裡面說到是否會去使用PHP7,就個人而言,我是毫不猶豫地使用的,但是生產環境就不是我說了算,所以只能自己在自己的開發環境里更新PHP的版本。那麼,你呢?
筆者使用的是Linux的openSUSE42.1發行版,Yast裡面還沒有PHP7的安裝包,於是乎只能自己手動編譯安裝了。作為一個PHP開發者,我是非常希望能夠學會編譯安裝PHP7的,之前試過幾次,但是每次安裝都要上網找各種資料,於是乎,這次安裝成功後就想把自己的安裝過程以及遇到的問題記錄下來,方便以後查閱和分享給需要的人。
下載源碼並解壓
進入正題,要編譯安裝PHP7,首先當然要下載PHP7的源碼。你可以到
github
上clone,也可以到
PHP官網
下載。下載後解壓到
/usr/local/src
目錄,並將目錄重命名為php7。進入目錄。
配置編譯參數
生成配置文件
./buildconf
配置
./configure
\
--prefix=/usr/local/php7
\
--exec-prefix=/usr/local/php7
\
--bindir=/usr/local/php7/bin
\
--sbindir=/usr/local/php7/sbin
\
--includedir=/usr/local/php7/include
\
--libdir=/usr/local/php7/lib/php
\
--mandir=/usr/local/php7/php/man
\
--with-config-file-path=/usr/local/php7/etc
\
--with-mysql-sock=/var/run/mysql/mysql.sock
\
--with-mcrypt=/usr/include
\
--with-mhash
\
--with-openssl
\
--with-mysqli=shared,mysqlnd
\
--with-pdo-mysql=shared,mysqlnd
\
--with-gd
\
--with-iconv
\
--with-zlib
\
--enable-zip
\
--enable-inline-optimization
\
--disable-debug
\
--disable-rpath
\
--enable-shared
\
--enable-xml
\
--enable-bcmath
\
--enable-shmop
\
--enable-sysvsem
\
--enable-mbregex
\
--enable-mbstring
\
--enable-ftp
\
--enable-gd-native-ttf
\
--enable-pcntl
\
--enable-sockets
\
--with-xmlrpc
\
--enable-soap
\
--without-pear
\
--with-gettext
\
--enable-session
\
--with-curl
\
--with-jpeg-dir
\
--with-freetype-dir
\
--enable-opcache
\
--enable-fpm
\
--disable-cgi
\
--with-fpm-user=nginx
\
--with-fpm-group=nginx
\
--without-gdbm
\
--disable-fileinfo
參數說明
prefix
PHP7安裝的根目錄
with-config-file-path
PHP7的配置文件目錄
執行完上面的配置命令後的結果如下圖所示:
執行上面命令的過程中會遇到一些依賴缺少的提示,下面列出我遇到的依賴問題:
錯誤:
configure:
error:
xml2-config
not
found.
Please
check
your
libxml2
installation.
解決:
zypper
install
libxml2-devel
錯誤:
configure:
WARNING:
unrecognized
options:
--with-mysql
解決:
取消這個選項,這個選項是不存在的
錯誤:
configure:
error:
jpeglib.h
not
found.
解決:
zypper
install
libjpeg-devel
錯誤:
configure:
error:
mcrypt.h
not
found.
Please
reinstall
libmcrypt.
解決:
zypper
install
libmcrypt-devel
錯誤:
checking
for
recode
support...
yes
configure:
error:
Can
not
find
recode.h
anywhere
under
/usr
/usr/local
/usr
/opt.
解決:
zypper
install
librecode-devel
總的來說,在配置的時候遇到沒有的就打開Yast搜一下,如果有的話就安裝,然後重新編譯看還需要那些,如果在Yast找不到,那就上網找一下Google。
編譯和安裝PHP7
make
&&
make
install
其中,make之後可以選擇make
test。只是一個可選步驟,不執行不知道有什麼問題,不過筆者暫時還沒遇到。
查看安裝成功後的PHP7目錄
編譯安裝成功後,查看PHP7的安裝目錄`ls
/usr/local/php7`:
設置PHP7的配置文件
cp
/usr/local/src/php7/php.ini-proction
/usr/local/php7/etc/php.ini
cp
/usr/local/src/sapi/fpm/init.d.php-fpm
/etc/init.d/php-fpm
cp
/usr/local/php7/etc/php-fpm.conf.default
/usr/local/php7/etc/php-fpm.conf
cp
/usr/local/php7/etc/php-fpm.d/www.conf.default
/usr/local/php7/etc/php-fpm.d/www.conf
設置環境變數
在/etc/profile
文件的最後一行加上
export
PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH
然後執行
source
/etc/profile
設置PHP日誌目錄和php-fpm進程文件(php-fpm.sock)目錄
mkdir
-p
/var/log/php-fpm/
&&
mkdir
-p
/var/run/php-fpm
&&
cd
/var/run/
&&
chown
-R
nginx:nginx
php-fpm
將PHP設置為開機啟動
chmod
+x
/etc/init.d/php-fpm
chkconfig
php-fpm
on
可以用chkconfig命令查看開機啟動服務列表。
啟動PHP服務
service
php-fpm
start
通過ps
aux
|
grep
'php'查看PHP是否啟動成功
至此,PHP7就安裝成功了,你也開始使用PHP7吧!
Ⅲ 如何在CentOS 7中使用Nginx和PHP7-FPM安裝Nextcloud
先決條件64 位的 CentOS 7伺服器的 Root 許可權,在 CentOS 7 中安裝 Nginx 和 PHP7-FPM,在開始安裝 Nginx 和 php7-fpm 之數悔前,要先添加 EPEL 包的倉庫源。從 EPEL 倉庫來安裝 ,然後我們還需要為 php7-fpm 添加另外一個含畢擾倉庫。互聯網中有很個遠程倉庫提供了 PHP 7 系列包,然後就是安裝 PHP7-FPM 以及 Nextcloud 需要的一些包。最後,從伺服器終端里查看 PHP 的版本號,以便驗證 PHP 是否正確安裝。詳細你可以去後盾人看看,這些都是後盾人裡面的,哪裡有詳細的視頻教學都是高質量,我自己談旦就是在裡面學的。
Ⅳ php7中的php-fpm默認安裝在什麼地方
安裝後的PHP7配置文件所在路徑是 /usr/local/php7/etc 。該目錄下會有兩個配置文件: php-fpm.conf 和 php.ini ,以及一個文件夾 php-fpm.d (包含 www.conf 文件)。
Ⅳ 剛剛裝了php7 nginx下有多個php版本,怎麼選擇使用哪一個
因為nginx默認監聽的是127.0.0.1:9000埠,默認的9000埠已經被之前的php給佔用了,請按下面步驟配置即可:
1.cd /usr/local/php7/etc/php-fpm.d/www.conf,找到listen 127.0.0.1:9000,然後把9000修改成自定義的,我本人修改為9001,然後保存退出
2.cd /usr/local/nginx/conf/nginx.conf,找到fastcgi_pass這一行,修改為:fastcgi_pass 127.0.0.1:9001;
3.關閉低版本的php-fpm /etc/init.d/php-fpm stop
4.開啟php7的php-fpm /etc/init.d/php7-fpm start
5.重啟nginx service nginx restart
到這里就大功告成了,希望能幫助你!配上php7的phpinfo界面,讓我們一睹
Ⅵ 如何修改 php-fpm的運行用戶
第一種:一個php-fpm主進程
這種方式比較簡單,也只需要一個php-fpm自啟動文件。
首先我們查看一下原php-fpm.conf的這個配置文件,分為兩個部分,一個是global塊,另外一個是自定義的塊,配置文件裡面稱為pool池,默認叫「www」。在global池的上方,有一行注釋了的「include=etc/fpm.d/*.conf」配置項,再通過www池的配置,我們可知可以通過不同的池來配置不同的用戶,來達到多個用戶運行php-fpm的目的,步驟如下:
4、刪除前面的global塊,或者注釋掉。
5、修改[www]為其他,比如你[blog]。
6、配置[blog]池,主要修改兩個地方:
6.1:第一處為運行的用戶和用戶組。
即將
12user = www3group = www4。
修改為
12user=nobody #具體用哪個用戶視自己情況而定,我只做個示例3group=nobody4。
6.2:修改監聽的埠或者socket:
即將:
12listen = 127.0.0.1:90003。
修改為:
12listen = /var/socket/php-fpm/blog.socket #php-fpm需要自己創建,當然也可以直接放在php-fpm目錄下3。
修改成其他埠也是可以的,比如:listen = 127.0.0.1:9001。
7、到主配置文件 php-fpm.conf將「include=…」前面的注釋去掉,讓它去讀取fpm.d目錄下的配置文件。
8、到此第一種方案就修改完畢了,重新啟動測試一下:
12service php-fpm reload3。
第二種:兩個php-fpm主進程。
這種方法需要獨立的配置文件和獨立的自啟動文件:
1、復制一份php-fpm.conf主配置文件。
12cp php-fpm.conf php-fpm-blog.conf3。
2、修改主配置文件。
12vim php-fpm-blog.conf3。
2.1:修改[global]下pid和error_log文件的路徑。
修改 pid=run/php-fpm.pid 為 pid=run/php-fpm-blog.pid 。
修改 error_log = /log/php-fpm.log 為 error_log = /log/php-fpm-blog.log。
2.2:修改池的名稱[www]為[blog],不過這個可以不用修改了,因為這里和原來的進程是獨立的。
2.3:修改用戶和用戶組。
2.4:監聽埠或socket文件。
以上兩部可以按照第一種方案進行修改,這里就不再重復。
3、進入/etc/init.d目錄,復制一份自啟動文件。
12cp php-fpm php-fpm23。
4、修改自啟動文件php-fpm2:
4.1:修改配置文件路徑。
12php_fpm-CONF=${prefix}/etc/php-fpm.conf3。
為
12php_fpm-CONF=${prefix}/etc/php-fpm-blog.conf3。
這個路徑就是剛才的主配置文件。
4.2:修改PID文件路徑:
12php_fpm_PID=${prefix}/var/run/php-fpm.pid3。
為:
12php_fpm_PID=${prefix}/var/run/php-fpm-blog.pid3。
這個路徑要和主配置文件中的pid路徑一致。
5、修改完畢後添加自動啟動。
12chkconfig --add php-fpm23chkconfig --level 2345 php-fpm2 on4。
6、啟動服務。
Ⅶ 使用阿里雲搭建個人網盤(Nextcloud)
Nextcloud 是一款自由 (開源) 的類 Dropbox 軟體,由 ownCloud 分支演化形成。它使用 PHP 和 JavaScript 編寫,支持多種資料庫系統,比如 MySQL/MariaDB、PostgreSQL、Oracle 資料庫和 SQLite。它可以使你的桌面系統和雲伺服器中的文件保持同步,Nextcloud 為 Windows、Linux、Mac、安卓以及蘋果手機都提供了客戶端支持。Nextcloud 並非只是 Dropbox 的克隆,它還提供了很多附加特性,如日歷、聯系人、計劃任務以及流媒體 Ampache。
本文簡單講述如何在雲伺服器配置Nextcloud實現個人網盤,僅供學習與交流,請勿用於商業用途
系統環境:阿里雲 Centos7 無防火牆,無SElinux
安裝Nginx和php7
添加webtatic倉庫,裡面提供了php7
配置php7-fpm
修改配置文件,修改其用戶和組為nginx
檢查php-fpm使用埠
啟動php-fpm
安裝mariadb
啟動服務並初始化
創建nextcloud資料庫並授權給普通用戶
網路好就去nextcloud官網下載,網速慢從我的阿里雲下載,如下所示
解壓,並移動到web目錄下
更改nextcloud文件夾擁有者為nginx
官網有樣板,改成自己的配置即可,我這里是80埠,不使用ssl
測試nginx文件正確性
啟動nginx服務
瀏覽器訪問域名
輸入資料庫用戶名,資料庫用戶密碼,資料庫名稱,資料庫埠號
即可完成配置
Ⅷ 如何用php-fpm 執行php程序
第一步:確定php-fpm配置文件的路徑,執行:
ps -aux | grep php-fpm
圖中,我的是在 /soft/php7/etc/ 目錄,在這個目錄下有個php-fpm.d目錄,打開這個目錄後,找到www.conf文件,修改該文件里:
user = www
group = www
Ⅸ 如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安裝 Nextcloud
步驟 1 - 在 CentOS 7 中安裝 Nginx 和 PHP7-FPM
在開始安裝 Nginx 和 php7-fpm 之岩派咐前,我們還學要先添加 EPEL 包的倉庫源。使用如下命令:粗純
-------------------------------------
yum -y install epel-release
現在開始從 EPEL 倉庫來安裝 Nginx:
-------------------------------------
yum -y install nginx
然後我們還需要為 php7-fpm 添加另外一個倉庫。互聯網中有很個遠程倉庫提供了 PHP 7 系列包羨橡,我在這里使用的是 webtatic。
添加 PHP7-FPM webtatic 倉庫:
Ⅹ 如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安裝 Nextcloud
Nextcloud 是一款自由 (開源) 的類 Dropbox 軟體殲凳,由 ownCloud 分支演化形成。它使用 PHP 和 Javascript 編寫,支持多種資料庫系統,比如 MySQL/MariaDB、PostgreSQL、Oracle 資料庫和 SQLite。它可以使你的桌面系統和雲伺服器中的文件保持同步,Nextcloud 為 Windows、Linux、Mac、安卓以及蘋果手機都提供了客戶端支持。Nextcloud 並非只是 Dropbox 的克隆,它還提供了很多附加特性,如日歷、聯系人、計劃任務以及流媒體 Ampache。
在這篇文章中緩改游,我將向你展示如何在 CentOS 7 伺服器中安裝和配置最新版本的 Nextcloud 10。我會通過 Nginx 和 PHP7-FPM 來運行 Nextcloud,同時使用 MariaDB 做為資料庫系統。
先決條件64 位的 CentOS 7伺服器的 Root 許可權
步驟 1 - 在 CentOS 7 中安裝 Nginx 和 PHP7-FPM
在開始安裝 Nginx 和 php7-fpm 之前,我們還學要先添加 EPEL 包的倉庫源。使用如下命令:
-------------------------------------
yum -y install epel-release
現在開擾銷始從 EPEL 倉庫來安裝 Nginx:
-------------------------------------
yum -y install nginx
然後我們還需要為 php7-fpm 添加另外一個倉庫。互聯網中有很個遠程倉庫提供了 PHP 7 系列包,我在這里使用的是 webtatic。
添加 PHP7-FPM webtatic 倉庫:
-------------------------------------
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
然後就是安裝 PHP7-FPM 以及 Nextcloud 需要的一些包。
復制代碼 代碼如下:
yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json php70w-pecl-apcu php70w-pecl-apcu-devel
最後,從伺服器終端里查看 PHP 的版本號,以便驗證 PHP 是否正確安裝。
-------------------------------------
php -v