Apache与mysql已经安装成功,今天我们安装php-5.4.7,整个Linux下的开发环境就可以搭建好了。 

一:所需要的软件包:php-5.4.7.tar.zip re2c-0.13.5.tar.gz(这个再安装的时候会用到) 

1>安装re2c-0.13.5.tar.gz

tar -zvxf re2c-0.13.5.tar.gz cd re2c-0.13.5/ ./configure && make && make install

2>安装php

unzip php-5.4.7.tar.zip 得到了php-5.4.7.tar.bz2文件

tar -xjvf php-5.4.7.tar.bz2 得到php-5.4.7 

cd php-5.4.7/ <注意我们的压缩包文件都是放在/usr/local/下的>

执行: ./configure --prefix=/usr/local/php --with-apxs2=/home/houqingdong/http-2.2.6-exe/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring 

回车执行之后,会出现下面的错误:说的是找不到xml2-config文件,请重新配置libxml2

1353315132_5474.png

解决方法:

yum install libxml2

yum install libxml2-devel-y

查找一下看能否找到xml2-config文件: find / -name "xml2-config" 出现结果则说明安装成功,解决该问题的链接:

http://hi.baidu.com/weiokx/item/9039e4db3ccbc8ed785daac5

 

******************************************************************

configure error xml2-config not found. please check your libxml2 installation

sendos 5.5 安装 PHP 5.4.3 报 configure error xml2-config not found. please check your libxml2 installation 错误

 

检查是否安装了libxm包

[root@rh-linux software]# rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12

 

重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。

[root@rh-linux /]# yum install libxml2

[root@rh-linux /]# yum install libxml2-devel -y

 

安装完之后查找xml2-config文件是否存在

[root@rh-linux /] # find / -name "xml2-config"
/usr/bin/xml2-config

 

如果存在的话重新安装php

[root@rh-linux php-5.4.3]# ./configure

[root@rh-linux php-5.4.3]# make

[root@rh-linux php-5.4.3]# make install

安装好php后别忘了配置下php.ini 文件, 

 

[root@rh-linux php-5.4.3]# cp php.ini-production /usr/local/lib/php.ini

也可以直接在 make install 后面加一个编译参数 --with-config-file-path=/usr/local/php/etc 指定自己的php.ini路径 然后从源码里面 cp过去php.ini 源码里面有个php.ini-development和php.ini-production 如果不是本地调试模式的 选择后者

*************************************************************************************

 

然后再执行上面的:./configure --prefix=/usr/local/php --with-apxs2=/home/houqingdong/http-2.2.6-exe/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring 

make make install 

安装成功的提示界面为:

1353315485_1589.png

接下来配置Apache,使其支持php 

关闭Apache的服务:service httpd stop

vi /home/houqingdong/http-2.2.6-exe/conf/httpd.conf

添加 AddType application/x-httpd-php .php .php3

在DirectoryIndex 一行后添加 index.php 添加位置以及结果图为:
1353315953_9657.png
1353316008_4166.png
同时你还可以检查一下你的跟目录是否是正确的:
1353316086_8505.png
然后作为测试,我们输入:
echo "<?php phpinfo(); ?>" >/home/houqingdong/http-2.2.6-exe/htdocs/index.php
启动我们的Apache:
service httpd start
在我们的浏览器中输入: http://localhost/index.php
1353316340_7207.png
OK,安装成功。
我自己出现的错误,绕弯的地方:
1> 之前要么就是用yum安装过,要么就是安装光盘中自带的安装Apache,我整个流程走下来都正常,Apache配置的基本目录也是正确的,在浏览器中输入
http://localhost 也显示Apache已经正确安装,但是就是访问index.php的时候提示找不到,经过一番周折才发现原来现在启动着的是以前的那个Apache
因此:
停掉以前那个: service httpd stop <或者干脆直接删除了: yum remove httpd>
启动我刚安装的: /home/houqingdong/http-2.2.6-exe/bin/apachect1 start 
再次访问即可。
2>
1353316731_1913.png
基本问题就是 SELinux 保护模式引起的
1353316759_5109.png
参考资料的链接:
******************************************************************************************************************

Linux 服务器部署标准

http://faq.comsenz.com/library/system/env/env_linux.htm

 

Discuz! X 是一款以 PHP 为编程语言,以 MySQL 为数据库,并使用 Apache/IIS/Nginx(任意一种即可) 提供 web 服务的产品。要搭建 Discuz! X 站点,服务器必须安装由 PHP、MySQL、Apache/IIS/Nginx 构成的环境。其中,IIS 主要用于 Windows 服务器,Apache、Nginx 多用于 Linux 服务器(即 LAMP 和 LNMP)。

