今天帮客户配置了一台运行服务器的环境 首先 下载mysql www.mysql.cn 版本mysql-5.0.22.tar.gz 下载apache2 httpd-2.2.10.tar.gz http://www.apache.org/ 下载php5.2.6 http://www.php.net 首先安装mysql 添加mysql用户 groupadd mysql useradd -g mysql mysql # ./configure --prefix=/usr/local/mysql/ --without-debug --with-charset=utf8 --with-extra-charsets=all --with-pthread --enable-thread-safe-client --localstatedir=/data/mysqldata # make //编译 # make install //安装 # chown –R mysql:mysql /usr/local/mysql //文件属性改为root用户 # cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件 建立/data,mysqldata,inodb 文件夹 在my.cnf中 # The MySQL server [mysqld] 下 指定添加 datadir = /data/mysqldata innodb_data_home_dir = /data/inodb(出现inodb问题的时候加上) # /usr/local/mysql/bin/mysql_install_db //初始化授权 修改 /data数据库为mysql用户 chown -R mysql:mysql data ----------------------------------启动MySQL服务---------------------------------- # /usr/local/mysql/bin/mysqld_safe --user=mysql & //启动MySQL ----------------------------------修改MySQL密码---------------------------------- # /usr/local/mysql/bin/mysqladmin -uroot password mysqlsecret //修改密码 ----------------------------------关闭MySQL服务---------------------------------- # /usr/local/mysql/bin/mysqladmin -uroot -pmysqlsecret shutdown //关闭MySQL cp /usr/local/mysql/bin/* /usr/bin 若添加用户后 需要用flush privileges;刷新权限 安装 apache2 ./configure --prefix=/usr/local/apache2 --enable-module=most --enable-shared=max --enable-rewrite --enable-so # make # make install ----------------------------------启动Apache服务---------------------------------- # /usr/local/apache2/bin/apachectl start ----------------------------------关闭Apache服务---------------------------------- # /usr/local/apache2/bin/apachectl stop ----------------------------------重启Apache服务---------------------------------- # /usr/local/apache2/bin/apachectl restart 添加模块直接在将.so文件拷贝到apache2文件夹下的modules文件夹中包括rewrite模块和libphp5.so(没安装php之前这个模块不存在) 安装php 提前添加的库 ZLIB:zlib-1.2.1.tar.gz 下载:http://www.zlib.net/zlib-1.2.1.tar.gz FreeType:freetype-2.1.5.tar.gz 下载:http://twtelecom.dl.sourceforge.net/...e-2.1.5.tar.gz PNG:libpng-1.2.5.tar.gz 下载:http://twtelecom.dl.sourceforge.net/...g-1.2.5.tar.gz JPEG:jpegsrc.v6b.tar.gz 下载: FreeTDS:freetds-stable.tgz 下载:http://ibiblio.org/pub/Linux/ALPHA/f...tds-stable.tgz Cronolog:cronolog-1.6.2.tar.gz 下载:http://www.cronolog.org/download/cronolog-1.6.2.tar.gz Awstats:awstats-5.9.tgz 下载:http://heanet.dl.sourceforge.net/sou...wstats-5.9.tgz 首先安装gd 的jpeg 函数库 这里就安装了这三个图形扩展库 jpegsrc.v6b.tar.gz http://www.ijg.org/ 下载后 tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b/ ./configure --enable-shared make make test make install 注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库 libpng ./configure make make install freetype ./configure --prefix=/usr make make install 在配置环境变量的时候最好不要将安装文件指定到root用户文件夹下, /root/php5这个最好换成/usr/local/php5可访问的。 ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring=all --with-curl --with-gd --with-jpeg-dir=/usr/bin --with-freetype-dir=/usr --with-zlib /opt/php/php-5.2.6/ext/jpeg为编译过的扩展库路径 make 有的时候在make的时候会出现 libiconv_open error 解决办法 make ZEND_EXTRA_LIBS='-liconv' make install cp /usr/local/php5/bin/* /usr/bin # cp php.ini-dist /usr/local/php5/lib/php.ini(自动添加) 配置Apache服务的httpd.conf文件 *在LoadModule处添加 LoadModule php5_module module/libphp5.so(自动添加) *在DirectoryIndex处添加 index.php *在AddType application处添加 AddType application/x-httpd-php .php .phtml AddType applicatoin/x-httpd-php-source .phps ============== 修改 <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> 重新启动apache 我的发现了问题 cannot restore segment prot after reloc: Permission denied vim /etc/selinux/config SET"SELINUX=disabled" 注释掉其余所有行 重新启动apache ok! ============================== 添加启动脚本 vim /etc/rc.local 添加 /usr/local/mysql/bin/mysqld_safe --user=root & /usr/local/apache2/bin/apachectl start ================================== 添加服务脚本 httpd cd /etc/init.d vim httpd(编辑httpd脚本) 只需要修改 apachectl=/usr/local/apache2/bin/apachectl httpd=${HTTPD-/usr/local/apache2/bin/httpd} 这两行! service start/restart/stop --------------------------------- 添加服务脚本mysqld cd /etc/init.d vim mysql 脚本内容如下 #!/bin/bash # chkconfig: 345 87 13 # description: mysqld Daemon # httpd Startup script for mysqld server . /etc/rc.d/init.d/functions case "$1" in start) echo "starting mysqld_safe" /usr/local/mysql/bin/mysqld_safe --user=root & echo "start ok" ;; stop) echo "stoping mysqld_safe" kill `cat /data/mysql/localhost.localdomain.pid` #/usr/local/mysql/bin/mysqladmin -uroot -pmysecret shutdown echo "stop ok" ;; restart) echo "stoping mysqld_safe" kill `cat /data/mysql/localhost.localdomain.pid` #/usr/local/mysql/bin/mysqladmin -uroot -pmysecret shutdown echo "stop ok" echo "starting mysqld_safe" /usr/local/mysql/bin/mysqld_safe --user=root & echo "start ok" ;; *) echo "server mysqld {start|stop|restart}"; exit 1 esac ---------------- chmod -R 0755 mysqld chkconfig --add mysqld chkconfig --level 3 mysqld on 就以chkconfig 235 56 34为例,235表示该启动脚本对应的服务将在系统启动级别2, 3, 5级启动。而56表示其启动优先级为56,所谓的优先级,就是在rc脚本中出现在各个符号链接名中的数字。34 是终止优先级。 参考 chkconfig --list [name] chkconfig --add name chkconfig --del name chkconfig [--level levels] name <on|off|reset> chkconfig [--level levels] nam 参考了 http://www.linuxsir.org/main/?q=node/241