小白linux安裝php 5.6+nginx配置(踩坑版)


因為要搭建個知識庫,直接用wordpress,這前提是得先裝php,實在不喜歡XAMPP,所以自己折騰,沒想到php這一來還不少啊,從頭到尾折騰了一個小時多。記錄下主要的流程和遇到的坑。

首先官網下載php,http://php.net/downloads.php,用的是5.6.28的版本。

下載后,上傳到服務器隨意目錄。

groupadd www

useradd -g www www

tar xzvf php-5.6.28.tar.gz

完了后,configure編譯,如下:

# ./configure \ --prefix=/usr/local/php56 \ --with-config-file-path=/usr/local/php56/etc \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-opcache \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gettext \ --enable-mbstring \ --with-iconv \ --with-mcrypt \ --with-mhash \ --with-openssl \ --enable-bcmath \ --enable-soap \ --with-libxml-dir \ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --with-curl \ --with-zlib \ --enable-zip \ --with-bz2 \ --with-readline
這個時候有可能會出現下列錯誤:
mcrypt.h not found. Please reinstall libmcrypt
原因:centos源不能安裝libmcrypt-devel,由於版權的原因沒有自帶mcrypt的包
下載libmcrypt-2.5.8.tar.gz,然后安裝,如下:

tar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local

此時可能會出現如下錯誤:

configure: error: C++ compiler cannot create executables

靠譜的解決方法是:

yum install gcc gcc-c++ gcc-g77
然后重新執行,問題應該就解決了。

make
make install

然后重新configure,此時可能會遇到下列錯誤:
error: Don't know how to define struct flock on this system, set --enable-op
靠譜的解決方法是:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

export LD_LIBRARY_PATH=/lib/:/usr/lib/:/usr/local/lib:/usr/local/mysql/lib

再執行,應該不會報錯了。
make
make install

注:在低配置的服務器比如小於1gb時,有可能make時出現如下錯誤:

make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

解決辦法

這是由於內存小於1G所導致.

在./configure加上選項:

--disable-fileinfo

Disable fileinfo support 禁用 fileinfo

或者,重新make可能會過去。

[root@dev3 bin]# ./php -version
PHP 5.6.28 (cli) (built: Nov 18 2016 13:02:58)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

 

配置php

[root@dev3 php-5.6.28]#

cp php.ini-development /usr/local/php56/etc/php.ini

配置php-fpm 服務

# cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf # cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm56 # chmod +x /etc/init.d/php-fpm56

啟動 php-fpm

# service php-fpm56 start Starting php-fpm done

到此為止,php本身的安裝和配置就完成了,如何驗證呢。。。。

很重要的一點是:php本身並不是一個web服務器,只是一個web服務器后面的cgi實現,就像java本身並不提供http服務一樣,前台有個tomcat。
所以php要依賴於nginx或者apache作為前置,因為我們一直用nginx,所以以nginx為例。
首先,我不得不說nginx自帶的nginx.conf中配置php的示例代碼是坑。。。
讀者直接參考php官方給的即可,http://php.net/manual/zh/install.unix.nginx.php。親測,沒有問題的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM