在Nginx中,我们使用的是php-fpm来对php页面解析,PHP-FPM其实是PHP源代码的一个补丁,指在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,再编译安装PHP后才可以使用 从PHP5.3.3开始,PHP中直接整合了PHP-FPM,所以从PHP5.3.3版本以后,不需要下载PHP-FPM补丁包了,PHP5.3.3以前版本需另下载php-fpm补丁包. 1.解决依赖pear按照一定的分类来管理pear应用代码库,你的pear代码可以组织到其中适当的目录中,其他人可以方便的检索并分享到你的成果;pear不仅仅是一个代码仓库,它同时也是一个标准,使用这个标准来书写你的php代码,将会增强你的程序的可读性,复用性,减少出错的几率;Pear通过两个类为你搭建了一个框架,实现了诸如析构函数,错误捕获功能,你通过继承就可以使用这些功能 [root@nginx ~]# yum install php-pear -y
2.PHP添加libmcrypt拓展Libmcrypt加密算法扩展库,支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR,SERPENT, SAFER+等算法 [root@nginx~]# tar -zxf libmcrypt-2.5.7.tar.gz -C /usr/local/src && cd/usr/local/src/libmcrypt-2.5.7 [root@nginx ~]# ./configure--prefix=/usr/local/libmcrypt && make -j 4 && make install 除上面的依赖解决之外,还需要安装图片,xml,字体支持基本库,使用yum去安装,安装的时候,这些软件包自身也有依赖! [root@nginx~]# yum install -y libxml2-devel libcurl-devel libjpeg-devel libpng-develfreetype freetype-devel
3.添加到库文件路径需要添加到库文件路径 由于系统默认规定只在/lib、/lib64、/lib/lib64下面找库文件,所以我们需要手动添加进去。 [root@nginx ~]# vim /etc/ld.so.conf include ld.so.conf.d/*.conf #此行原有 /usr/local/libmcrypt/lib #此行添加 /usr/local/mysql/lib #此行添加 [root@nginx ~]# ldconfig [root@nginx ~]# echo 'ldconfig' >>/etc/rc.local
4.编译安装php[root@nginx ~]# tar zxf php-5.6.31.tar.gz-C /usr/local/src;cd /usr/local/src/php-5.6.31 [root@nginx php-5.6.31]# ./configure--prefix=/usr/local/php --with-config-file-path=/usr/local/php--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib--with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl--enable-mbregex --enable-fpm --enable-mbstring --with-gd--enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl--enable-sockets --with-xmlrpc --enable-zip --enable-soap--with-mcrypt=/usr/local/libmcrypt --with-config-file-path #设置 php.ini 的搜索路径。默认为 PREFIX/lib --with-mysql #mysql安装目录,对mysql的支持 --with-mysqli #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。是一个数据库驱动 --with-iconv-dir #种字符集间的转换 --with-freetype-dir #打开对freetype字体库的支持 --with-jpeg-dir #打开对jpeg图片的支持 --with-png-dir #打开对png图片的支持 --with-zlib #打开zlib库的支持,实现GZIP压缩输出 --with-libxml-dir=/usr #打开libxml2库的支持,libxml是一个用来解析XML文档的函数库 --enable-xml #支持xml文档 --disable-rpath #关闭额外的运行库文件 --enable-bcmath #打开图片大小调整,用到zabbix监控的时候用到了这个模块 --enable-shmop #shmop共享内存操作函数,可以与c/c++通讯 --enable-sysvsem #加上上面shmop,这样就使得你的PHP系统可以处理相关的IPC函数(活动在内核级别)。 --enable-inline-optimization #优化线程 --with-curl #打开curl浏览工具的支持 --with-curlwrappers #运用curl工具打开url流 ,新版PHP5.6已弃用 --enable-mbregex #支持多字节正则表达式 --enable-fpm #CGI方式安装的启动程序,PHP-FPM服务 --enable-mbstring #多字节,字符串的支持 --with-gd #打开gd库的支持,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 --enable-gd-native-ttf #支持TrueType字符串函数库 --with-openssl #打开ssl支持 --with-mhash #支持mhash算法扩展 --enable-pcntl #freeTDS需要用到的,pcntl扩展可以支持php的多线程操作 --enable-sockets #打开 sockets 支持 --with-xmlrpc #打开xml-rpc的c语言 --enable-zip #打开对zip的支持 --enable-soap #扩展库通过soap协议实现了客服端与服务器端的数据交互操作 --with-mcrypt #mcrypt算法扩展 [root@nginx php-5.6.13]# make -j 4&& make install
5.配置php和php-fpmPHP配置文件: [root@nginx ~]# cp /usr/local/src/php-5.6.31/php.ini-production/usr/local/php/php.ini PHP-FPM配置文件: [root@nginx ~]# cp/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 修改 php-fpm.conf运行用户和组: [root@nginx ~]#vim /usr/local/php/etc/php-fpm.conf user = nginx group = nginx PHP-FPM启动脚本: [root@nginx ~]# cp /usr/local/src/php-5.6.31/sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm [root@nginx ~]# chmod +x/etc/init.d/php-fpm [root@nginx ~]# chkconfig php-fpm on [root@nginx ~]# service php-fpm start Starting php-fpm done [root@nginx ~]# service php-fpm status php-fpm (pid 22557) is running...
6.验证验证80端口 [root@nginx ~]# netstat -anput|grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22591/nginx 验证php-fpm服务 [root@nginx ~]# netstat -anput|grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 22557/php-fpm 放行80端口 [root@nginx ~]# iptables -I INPUT -p tcp--dport 80 -j ACCEPT [root@nginx ~]# echo "iptables -IINPUT -p tcp --dport 80 -j ACCEPT" >> /etc/rc.d/rc.local 加入测试页面 [root@nginx ~]# echo "" > /usr/local/nginx/html/index.php 至此nginx基本配置完毕
Linux下使用mysqldump时候,出现: mysqldump:unknown variable‘sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 解决思路: /etc/my.cnf 中,把 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 删掉或者注释掉,发现问题解决了 前提:需要确定my.cnf的位置,即需要先mysql的相关配置文件的存放地址 1. # service mysql restart 2. # service mysqld restart 重启mysql linux一般在/etc/init.d有mysqld
/etc/init.d/mysqld start开启3306
Navicat安装后出现错误:1045 - Access denied for user'root'@'localhost' (using password: YES安装完MySQL和N之后,打开Navicat后出现如下错误: **********1045 - Access denied for user 'root'@'localhost'(using password: YES)********** (小插曲:记得不知道这是多少次安装MySQL了,以前用的是SQLyog,突然安装了一个Navicat,尽然出现错误,让自己小小的汗颜了一把!!!经过上网查资料,解决方法陈述下文) 【问题所在】:未给root用户分配所有权限。 【解决步骤】:例如:用户名:aaa 密码:123456 一、打开 MySQL 5.5 Command Line Client 命令窗口: Enter password:123456; 二、输入如下命令:grant all on *.* to aaa@'%' identified by '123456'; mysql>grant all on *.*to aaa@'%' identified by '123456'; (记得在此语句后面加上英文的 分号) 三、接着会出现:Query OK,0 rows affected <0.00 sec> 说明已经更改权限成功,问题解决了!!! |