1、php源码安装及php-fpm配置
php
下载php wget http://mirrors.sohu.com/php/php-5.6.2.tar.gzhtml
安装php编译时所依赖的安装包java
yum -y install gcc gcc-c++ libxml2 libxml2-develnode
3.解压下载后的php-5.6.2.tar.gzmysql
tar -xf php-5.6.2.tar.gznginx
4.c++
如今开始配置php5.6,使用以下命令:sql
cd php-5.6.2数据库
./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysqlapi
注意上述命令中--enable-fpm的做用是开启php的fastcgi功能即开启php-fpm功能,--with- mysql=/usr/local/mysql是启用php支持mysql的功能,/usr/local/mysql是mysql数据库的安装路径。
--enable-mbstring表示启用mbstring模块mbstring模块的主要做用在于检测和转换编码,提供对应的多字节操做的字符串函数。目前php内部的编码只支持ISO-8859-*、EUC-JP、UTF-8,其余的编码的语言是没办法在php程序上正确显示的,因此咱们要启用mbstring模块。
同时咱们也只是简单的开启和扩展php的一部分功能,其余须要的功能,请自行添加。
5.
配置完毕后,咱们如今来编译php,使用make命令,以下:
make
6.
咱们如今开始安装php,使用以下命令:
make install
安装完毕后,咱们能够经过php –v命令查看是否安装成功。以下:
php –v
经过这样安装完毕后,你会发如今/usr/local/lib目录下没有php.ini文件。在这咱们就先复制php安装文件提供的模版,以下:
cp php.ini-production /usr/local/lib/php.ini
7.
注意php.ini文件通常在/usr/local/lib/和/etc目录下。有关php安装完毕后,没有php.ini文件的,咱们再另一篇文章再介绍。
不要觉得到这php的安装就完毕了,LNMP环境中的nginx是不支持php的,须要经过fastcgi来处理有关php的请求。而php须要php-fpm这个组件来支持。
在php5.3.3之前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3之后的php-fpm只须要在安装php-fpm开启这个功能便可。这个也就是前边,咱们再配置php使用到的那个命令--enable-fpm。
php-fpm功能开启后,咱们还须要配置php-fpm。其实php-fpm的配置文件在安装php时,已经为咱们提供了一个配置文件的模版。该模版为/usr/local/etc/php-fpm.conf.default,以下:
more /usr/local/etc/php-fpm.conf.default
8.
咱们如今只须要复制一份该文件,并重命名为php-fpm.conf,以下:
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
为了让php-fpm已服务的形式启动。咱们须要复制php安装目录下/sapi/fpm/init.d.php-fpm文件。以下:
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
9.
过上图,咱们也能够很清楚的看到php-fpm文件目前没有执行权限。赋予php-fpm执行权限,并启动php-fpm,以下:
chmod a+x /etc/init.d/php-fpm
/etc/init.d/php-fpm start
netstat -tunlp |grep 9000
10.php搞定!!!!!!!!
2、安装和配置nginx
安装Pcre(Nginx须要):
yum install pcre pcre-devel
################## Nginx 编译安装 ######################
groupadd www
useradd -g www www
mkdir -p /data/www
chown -R www:www /data/www
Nginx编译参数
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module
make && make install
/usr/local/nginx/sbin/nginx // 启动Nginx
最后
如今再来配置nginx,使其支持php,以下:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3、安装mysql(yum命令安装)
rpm -qa | grep mysql // 这个命令就会查看该操做系统上是否已经安装了mysql数据库
经过这个命令查看该系统中是否已经安装了mysql,能够看到个人系统比较干净,没有安装任何版本的mysql,若是你系统有安装,那能够选择进行卸载
[root@liang ~]# rpm -e mysql // 普通删除模式[root@liang ~]# rpm -e --nodeps mysql // 强力删除模式,若是使用上面命令删除时,提示有依赖的其它文件,则用该命令能够对其进行强力删除
使用yum命令进行mysql的安装
[root@liang ~]# yum list | grep mysql
而后经过下面的命令进行数据库的安装
[root@liang ~]# yum install -y mysql-server mysql mysql-devel
安装成功后,经过如下命令能够查看已安装数据库的版本信息
[root@liang ~]# rpm -qi mysql-server
先经过:service mysqld status 查看mysql是否启动
(没装mysql service 也可经过 /etc/rc.d/init.d/mysqld status查看)
若没启动,则启动mysql:service mysqld start
最后咱们设置mysql的用户和密码
mysqladmin -u root password '123456'
此时咱们就能够经过 mysql -u root -p 命令来登陆咱们的mysql数据库了
4、在php下增长mysql、pdo_mysql扩展(重点,因为本人是cents64位系统,一个隐藏问题搞了哥很久,下面会讲解这个蛋疼的问题!!!!!!!!)
(1)增长php的mysql扩展
首先去到php版本目录的ext文件下的msyql中,如个人php版本目录是PHP/php5.6.7,因此命令为cd /PHP/php5.6.7/ext/mysql
而后运行phpize命令生成configure文件,个人phpize文件在/usr/local/bin下,
因此直接运行/usr/local/bin/phpize命令生成configure
而后运行./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr
这里最关键的是经过--with-mysql参数告诉mysql客户端的位置。这样才能生成mysql.so
期间你会发现可能有如下错误:
原本是系统找不到mysql客户端头文件致使的,但是咱们用命令
find -name mysql.h找一下这个文件的位置,这尼玛的明明/usr/include/mysql就存在这个文件,可是为什么说找不到呢?(ps:若是你找不到的话,请安装yum install mysql-devel)
将 /usr/include/mysql 目录下的mysql头文件连接到 /usr/local/include/ 的目录下:
ln -s /usr/include/mysql/* /usr/local/include/(具体位置本身根据本身的状况修改)
而后再运行一次
./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr
后来尼玛有出错:
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!
原来缘由是由于在64位的系统中,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so.15.0.0作的软链接,PHP默认是去的/usr/lib/搜索,因此没有找到.(这就是我说的64位的蛋疼问题!!!!!!!!!!!!!!)
解决办法就是:
cp /usr/lib64/mysql/* /usr/lib/mysql/
最后再./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr
终于没报错了!!!如图:
而后在make编译一下,在make install,成功后会输出mysql.o文件在如下目录:
把目录下的mysql扩展复制到php配置文件目录下,个人是在/usr/local/lib下,在配置文件php.ini中引入扩展项mysql。o而后重启php fpm便可。
(2)增长php的pdo_mysql扩展和上面同样操做,就是把在ext/mysql改变在ext/pdo_mysql目录下进行./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr操做而已!!!!!!!
我的总结经验,求赞赞,搞了挺久!!!!!