环境搭建之 CentOS下源码编译安装PHP(针对5.5.20.tar版本可以正常使用!!!)

安装php编译源码安装

 先卸载安装过的php(可能通过rpm安装,可能通过yum安装要先卸载掉)

第一种 rpm安装的情况下:

rpm -qa|grep -i php     ---先查找关于php的rpm的系统上安装的包

ps -ef|grep php-fpm

普通卸载(没有考虑依赖包)rpm –e mod_auth_mysql    ----为普通卸载

存在依赖包,上述卸载不了,加个条件

rpm -e php-4.3.9-3.15 –nodeps

卸载完之后删除一些没用的文件rm -fr /usr/local/php等涉及php的文件,还要删除/etc/php.ini这个文件

 

第二种 yum安装的情况下:

yum remove php   ---这个命令是删除不干净的,完整的应该如下:

先查找  列出所有已安装的软件包

yum list installed | less  

 

 

tar -xzvf php-5.5.20.tar.gz

cd php-5.5.20.tar.gz

新版的php5.5默认添加enable--fastcgi,所以不需要添加这个参数,正确的方法是

./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-bz2 --with-gettext --with-mhash --with-mcrypt --with-iconv-dir=/usr/local --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-mysql=/usr/ --with-pdo-mysql=/usr/bin/mysql  --with-mysqli=/usr/bin/mysql_config --enable-gd-native-ttf --enable-bcmath --enable-mbstring --enable-zip --enable-soap --enable-sockets --enable-ftp  --enable-fpm --without-pear

下面这个版本可以去掉

./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-bz2 --with-gettext --with-mhash --with-mcrypt --with-iconv=/usr/local/libiconv --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --enable-gd-native-ttf --enable-bcmath --enable-mbstring --enable-zip --enable-soap --enable-sockets --enable-ftp --enable-fastcgi --enable-fpm --without-pear

 make &&make install

 cp php.ini-production /usr/local/php/etc/php.ini  

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

 

安装的时候要记得关闭php-fpm并且杀掉phpcgi监听的端口号(在nginx的虚拟主机配置里面可查看)

kill -9 进程PID     || 或者  使用  killall php-fpm    全部杀死即可

 

2开机启动 php-fpm

1.配置php-fpm.conf

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

php-fpm.pid 目录必须指向:/usr/local/php/var/run/php-fpm.pid

 

2.拷贝php-fpm脚本至/etc/init.d目录

cp /home/php-5.5.20/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

 

3.设置权限并启动php-fpm:

chmod 755 /etc/init.d/php-fpm

/etc/init.d/php-fpm start

chkconfig --add php-fpm

 

最后,给出php-fpm以服务的方式启动、停止和重启:

service php-fpm start

service php-fpm stop

service php-fpm reload

 

 

3.安装mysqli 扩展

进入php5.5.20的源码包

cd /home/php-5.5.20/ext/mysqli

/usr/local/php/bin/phpize

./configure -prefix=/usr/local/mysqli –with-php-config=/usr/local/php/bin/php-config –with-mysqli=/usr/local/mysql/bin/mysql_config

make 

make install 

安装完成后,去etc/php.ini修改添加下面一句

extension =/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/mssql.so    --针对安装mssql语句的
extension =/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/mysqli.so

 

重启php-fpm   先杀掉php-fpm                 killall php-fpm    然后重启    /usr/local/php/sbin/php-fpm

 

安装其他扩展包类似按上面的方式安装

 

4.添加php php-fpm到环境变量中 

方法一: 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

vi /etc/profile
在文件末尾加上如下两行代码
PATH=/usr/local/webserver/php/bin:$PATH export PATH

 要是刚才的修改马上生效,需要执行以下代码

source /etc/profile

php -v 此时可以查看到php的版本了

 

添加环境变量(把php和mysql添加到环境变量)

方法三:修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/php/bin:/usr/local/mysql/bin
export PATH
最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。

 

 

 

 

把 nginx 和 php-fpm 添加到系统服务:

vim /etc/init.d/nginx
# Copy the "nginx" into "/etc/init.d/nginx"
chmod 755 /etc/init.d/nginx
chkconfig --level 345 nginx on
vim /etc/init.d/php-fpm
# Copy the "php-fpm" into "/etc/init.d/nginx"
chmod 755 /etc/init.d/php-fpm
chkconfig --level 345 php-fpm on
# Or simply:
echo "/usr/sbin/nginx" >> /etc/rc.local
# Stop
pkill -9 nginx
# Reload
/usr/sbin/nginx -s reload
echo "/usr/sbin/php-fpm -y /etc/php-fpm.conf" >> /etc/rc.local
# Stop
pkill -9 php-fpm

 }

 

 

 

 

安装memcached

wget -c http://pecl.php.net/get/memcache-3.0.8.tgz
tar -zxvf memcache-3.0.8.tgz
cd memcache-3.0.8
/usr/local/php/bin/phpize
 ./configure  --with-php-config=/usr/local/php/bin/php-config --enable-memcache --with-zlib-dir
make ; make install
 
vim /usr/local/php/etc/php.ini    添加这一句扩展文件
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
session.save_handler = memcache
session.save_path = "tcp://127.0.0.100:11211"
service php-fpm reload
 
 
 5.安装phpmyadmin
