Tag Archives: mysql

移除MySQL无用服务 mysql-ndb 和 mysql-ndb-mgm

MySQL一般包括3个服务,mysql、mysqld-ndb、mysql-ndb-mgm。mysql服务就是我们常有的数据库服务,mysqld-ndb是mysql cluster用的,mysql-ndb-mgm是mysql cluster的管理用的,我们在VPS上一般用不到mysql cluster,所以应该禁止掉mysql-ndb和mysql-ndb-mgm。 禁止命令: Ubuntu / Debian 用户输入: update-rc.d -f mysql-ndb remove update-rc.d -f mysql-ndb-mgm remove CentOS 用户输入: chkconfig mysql-ndb off chkconfig mysql-ndb-mgm off 然后重新载入MySQL即可: /etc/init.d/mysql restart

Posted in PHP & MYSQL | Tagged , | Leave a comment

php5.3全部编译选项

php5.3全部的编译选项,可对照修改你编译时所加的参数。比如网上流行的一些编译参数,有一些就用不到了。 Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: –cache-file=FILE       cache test results in FILE –help                  print this message –no-create             do not create output files –quiet, –silent       do not print `checking…’ messages –version               print the version of … Continue reading

Posted in Linux & FreeBSD, PHP & MYSQL | Tagged , , , , | Leave a comment

ubuntu 10.04 nginx+mysql+php+zend 环境搭建

此为备选方案。首选方案出炉后将更新此方案。另,此方案未做完整测试。更改的主要是把spawn-fcgi换成了php-fpm,并且大部分采用源码包来安装 ubuntu桌面版与服务器版搭建过程一样。 首先要选一个好源,用于更新需要安装的一系列包。 推荐使用网易的源。http://mirrors.163.com/.help/ubuntu.html这里有帮助说明。 1、更新 sudo apt-get update 2、安装nginx 运行: sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为: * 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 * 程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中 * 并已经在/etc/init.d/下创建了启动脚本nginx * 默认的虚拟主机的目录设置在了/var/www/nginx-default 下面可以启动nginx来看看效果(请确保80端口没有其他服务在使用): sudo /etc/init.d/nginx start 然后打开浏览器,查看http://localhost/ 看看是否看到了“Welcome to nginx!” 如果看到了,说明安装成功。当然,基本上,这块儿都不会出问题。 如果运行不成功,可以先 sudo killall apache2 杀掉apache进程 3、安装php

Posted in Linux & FreeBSD, Web Server | Tagged , , , , , , , | Leave a comment

lnmp nginx alias phpmyadmin 的解决方案备忘

我使用的是centos,使用lnmp一键安装,lnmp是一个一键安装nginx,php,mysql的安装包。 为了给域名虚拟上一个phpmyadmin的目录,在网上找了很多资料。不断失败,不断尝试。要么静态文件404,要么php文件404.历经整整一个晚上到半夜,这才成功。 要配置的有两个location段。第一个是规划目录。第二个是处理php文件。 在第二个location中,我试了下,注销此代码也可以 #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 要注意的是,示例中分隔线包围的是为phpmyadmin配置的,这段要放在 location ~ .*\.(php|php5)?$之前 在配置的过程中,有一个非常怪异的现像,就是使用当静态文件和php文件都能执行了以后, 在phpmyadmin登陆的时候居然跳转到了web根目录下。比如访问localhost/phpmyadmin,登陆的时候就跳到了localhost 而我自己随便写的一个php文件,也加了一个form并且提交,就一点事都没有,唯独phpmyadmin会跳到首页去。而且是只有登陆提交的时候才会跳到首页,直接打开不会跳转。 后来尝试各种方案,终于成功了。 还有一个问题,那就是lnmp的虚机脚本生成的代码中,有两段用来控制静态文件,如图片或css的缓存时间。 也就是示例中最后两个location。但是只要这两个打开,phpmyadmin中的静态文件就访问不到了。404了。 案例中: /www/domain.com为网站根目录, /www/logs 为日志目录 /www/phpmyadmin 为phpmyadmin的程序目录

Posted in Web Server | Tagged , , , , | Leave a comment

ubuntu9.10 更换Mysql数据目录,mysql服务器无法启动,已经解决

更换Mysql数据目录后, mysql服务器无法启动。 解决方法记录如下 首先,我们看怎么修改mysql的数据文件目录 建新数据库目录 mkdir /media/hda11/db 复制linux下原数据到新目录下 cp -dpR /var/lib/mysql/* /media/hda11/db 给新目录重命属性 chown mysql:mysql /media/hda11/db 修改文件/etc/apparmor.d/usr.sbin.mysqld :sudo gedit /etc/apparmor.d/usr.sbin.mysqld 把 /var/lib/mysql r, /var/lib/mysql/** rwk, 改成 /media/hda11/db r, /media/hda11/db/** rwk, 修改目录 sudo gedit /etc/mysql/my.cnf 如 datadir = /var/mysql换成datadir = /media/hda11/db … Continue reading

Posted in Linux & FreeBSD, PHP & MYSQL | Tagged , , , | Leave a comment

FreeBSD nginx+php+mysql+zend+phpmyadmin+优化 ports安装法

前言 1. 看了张宴的《linux版本的Nginx 0.5.33 + PHP 5.2.5》后,马上找了一台服务器测试了一下,然后加了一个线上的discuz的论坛跑了一下,性能非常的卓越,感叹搜遍整个互联网,就是 nginx+php唯一的一篇文档。对于他的文档,我认为:写的非常专业,对于php extensions库也分析的非常透彻。但是一篇专业的文档,也存在一些专业带来的麻烦,就是起点有点高,假如要更新里面的软件包和定义自己的目录,势必需要一点波折。另外不知道为何,最近网站老是打不开。情急之下,小弟重新写了一篇freebsd下面的傻瓜式安装文档。 2. 又结合了平时的一些经验,顺便把如何防卸ddos,并通过对系统的优化,如何来进一步提高nginx的并发数做 一些详解。 3. 由于个人能力有限,错误的地方,还请读者谅解 一、安装软件前的准备 系统的安装:插入freebsd6.2以上的光盘,最小化安装系统,同时安装好ports 二、手动安装nginx+php 1) 进入系统后,准备cvs更新: 1. cd /usr/ports/net/cvsup-without-gui 2. cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile 3. # vi /etc/ports-supfile 将其中的#*default host=CHANGE_THIS.FreeBSD.org一行改为 *default host=cvsup4.FreeBSDchina.org 4. 更新ports /usr/local/bin/cvsup -g -L 2 … Continue reading

Posted in Linux & FreeBSD | Tagged , , , , , , | Leave a comment

ubuntu 9.10 安装nginx + fastcgi + spawn-fcgi +mysql 日记

最近安装了ubuntu 9.10 64位的系统。以前用8.x的时候,习惯用集成环境lampp. 不过对这64位的系统不支持,当然可以安装32位支持模块,不过还要改一堆东西。索性,放弃。改投nginx的大营。 nginx已经如雷灌耳了。 nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.现在包括国内很多大型网站都将用它来替换了apache. Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。那么我们必须使用FastCGI方式来执行PHP程序。 我主要配置的是开发测试环境,因此要求负载和安全方面不高。系统为ubuntu 9.10 64位。 1.安装nginx 运行: sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为: * 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 * 程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中 * 并已经在/etc/init.d/下创建了启动脚本nginx * 默认的虚拟主机的目录设置在了/var/www/nginx-default

Posted in Web Server | Tagged , , , , , , | Leave a comment

PHP数据库抽象层

本章着重讲述PHP数据库抽象层与数据库抽象类。 目前,在PHP的网站及众多书籍中,很少讲到数据库抽象层, 有的PHP开发者虽然已做了几年开发工作,但似乎也没有意识到它的 存在。 很多人并不理解数据抽象的重要性,也不 了解mysql或mysqli扩 展与PDO的区别,PDO与ADODB又有什么区别。 在本章中将讲述以下内容,通过学习,上面的问题都会迎刃而解。 Ø使用数据库抽象层的原因; Ø数据库抽象层的发展; Ø一些流行新抽象层的介绍; ØPDO数据库抽象层开发技术; ØADODB数据库抽象层开发技术。 17.1什么是数据库抽象层 使用数据库抽象层,意味着当从一个数据 库系统向另一个数据库系统迁移时,几乎不用更改太多的程序代码,如将MS SQL Server迁移到MySQL。 首先,代码规划必须规范,即整个系统使 用同一个数据对象实例,并且使用同一个较好的数据库抽象层。如果有一天用 户要求将Oracle切 换到MySQL,则只需 要改变系统的配置文件即可。

Posted in PHP & MYSQL | Tagged , , | 3 Comments

php树型无限级分类结构[预排序遍历树算法]

预排序遍历树算法 modified preorder tree traversal algorithm 产品分类,多级的树状结构的论坛,邮件列表等许多地方我们都会遇到这样的问题:如何存储多级结构的数据?在PHP的应用中,提供后台数据存储的通常 是关系型数据库,它能够保存大量的数据,提供高效的数据检索和更新服务。然而关系型数据的基本形式是纵横交错的表,是一个平面的结构,如果要将多级树状结 构存储在关系型数据库里就需要进行合理的翻译工作。接下来我会将自己的所见所闻和一些实用的经验和大家探讨一下: 层级结构的数据保存在平面的数据库中基本上有两种常用设计方法: 1、毗邻目录模式(adjacency list model) 2、预排序遍历树算法(modified preorder tree traversal algorithm) 我不是计算机专业的,也没有学过什么数据结构的东西,所以这两个名字都是我自己按照字面的意思翻的,如果说错了还请多多指教。 这两个东西听着好像很吓人,其实非常容易理解。这里我用一个简单食品目录作为我们的示例数据。

Posted in PHP & MYSQL | Tagged , | 5 Comments

php中addslashes() ,mysql_real_escape_string() 和mysql_escape_string() 的区别

SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。 为了防止SQL注入攻击,PHP自带一个功能可以对输入的字符串进行处理,可以在较底层对输入进行安全上的初步处理,也即Magic Quotes。(php.ini magic_quotes_gpc)。如果magic_quotes_gpc选项启用,那么输入的字符串中的单引号,双引号和其它一些字符前将会被自动加 上反斜杠\。 但Magic Quotes并不是一个很通用的解决方案,没能屏蔽所有有潜在危险的字符,并且在许多服务器上Magic Quotes并没有被启用。所以,我们还需要使用其它多种方法来防止SQL注入。

Posted in PHP & MYSQL | Tagged , , , | Leave a comment