Linux 服务器部署时,需要按照一定的部署顺序,即:

系统环境初始化 -> Apache/Nginx、MySQL、PHP 程序包下载 -> Apache/Nginx、MySQL、PHP 安装

下面以在 Linux 服务器上部署 Apache、MySQL、PHP 为例,演示搭建环境的具体过程。

系统约定

软件源代码包存放位置/usr/local/src
Apache、MySQL、PHP 源码包编译安装位置(prefix)/usr/local/Comsenz/software_name
脚本以及维护程序存放位置/usr/local/Comsenz/sbin
MySQL 数据库位置/data/mysql(可按情况设置)
Apache 网站根目录/data/wwwroot(可按情况设置)
Apache 虚拟主机日志根目录/data/wwwroot/logs(可按情况设置)
Apache 运行账户www:www

系统环境初始化

1、检查系统是否正常

more /var/log/messages(检查有无系统级错误信息)

dmesg (检查硬件设备是否有错误信息)

cat /proc/cpuinfo (检查 CPU 频率是否正常)

top (按 1 检测 CPU 核数是否正常,内存大小是否正常)

ifconfig(检查网卡设置是否正确)

ping www.qq.com(检查网络是否正常)

2、关闭不需要的服务

执行 ntsysv 命令:

ntsysv

在服务设置界面,设置各项服务的开关。以下仅列出需要启动的服务,未列出的服务一律推荐关闭:

atd

crond

irqbalance

microcode_ctl

network

sendmail

sshd

syslog

关闭 SElinux ,关闭方法如下:

修改 /etc/selinux/config 文件中的 SELINUX= 为 disabled。

3、更换快速下载源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old

cd /etc/yum.repos.d/

wget http://c.sihost.net/CentOS-Base-sohu.repo

mv CentOS-Base-sohu.repo CentOS-Base.repo

yum clean

yum -y update

lsb_release -a

yum -y erase mysql

yum -y erase php

yum -y erase httpd

4、使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)

yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libtiff-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel fontconfig-devel zlib zlib-devel libevent-devel gcc gcc-c++ flex bison bzip2-devel libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel

5、定时校正服务器时钟,定时与中国国家授时中心授时服务器同步

编辑计划任务:

crontab –e

加入下面一行:

*/30 * * * * ntpdate 210.72.145.44 > /dev/null 2>&1

编辑完成后,保存即可。

6、下载程序包

Apache

推荐稳定版 2.2.21,下载地址为 http://archive.apache.org/dist/httpd/

PHP

推荐稳定版 5.2.17,下载地址为 http://cn.php.net/downloads.php

Mysql

推荐稳定版 5.5.18,下载地址为 http://www.mysql.com/downloads/mysql/

文中的配置文件和脚本限于篇幅,请到以下地址下载(仅支持 Linux 下使用 wget 下载)

Apache控制脚本,下载地址为 http://c.sihost.net/jb/httpd

Apache配置文件,下载地址为 http://c.sihost.net/jb/httpd.conf

单独下载各程序及文件的方式较为繁琐,我们将上面所需程序和文件整理成下载列表,如下:

http://c.sihost.net/lamp_tools.list

在 /usr/local/src 目录下执行下面两个命令,下载 lamp_tools.list 及该列表中的程序:

wget http://c.sihost.net/lamp_tools.list

wget -i lamp_tools.list

7、创建 web 运行用户

groupadd www

useradd -g www www

mkdir -p /data/wwwroot

chmod +w /data/wwwroot

chown www:www /data/wwwroot -R

8、重新启动

init 6


编译安装环境

1、安装 MySQL

cd /usr/local/src

tar zxvf cmake-2.8.5.tar.gz

cd cmake-2.8.5/

./configure

gmake &&gmake install 

groupadd mysql

useradd -g mysql mysql

mkdir -p /data/mysql

chown -R mysql:mysql /data/mysql

cd /usr/local/src

tar zxvf mysql-5.5.18.tar.gz

cd mysql-5.5.18

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/Comsenz/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/usr/local/Comsenz/etc/ -DWITH_BLACKHOLE_STORAGE_ENGINE=1

make && make install

cd /usr/local/Comsenz/mysql

./scripts/mysql_install_db --user=mysql

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod 755 /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 3 mysqld on

编辑 /etc/rc.d/init.d/mysqld,找到

basedir=
datadir=

改成

basedir=/usr/local/Comsenz/mysql
datadir=/data/mysql

然后在 Comsenz 目录下创建 etc 目录,并将 MySQL 配置文件拷贝到该目录下:

mkdir -p /usr/local/Comsenz/etc

cp ./support-files/my-huge.cnf /usr/local/Comsenz/etc/my.cnf

