例如IP是:192.168.1.188

说明:都是更改apache配置文件(如果主配置文件已经引用了虚拟主机文件conf/extra/http-vhosts.conf,直接在修改http-vhosts.conf就行,便于查找。否则直接修改conf/httpd.conf)

两种方法:(在配置文件最后放加入)

  1. 禁止ip直接访问
  2. 将使用ip访问DocumentRoot到一个目录下,提示不允许使用ip访问

    这个目录下建立一个inidex.php文件

    拒绝访问。
  1. configure: error: Please reinstall the libcurl distribution
    yum安装 此包
  2. configure: error: xml2-config not found. Please check your libxml2 installation
    先检查是否有此包

    重新安装(可能提示更新)
  3. configure: error: libjpeg.(a|so) not found.
    如果是64位系统,可能找不到文件,因为编译时的路径是/usr/lib

    这样就可以把error:libjpeg.(a|so) not found解决
  4. configure: error: mcrypt.h not found. Please reinstall libmcrypt
  5. mcrypt.h not found. Please reinstall libmcrypt
    centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包有两种方法解决,一种是使用第三方源,这样还可以使用yum来安装,简单方便,坏处是第三方源多少有中不可靠的感觉。

    解决办法一
    (1)安装第三方yum源

    (2)使用yum命令安装

    解决办法二、
    使用php mcrypt 前必须先安装Libmcrypt

    libmcrypt源码安装方法:


    如果还有其他错误在网上搜下解决办法应该都有!

1:首先查看是否有安装mysql的相关软件包

2:检查mysql用户和用户组是否存在(不存在则创建)

3:下载地址:http://dev.mysql.com/downloads/mysql/#downloads

选择的是linux通用版本

4:下载到本地(/home/yuyu/mysql)并解压,并赋予此文件夹所有文件所属用户和用户组

5:创建移动文件夹/usr/local/mysql/,并将mysql-5.7.14-linux-glibc2.5-i686/中的所有文件移动到/usr/local/mysql/

6:安装和初始化

如果改变默认安装路径,则需要
(1)/etc/my.cnf、/etc/init.d/mysqld中修改
basedir=’/apps/mysql’
datadir=’/apps/mysql/data’
(2)创建ln
mkdir -p /usr/local/mysql/bin
ln -s /apps/mysql/bin/mysqld /usr/local/mysql/bin/mysqld

安装成功了,设置mysql服务开机启动

7:初始化密码:

mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要密码

8:设置允许远程访问数据库

9:将mysql和php命令加入到环境变量中

修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/php7/bin:/usr/local/mysql/bin
export PATH
最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。

检查下新系统中应该都存有apache,有如下两个包

卸载一般从下边开始卸,

提示有一个附属包gnome-user-share-0.10-6.el5.i386

那就先卸载它

(卸载的时候那个版本号可以不用写的,如gnome-user-share-0.10-6.el5.i386直接写成gnome-user-share就行)


以下是我自己的路径:

所有软件包存放在/home/yuyu中

安装的时候编译到/usr/local中

