linux 下php环境搭建

 

 

 

 

Centos 先用root安装这一堆

 

yum install libpng
yum install libpng-devel
yum -y install libjpeg-devel
yum -y install curl-devel
yum install bzip2
yum install bzip2-devel
yum install libxml2
yum install libxml2-devel -y
yum install libmcrypt
yum install libmcrypt-devel

 


 

makefile

./configure --prefix=/data/php  --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --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 --with-mysql --with-mysqli \--with-gd --with-jpeg-dir

make

 

出现一些错误:

RFC: DateTime and Daylight Saving Time Transitions (zone type 3, bd2) [ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-bd2.phpt]  XFAIL REASON: Still not quite right
RFC: DateTime and Daylight Saving Time Transitions (zone type 3, fs) [ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-fs.phpt]  XFAIL REASON: Still not quite right
Bug #42718 (unsafe_raw filter not applied when configured as default filter) [ext/filter/tests/bug42718.phpt]  XFAIL REASON: FILTER_UNSAFE_RAW not applied when configured as default filter, even with flags
Bug #67296 (filter_input doesn't validate variables) [ext/filter/tests/bug49184.phpt]  XFAIL REASON: See Bug #49184
zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
Bug #45712 (NaN/INF comparison) [ext/standard/tests/math/bug45712.phpt]  XFAIL REASON: Bug 45712 not fixed yet.
=====================================================================
 
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #52202 (CURLOPT_PRIVATE gets clobbered) [ext/curl/tests/bug52202.phpt]
Phar: phpinfo display 1 [ext/phar/tests/phpinfo_001.phpt]
Phar: phpinfo display 2 [ext/phar/tests/phpinfo_002.phpt]
Phar: phpinfo display 4 [ext/phar/tests/phpinfo_004.phpt]
Test setlocale() function : usage variations - Setting all available locales in the platform [ext/standard/tests/strings/setlocale_variation2.phpt]
=====================================================================
 
=====================================================================
WARNED TEST SUMMARY
---------------------------------------------------------------------
zend multibyte (2) [ext/mbstring/tests/zend_multibyte-02.phpt] (warn: XFAIL section but test passes)
zend multibyte (6) [ext/mbstring/tests/zend_multibyte-06.phpt] (warn: XFAIL section but test passes)
=====================================================================
 
You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it.  You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: n

 

不用管,继续安装

make install

 

chown root /安装目录/sbin/php-fpm 
chmod u+s /安装目录/sbin/php-fpm

 

拷贝配置文件

cp php.ini-production /安装目录/lib/php.ini  #php配置文件
 
cp /安装目录/etc/php-fpm.conf.default /安装目录/etc/php-fpm.conf #php-fpm配置文件

 设置你的配置文件

vi php-fpm.conf
 
user = 你创建的非root用户
group = 你创建的非root用户组

 

 启动php-fpm

/安装目录/sbin/php-fpm

 

结束进程php-fpm(root权限)

pkill php-fpm

 

 查看是否启动成功: 

netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN

 

 启动nginx

/安装目录/nginx/nginx

测试一下数据库的连接:

<?php
echo"asdasdasd";
$DB = mysql_connect ( "数据库地址" , "用户名" , "密码" ) ;
if($DB)
{echo "链接成功";}
else
{echo "链接失败";}?>

 

 

Notice: Undefined variable的解决办法:

 

 PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题:

Notice: Undefined variable

    这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题。

    需要设置显示错误级别,来解决问题。

    网络上的通用解决办法是修改php.ini的配置:

    解决方法:

   

1) error_reporting设置:
    找到error_reporting = E_ALL
    修改为error_reporting = E_ALL & ~E_NOTICE