apache一般是把php当做自己的一个模块来启动的.
而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式.
因此,为apache所编译的php,是不能用于nginx的.
注意: 我们编译的PHP 要有如下功能:
连接mysql, gd, ttf, 以fpm(fastcgi)方式运行
安装编译所需的库
yum install mysql mysql-devel
yum install php-mysql
yum install gd
yum install gd-devel
yum install ttf
yum install freetype
yum install libxml2
yum install libxml2-devel -y
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server
service mysqld start
下载php
wget http://cn2.php.net/distributions/php-7.1.11.tar.gz
tar –zxvf php-7.1.11.tar.gz
cd php-7.1.11
./configure --prefix=/usr/local/fastphp \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-fpm
Cp '/usr/local/php/php-7.0.20/php.ini-development' '/usr/local/fastphp/lib/php.ini'
cp '/usr/local/fastphp/etc/php-fpm.conf.default' '/usr/local/fastphp/etc/php-fpm.conf'
make
make install
cd /usr/local/fastphp/
./sbin/php-fpm
ps aux|grep php
php编译安装报错:make: * [sapi/cli/php] Error 1 解决办法
使用:make ZEND_EXTRA_LIBS=’-liconv’
或者: vim Makefile
添加:-lcrypt
./configure 后,直接make可能会出现libtool: link: `ext/date/php_date.lo’ is not a valid libtool object 的错误。
make clean 一下然后再make,即可。原因未知,
再 make install
nginx+php的配置比较简单,核心就一句话—-把请求的信息转发给9000端口的PHP进程,
让PHP进程处理 指定目录下的PHP文件.
如下例子:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
1:碰到php文件,
2: 把根目录定位到 html,
3: 把请求上下文转交给9000端口PHP进程,
4: 并告诉PHP进程,当前的脚本是
documentroot
d
o
c
u
m
e
n
t
r
o
o
t
fastcgi_scriptname
(注:PHP会去找这个脚本并处理,所以脚本的位置要指对)
然后就可创建 php 文件测试了
目录:
/usr/local/nginx/html/test.php
然后就可访问了(别忘了开nginx)
如遇到
Fatal error:Call to undefined function mysqli_connect() in xxxxxx,这是没有mysqli扩展库,请见下回分析。
重启mysql
service mysqld restart
重启php
pkill -9 php-fpm
./php-fpm
重启nginx
'/usr/local/nginx/sbin/nginx' -s reload
centos下完全卸载mysql
yum方式安装的mysql
1、yum remove mysql mysql-server mysql-libs compat-mysql51
2、rm -rf /var/lib/mysql
3、rm /etc/my.cnf
查看是否还有mysql软件:
rpm -qa|grep mysql
如果存在的话,继续删除即可。
rpm方式安装的mysql
a)查看系统中是否以rpm包安装的mysql:
[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686
b)卸载mysql
[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686
c)删除mysql服务
[root@localhost local]# chkconfig –list | grep -i mysql
[root@localhost local]# chkconfig –del mysql
d)删除分散mysql文件夹
[root@localhost local]# whereis mysql 或者 find / -name mysql
mysql: /usr/lib/mysql /usr/share/mysql
清空相关mysql的所有目录以及文件
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf
通过以上几步,mysql应该已经完全卸载干净了
centos下完全卸载php
CentOS上PHP完全卸载,想把PHP卸载干净,直接用yum的remove命令是不行的,需要查看有多少rpm包,然后按照依赖顺序逐一卸载。
1.首先查看机器上安装的所有php相关的rpm包
[root@localhost nginx]# rpm -qa | grep php
php-cli-5.3.3-22.el6.x86_64
php-pdo-5.3.3-22.el6.x86_64
php-gd-5.3.3-22.el6.x86_64
php-fpm-5.3.3-22.el6.x86_64
php-common-5.3.3-22.el6.x86_64
php-5.3.3-22.el6.x86_64
php-xml-5.3.3-22.el6.x86_64
php-pear-1.9.4-4.el6.noarch
2.按依赖顺序进行删除
rpm -e php-fpm-5.3.3-22.el6.x86_64
rpm-e php-pdo-5.3.3-22.el6.x86_64
rpm -e php-pear-1.9.4-4.el6.noarch
rpm-e php-cli-5.3.3-22.el6.x86_64
rpm -e php-5.3.3-22.el6.x86_64
rpm-e php-xml-5.3.3-22.el6.x86_64
rpm -e php-gd-5.3.3-22.el6.x86_64
rpm-e php-common-5.3.3-22.el6.x86_64