进入网站根目录(如/var/www/html) 
  1. cd /var/www/html
  2. wget http://nchc.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.10/phpMyAdmin-3.3.10-all-languages.tar.gz
  3. tar xvfz phpMyAdmin-3.3.10-all-languages.tar.gz
  4. mv phpMyAdmin-3.3.10-all-languages phpmyadmin   实际上是重命名了文件夹而已
  5. cd phpmyadmin
  6. cp config.sample.inc.php config.inc.php
  7. 重启nginx即可  你可以通过http://your.domain.com/phpmyadmin/测试访问。

 

I. config.sample.inc.php更名为config.inc.php;
II. 打开config.inc.php文件,进行以下修改;
// $cfg['Servers'][$i]['controluser'] = ‘pma’;
// $cfg['Servers'][$i]['controlpass'] = ‘pmapass’;
// $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;
// $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;
// $cfg['Servers'][$i]['relation'] = ‘pma_relation’;
// $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;
// $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;
// $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;
// $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;
// $cfg['Servers'][$i]['history'] = ‘pma_history’;
// $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;
去掉每行前面的//;
III.$cfg['blowfish_secret'] = ”; |修改为| $cfg['blowfish_secret'] = ‘http’;
IV.$cfg['Servers'][$i]['controluser'] = ‘pma’; |把’pma’修改为你的帐号|$cfg['Servers'][$i]['controlpass'] = ‘pmapass’; |把’pmapass设置为你的mysql登录密码|
V. $cfg['blowfish_secret'] = ”; | 添加短语密码例如:$cfg['blowfish_secret'] = ‘onohot’;
 
 
详细注释二:

下面就来修改文档。

1,查找 $cfg['PmaAbsoluteUri'] 修改为你将上传到空间的phpMyAdmin的网址

例如:$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';

2,$cfg['Servers'][$i]['host'] = 'localhost';(通常用默认,也有例外,可以不用修改)

3,$cfg['Servers'][$i]['auth_type'] = 'cookie';

在自己的机子里调试用config;如果在网络上的空间用cookie,这里我们既然在前面已经添加了网址,就修改成cookie ,这里建议使用cookie.

4,$cfg['Servers'][$i]['user'] = 'root'; // MySQL user(mysql用户名,自己机里用root;)

5,$cfg['Servers'][$i]['password'] = ''; // MySQL password (mysql用户的密码,自己的服务器一般都是mysql用户root的密码)

6,$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(你只有一个数据就设置一下;如果你在本机或想架设服务器,那么建议留空)

7,$cfg['DefaultLang'] = 'zh';

如果出现“配置文件现在需要绝密的短语密码(blowfish_secret)”那么请在$ cfg['blowfish_secret'] = ' ';的等号里面设置你网站的cookie,例如:$cfg['blowfish_secret'] = '任意字符';这是因为你的“$cfg['Servers'][$i]['auth_type'] = 'cookie'的原因。

 

一切顺利的话,打开http://localhost/phpmyadmin/ 输入用户名和密码就能正常登陆。

 
 
 
 

3.安装mysql,并设置mysql开机自启动,同时启动mysql

yum install mysql
yum install mysql-server
chkconfig --levels 35 mysqld on
service mysqld start

4.配置mysql的root密码

mysql_secure_installation

 

环境搭建过程中,源码安装PHP最艰辛。需要安装的依赖组件太多。现在整理记录一下。

首先需要安装下面几个安装包,可以在CD-ROM数据源里找到以下安装包yum安装

yum install perl* freetype libpng* libxm2 libxm2-devel curl curl-devel libjpeg*

手动下载安装 jpegsrc.v8c.tar libmcrypt-2.5.8.tar.gz


 

安装 jpegsrc

# tar -xvzf jpegsrc.v8c.tar

# cd jpeg-8c

# ./configure --prefix=/usr/local/jpeg

# make && make install

 


 

 

安装 libmcrypt

# tar -xvzf libmcrypt-2.5.8.tar.gz

# cd libmcrypt-2.5.8

# ./configure --prefix-/usr/local/libmcrypt

# make && makeinstall

 


 

安装PHP

# tar -xvzf php-5.5.10.tar.gz

# cd php-5.5.10

# ./configure --prefix=/usr/local/php -with-apxs2=/usr/local/httpd/bin/apxs --with-curl --with-mcrypt --with-mbstring

# make && make install

 


 

配置Apache支持PHP

修改 /usr/local/apache/conf/httpd.conf文件

在LoadModule项后面加入:

LoadModule php5_module modules/libphp5.so

在<IfModule mime_module></IfModule>之间加入

AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps

AddHandler application/x-httpd-php .php

重启Apache服务

执行命令 # apachectl restart

 


 

测试PHP

在站点根目录下编写探针文件

# vi phpinfo.php

输入:

<?php

phpinfo();

?>

浏览器地址栏输入 http://192.168.23.131/phpinfo.php

显示如下信息:说明PHP安装成功。

posted @ 2014-11-25 00:45  咏怀感恩  阅读(294)  评论(0)    收藏  举报