开始安装:

  1. 下载apache软件,并解压到我的下载目录压缩包下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.2.31.tar.gz
    (如果系在地址不存在了可以到这个页面去找http://httpd.apache.org/download.cgi#apache22)
  2. 进入到 解压号的目录,对apache进行编译

    (如果不编译–prefix=/usr/local/apache2默认是生成为/usr/local/httpd目录)
  3. 进行安装
  4. 安装成功后,进入到apache配置文件中进行修改

    找到#ServerName ******:80(:80前面的域名不知道一不一样就用*代替了,直接搜ServerName就能找到)
    直接在其下面一样加ServerName localhost:80,如下图:
  5. 启动apache:
  6. 测试:
    先把防火墙关闭掉:

    如果是用的虚拟机,查看下对应ip多少,从本机输入ip查看下,类似这样就成功了
  7. 把apache安装为系统服务

    然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
    # chkconfig: 2345 50 90
    # description: Activates/Deactivates Apache Web Server
    最后,运行chkconfig把Apache添加到系统的启动服务组里面:

     

下载最新php版本:

配置是php时候在系统的基础上进行的,所以我们配置的一些软件现在的系统如果没有则会报错,执行如下,安装一些配置php(./configure的时候)的一些依赖库

进行编译php配置:

 

如果编译成功则提示:

 

如果还是出现类似编译失败的错误如:

等…请进入这篇文章http://blog.sayphp.com/?p=707查看如何解决。

 

安装:

设置一些配置文件:

php.ini-development 适合开发测试,如本地测试环境, php.ini-production拥有较高的安全性设定,适合服务器上线运营当产品。一般修改php.ini-production为php.ini,安全性更高,确保测试环境(本地)与正式环境(线上)一致

修改php.ini 开启错误提示

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

对应扩展;extension=***.dll前面的“;”根据需要删掉

加入服务
需要注意的是php7中www.conf这个配置文件配置phpfpm的端口号等信息,如果你修改默认的9000端口号需在这里改,再改apache的配置

启动

 

配置apache加载php模块

在apache的配置文件中加入

  1. LoadModule php7_module modules/libphp7.so
    (在LoadModule foo_module modules/mod_foo.so的下方,便于查找)
  2. AddHandler application/x-httpd-php .php
    (AddType application/x-gzip .gz .tgz下方,便于查找)

重启apache

如果浏览器查看文件出现 Forbidden没有权限应该是由于配置了php后,httpd.conf里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
#Deny from all
allow from all
</Directory>

 

卸载已安装的apache

关闭httpd服务

列出httpd附属包

卸载

 

 

卸载自带apache包

更上边一样的步骤,但是当卸载附属包的时候会提示

还有一个相关的软件包没有删除即:

再删除httpd

 

项目是用的开源cms二次开发的,这两天发现个问题,在上传表格导入数据时在某些浏览器(我本机是火狐、有的人是chrom也不行)没有反映,很怪异!

在火狐下测试:

当上传的时候firebug中控制器有错误提示如下图

排错:

  1. 可是这第一行也没有什么错误啊!网上搜了下这个错误,说可能是页面中ajax返回值的错误,那也就是说是我的php程序出了问题!如果是php代码有错误在部分浏览器中又没有问题!
  2. 在前端页面js中接收php处理过的json地方进行排错console.log(json),经过多处测试终于找到了问题

问题:通过console.log可以在firebug中打印出php输出的内容提示没有登录cms系统!

也就是说登录系统所有session值都被这个上传插件给屏蔽了,网上搜了下说主要是swf的请求导致原有的cookies失效,php的session机制还是基于客户端cookie存放的,所以会报没有登录系统的错误。

解决办法1:在upload_url中添加对应参数

  1. 将系统登录所需要的session数值事先存放到swpupload代码段的请求参数中
  2. 在php脚本中进行判断当前这个session值是否存在,如果不存在则获取$_GET传过来的参数并赋值给这个session
  3. 系统中不仅仅是这个登录的session丢失了,其他的session也是获取不到的,所以还是的慢慢调试,缺少哪些session值就给哪些值

解决办法2:官方有post_params这么一个设置可将sessionid回传给服务器

 

总结:使用此插件需要将程序中的所用到的session值通过上边任意一个方法(推荐官方给的post_param)传回给php程序,确保程序所用的session值是存在的,就可以了,具体需要修改哪些地方还需要根据程序实现的不同功能在做修改。

问题1:phpcms V9某个站点的栏目中发现有几个栏目消失了,但是没有人删除

问题2:phpcms V9更新这个站点下的栏目缓存后出现空白现象!

问题分析:

  1. 到数据库v9_category表中查找看了下这几个栏目还存在啊!!于是没有多看
  2. 查找了相关模块的代码/modules/admin/category.php中repair(“修复栏目数据”)排错后发现是的方法里边的代码,产生的提示,但没找到具体提示在哪里!
  3. 不是所有站点下栏目缓存更新都出空白,所以可能不是代码问题
  4. 回头有看了看数据库这几个栏目的字段,发现了问题,其中某个顶级栏目的parentid居然不是0而是他的一个子栏目id,这肯定是不对的,改了之后更新全站缓存,在更新栏目缓存就恢复了

注意:先更新全站缓存,在去更新栏目缓存

 

生成如下XML串
Xml代码

方法I.【直接生成字符串】
使用纯粹的PHP代码生成字符串,并把这个字符串写入一个以XML为后缀的文件。这是最原始的生成XML的方法,不过有效!

方法2:【DomDocument】
使用DomDocument生成XML文件,创建节点使用createElement方法,创建文本内容使用createTextNode方法,添加子节点使用appendChild方法,创建属性使用createAttribute方法

方法3:【XMLWriter】
使用XMLWriter类创建XML文件,此方法在PHP 5.1.2后有效。另外,它可以输出多种编码的XML,但是输入只能是utf-8

方法4: 【SimpleXML】
使用SimpleXML创建XML文档

 

 

  1. 磁盘搜索。需要花时间从磁盘上找到一个数据,用在现代磁盘的平均时间通常小于10ms,因此理论上我们能够每秒大约搜索1000次。这个时间在新磁盘上提高不大并且很难为一个表进行优化。优化它的方法是将数据分布在多个磁盘上。
  2. 磁盘读/写。当磁盘放入正确位置后,我们需要从中读取数据。对于现代的磁盘,一个磁盘至少传输10-20Mb/s的吞吐。这比搜索要容易优化,因为你能从多个磁盘并行地读。
  3. CPU周期。我们将数据读入内存后,需要对它进行处理以获得我们需要的结果。表相对于内存较小是最常见的限制因素。但是对于小表,速度通常不成问题。
  4. 内存带宽。当CPU需要的数据超出CPU缓存时,主缓存带宽就成为内存的一个瓶颈