天天看点

php7源码安装

安装php7的过程:

1.tar zxf php-x.x.x

2.Configure and build PHP. This is where you customize PHP with various options, 

like which extensions will be enabled. Run ./configure --help for a list of available options. 

In our example we'll do a simple configure with PHP-FPM and MySQL support.

cd ../php-x.x.x

./configure --enable-fpm --with-mysql

make

sudo make install

3.

Obtain and move configuration files to their correct locations

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

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

cp sapi/fpm/php-fpm /usr/local/bin

4.

It is important that we prevent Nginx from passing requests to the PHP-FPM backend

 if the file does not exists, allowing us to prevent arbitrarily script injection.

 vim /usr/local/php/php.ini

 cgi.fix_pathinfo=0

5.

php-fpm.conf must be modified to specify that 

php-fpm must run as the user www-data and the group www-data before we can start the service:

vim /usr/local/etc/php-fpm.conf

; Unix user/group of processes

; Note: The user is mandatory. If the group is not set, the default user's group

;       will be used.

user = www-data

group = www-data

6.

The php-fpm service can now be started:

/usr/local/bin/php-fpm

7.

Nginx must now be configured to support the processing of PHP applications:

vim /usr/local/nginx/conf/nginx.conf

Modify the default location block to be aware it must attempt to serve .php files:

location / {

    root   html;

    index  index.php index.html index.htm;

}

8. The next step is to ensure that .php files are passed to the PHP-FPM backend.

 Below the commented default PHP location block, enter the following:

location ~* \.php$ {

    fastcgi_index   index.php;

    fastcgi_pass    127.0.0.1:9000;

    include         fastcgi_params;

    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;

    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;

9.Restart Nginx.

sudo /usr/local/nginx/sbin/nginx -s stop

sudo /usr/local/nginx/sbin/nginx

10.Create a test file

错误一、在配置的时候会报错,需要安装libxml2-dev和libxml2包

错误二、另外启动的时候报错:

cp /root/php-7.0.0alpha1/sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf

错误三、

ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' (ret = 2) from /usr/local/etc/php-fpm.conf at line 125. 

ERROR: failed to load configuration file '/usr/local/etc/php-fpm.conf' 

ERROR: FPM initialization failed

Edit /usr/local/etc/php-fpm.conf document introduced * .conf part, 

change to the correct path include = / usr / local / etc / php-fpm.d / *. Conf

If there is no /usr/local/etc/php-fpm.d directory, create the directory.

错误四:

WARNING: Nothing matches the include pattern '/usr/local/etc/php-fpm.d/*.conf' from /usr/local/etc/php-fpm.conf at line 125. 

ERROR:. No pool defined at least one pool section must be specified in config file 

ERROR: failed to post process the configuration 

cp www.conf.default www.conf

错误五:

ERROR: [pool www] can not get gid for group 'nobody' 

Www.conf open files, user and group users into nginx default settings, usually the default is www-data.

增加配置:

php-fpm.conf中:

[global]

; Note: the default prefix is /usr/local/php/var

error_log = log/php_error_log

[www]

catch_workers_output = yes

php.ini中:

log_errors = On

error_log = "/usr/local/php/var/log/error_log"

error_reporting=E_ALL&~E_NOTICE

本文转自chenzudao51CTO博客,原文链接: http://blog.51cto.com/victor2016/1902592,如需转载请自行联系原作者

继续阅读