编辑配置文件 /usr/local/Comsenz/etc/my.cnf,在 [mysqld] 段增加

datadir = /data/mysql

wait-timeout = 10

max_connections = 512

max_connect_errors = 10000000

local-infile=0

在 [mysqld] 段修改

max_allowed_packet = 16M

thread_cache_size = CPU个数*2

将 log-bin 注释

mv /usr/local/Comsenz/mysql/data/* /data/mysql

service mysqld start

bin/mysqladmin -u root password 'admin999'

其中 admin999 是要设置的 root 密码。

2、安装 Apache

cd /usr/local/src/

tar zxvf httpd-2.2.21.tar.gz

cd httpd-2.2.21

./configure --prefix=/usr/local/Comsenz/apache --enable-module=rewrite --disable-access --disable-auth --disable-charset-lite --disable-include --disable-log-config --disable-env --disable-setenvif --disable-mime --disable-status --disable-autoindex --disable-asis --disable-cgid --disable-cgi --disable-negotiation --disable-dir --disable-actions --disable-userdir --disable-alias --enable-so --enable-mods-shared='access auth auth_anon auth_dbm auth_digest dav dav_fs actions alias asis autoindex cache cern_meta cgi charset_lite deflate dir disk_cache env expires file_cache headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias'

make && make install

cd /usr/local/src/

mv /usr/local/Comsenz/apache/conf/httpd.conf /usr/local/Comsenz/apache/conf/httpd.conf.old

cp -f /usr/local/src/httpd.conf /usr/local/Comsenz/apache/conf/httpd.conf

cp -f /usr/local/src/httpd /etc/init.d/httpd

chmod 755 /etc/init.d/httpd

chkconfig --add httpd

chkconfig httpd on

3、编译安装 PHP 所需的支持库

tar zxvf libiconv-1.14.tar.gz

cd libiconv-1.14/

./configure --prefix=/usr/local

make && make install

cd /usr/local/src/

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure

make && make install

/sbin/ldconfig

cd libltdl/

./configure --enable-ltdl-install

make && make install

cd /usr/local/src/

tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9/

./configure

make && make install

cd /usr/local/src/

64bit 系统执行下面的:

ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la

ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so

ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4

ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8

ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a

ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la

ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so

ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2

ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1

ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2


32bit 系统执行下面的:

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so

ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a

ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la

ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so

ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1

ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

/sbin/ldconfig

./configure

make && make install

4、编译安装PHP

cd /usr/local/src

tar zxvf php-5.2.17.tar.gz

cd php-5.2.17

./configure --prefix=/usr/local/Comsenz/php5 --with-config-file-path=/usr/local/Comsenz/etc --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --enable-magic-quotes --with-mysql=/usr/local/Comsenz/mysql --with-pear --enable-sockets --with-ttf --with-freetype-dir=/usr --enable-gd-native-ttf --with-zlib --enable-sysvsem --enable-exif --enable-sysvshm --with-libxml-dir=/usr --with-apxs2=/usr/local/Comsenz/apache/bin/apxs --with-iconv=/usr/local/libiconv --with-iconv-dir=/usr/local --with-xmlrpc --enable-xml --enable-shmop --enable-zip --with-mhash --with-mcrypt --enable-discard-path --enable-bcmath --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --with-openssl

make &&make install

./libtool --finish /usr/local/src/php-5.2.17/libs

cp php.ini-dist /usr/local/Comsenz/etc/php.ini

echo 'ulimit -SHn 65535' >> /etc/rc.local

5、安装 PHP 扩展模块(需要此功能的 Discuz! X 用户选装)

安装 APC

cd /usr/local/src

tar zxvf APC-3.1.9.tgz

cd APC-3.1.9

/usr/local/Comsenz/php5/bin/phpize

./configure --enable-apc --enable-mmap --enable-apc-spinlocks --disable-apc-pthreadmutex --with-php-config=/usr/local/Comsenz/php5/bin/php-config

make &&make install

编辑配置文件 /usr/local/Comsenz/etc/php.ini,查找

extension_dir = 

在下面一行添加

extension_dir = "/usr/local/Comsenz/php5/lib/php/extensions/no-debug-non-zts-20060613/"

extension="apc.so"

apc.enabled = 1

apc.shm_size = 64M

apc.stat = 1

编辑完成后,保存。

6、查看确认 LAMP 环境信息、提升 PHP 安全性

保存以下内容为 info.php 到 /data/www/,检查 phpinfo 中的各项信息是否正确。

<?

phpinfo();

?>

确认 PHP 能够正常工作后,编辑 /usr/local/Comsenz/etc/php.ini 进行设置提升 PHP 安全性。查找

disable_functions =

修改成

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen

然后重启 web 服务:

service httpd restart