一、php源码安装及php-fpm配置
下载php wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz
安装php编译时所依赖的安装包
yum -y install gcc gcc-c++ libxml2 libxml2-devel
3.解压下载后的php-5.6.2.tar.gz
tar -xf php-5.6.2.tar.gz
4.
现在开始配置php5.6,使用如下命令:
cd php-5.6.2
./configure --enable-fpm --enable-mbstring --with-=/usr/local/mysql
注意上述命令中--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搞定!!!!!!!!
二、安装和配置nginx
安装Pcre(Nginx需要):
yum install pcre pcre-devel
################## Nginx 编译安装 ######################
groupadd wwwuseradd -g www wwwmkdir -p /data/wwwchown -R www:www /data/wwwNginx编译参数./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_modulemake && 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;
}
三、安装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数据库了
四、在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
期间你会发现可能有以下错误:
Cannot find MySQL header files under /usr/include/mysql
本来是系统找不到mysql客户端头文件导致的,可是我们用命令
find -name mysql.h找一下这个文件的位置,这尼玛的明明/usr/include/mysql就存在这个文件,但是为何说找不到呢?(ps:如果你找不到的话,请安装yum install mysql-devel)
将 /usr//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操作而已!!!!!!!
个人总结经验,求赞赞,搞了挺久!!!!!