pennate 发表于 2018-11-20 11:32:38

apache+php+mysql安装配置


[*]  apache已经在linux里存在,查看apache版本信息及安装目录
  # apachectl -v
  Server version: Apache/2.2.3
  2.安装mysql,由于redhat Enterprise 5 中自带一个mysql的版本,需要先删除
  a. 查找已安装的mysql 版本:
  #rpm-qa | grepmysql (注意大小写,如果mysql 不行就换MySQL)
  在屏幕上将显示已安装的mysql包名如:mysql-5.0.77-3.el5 ;
  b. 将搜索出的包名卸载:
  #rpm -e--nodeps mysql-5.0.77-3.el5 (nodeps表示强制删除)
  再次查找该包名,如果没有结果输出则表明已将该版本的mysql卸载了
  c. 下载mysql:http://dev.mysql.com/downloads/mysql/5.0.html
  客户端:MySQL-client-community-5.0.92-1.rhel5.x86_64.rpm
  服务端:MySQL-server-community-5.0.92-1.rhel5.x86_64.rpm
  d.检查perl-DBI-1.52-2.el5.rpm是否安装,
  该包为是安装mysql的依赖,没它mysql安装不起,查看是否安装,如果安装了就不需要了,
  可以通过 #rpm -qa | grep perl*查看是否已经安装,该包在linux系统盘上可以找到,以下提供该包下载)
  e.安装mysql
  #rpm -ivh MySQL-server-community-5.0.92-1.rhel5.x86_64.rpm
  #rpm -ivh MySQL-client-community-5.0.92-1.rhel5.x86_64.rpm
  f.查看是否安装成功
  #netstat -ntpl
  显示3306端口开放表示服务安装成功
  #mysql
  能自动登陆,则已成功
  g.修改mysql root密码
  #/usr/bin/mysqladmin -u root password 'xxxxxx';
  #mysql -u root-p
  Enter password:xxxxxx
  出现mysql>表示登陆成功!
  h.对mysql用户设置远程访问权限
  方法1、改表法:登陆mysql后,更改“mysql”数据库里的“user”表里的“host”项,将“localhost”改“%”
  mysql>use mysql;
  mysql>update user set host ='%' where user ='root';
  mysql>select host,user from user;
  mysql>FLUSH PRIVILEGES
  方法2、授权法:假设允许用户username通过密码password从远程连接到mysql服务器

  mysql>GRANT ALL RRIVILEGES ON*.* TO username@'%'>  mysql>FLUSH PRIVILEGES;
  i.安装目录结构
  数据库目录:/var/lib/mysql/
  配置文件:/usr/share/mysql(mysql.server命令及配置文件)
  相关命令:/usr/bin(mysqladmin、mysqldump等命令)
  (*mysql的一种安全启动方式:/usr/bin/mysqld_safe--   user=root &)
  启动脚本:/etc/rc.d/init.d/
  1、下载
  到官网下载mysql-5.1.65.tar.gz(注意是源码包)
  2、解压
  tar -zxvf mysql-5.1.65.tar.gz
  3、建立目标文件夹
  mkdir /usr/local/mysql
  也就是说等下安装的mysql要安装到这个文件夹里面
  4、配置
  ./configure --prefix=/usr/local/mysql/
  在./configure时出现错误:error: No curses/termcaplibrary found
  下载安装相应软件包
  yum list|grep ncurses
  yum -y install ncurses-devel
  yum install ncurses-devel
  5、编译
  make
  6、安装
  make install
  7、启动
  MySQL服务并不会自动启动,还需要先初始化MySQL数据库,操作如下:
  cd /usr/local/mysql/bin
  sudo ./mysql_install_db --user=root
  注意,这里最后的root是指可以操作数据库的用户,可以是当前用户,也可以新建用户,与linux上的root用户是两回事,可以自己取一个名字
  ./mysqld_safe --user=root & 这条命令负责启动mysql服务的守护进程,此外最后的&是必须的,因为希望守护进程在后台运行
  这里的root就是刚才的那个
  8、为根用户创建密码
  ./mysqladmin -u root password ‘123456’
  如果root已经设置过密码,采用如下方法
  ./mysqladmin -u root password oldpass‘123456’
  9、测试
  mysql -u root -p
  会提示输入密码,就用刚才设置的密码
  123456
  如果出现mysql>,说明连接成功了,下面通过命令 创建一个数据库、建一个表,增加一条记录,为后面的测试准备
  mysql> create database gywtest;
  mysql> use gywtest;
  mysql> create table student(id int(4) not null primary keyauto_increment,stuname char(20));
  mysql> insert into student(stuname) values('Tom');
  注意每条命令后面有个分号,如果上面的都成功,后面就可以用这个测试。
  四、将PHP与MySql结合起来
  1、重新配置PHP,改变配置选项,只需重复PHP安装时的最后的三步configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效,Apache不需要重新编译。
  2、配置
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli=/usr/local/mysql/bin/mysql_config注意mysql_config 的路径
  3、编译 make
  4、安装 make installe
  5、测试 写一个页面test.php,放在apache的web目录下,测试上面用命令创建的数据库
  

  Fatal error:>  解决方法:
  /usr/local/php/bin/phpize 这里回车运行
  出错:
  Cannot find config.m4.
  Make sure that you run './phpize' in the top level source directory of themodule
  解决方法:
  PHP源码包文件夹下的EXT文件夹就是放置着目前版本的可用扩展,CD进去看看都有哪些你需要的?应该看到mysqli文件夹了吧~~~
  在当前目录下执行phpize
  #/usr/local/php/bin/phpize
  Configuring for:
  PHP Api Version:                   20090626
  Zend Modeule Api No:            20090626
  Zend Extension Api No:          220090626
  Cannot find autoconf. Please check your autoconf installation and the
  $PHP_AUTOCONF environment variable. Then, rerun this script.
  解决方法:
  yum install autoconf再次运行上面的命令即可。
  #./configure –prefix=/opt/mysqli –with-php-config=/opt/php/bin/php-config
  –with-mysqli=/opt/mysql/bin/mysql_config
  #make
  #make install
  安装完成后会有提示扩展所在目录路径,如:
  /opt/php/lib/php/extensions/no-debug-zts-20090626php
  所需的mysqli.so便会在此目录下,接下来修改/opt/php/etc/下的php.ini文件,加入mysqli扩展,即加入如下一行:
  extension=/opt/php/lib/php/extensions/no-debug-zts-20090626/mysqli.so
  这里还是会出现错误:
  解决不用扩展连接MySQL的方法。
  最终还是没有解决MySQLi连接的问题,但是可以使用MySQL数据库了,下面是测试程序
  
  ~
  2.安装php最新版,从http://www.php.net/downloads.php下载
  php-5.3.5.tar.gz
  安装php之前先安装libxml2:
  解压后进入目录:libxml2-2.7.8,然后执行:
  ./configure --prefix=/usr/local/libxml2
  Make && make install
  a.解压
  # tar -zxvf php-5.3.5.tar.gz
  b.安装
  # cd php-5.3.5
  # ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql
  其中--with-apxs2=/usr/local/apache/bin/apxs 是指向apache目录
  # make
  # make install
  # cp php.ini-production /usr/local/lib/php.ini
  c.配置
  # vi /usr/local/apache/conf/httpd.conf
  修改此文件,更改以下指令为:
  DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3
  ServerName12.34.56.78:80//这里的ip和端口号视实际情况而定
  Options Indexes FollowSymLinks
  AllowOverridenone
  Requireall granted
  //为安全起见,去掉"Indexes"
  增加LoadModule php5_module modules/libphp5.so
  LoadModule php5_module modules/libphp5-zts.so
  
  AllowOverride none
  Require all granted
  
  DocumentRoot"/usr/local/apache/htdocs"
  
  找到AddType处,并添加以下2行:
  AddType application/x-httpd-php .php .php3 .html .phtml .inc
  AddType application/x-httpd-php-source .php5
  AddHandler cgi-script .cgi .pl
  AddHandler php5-script .php
  vi /usr/local/lib/php.ini
  更改以下指令为:
  register_globals = On
  3.安装php碰到的问题
  a.configure: error: Cannot find MySQL header filesunder yes
  解决办法:安装MySQL-devel-community-5.0.92-1.rhel5.x86_64.rpm即可
  b.configure: error: Cannot find libmysqlclient under/usr.
  解决办法:cp /usr/lib64/mysql/*/usr/lib/mysql/
  这个问题也应该是安装64位的才会出现。
  4.重新安装apache2.3.8
  需先安装以下包,用于解决问题:apache2.3.8编译出错 configure: error: APR-util not found.Please read thedocumentation
  a.apr-1.4.2.tar.gz
  # ./configure –prefix=/usr/local/web/apr
  # make
  # makeinstall
  b.apr-util-1.3.10.tar.gz
  #./configure –prefix=/usr/local/web/apr-util–with-apr=/usr/local/web/apr
  #make
  #make install
  c.pcre-8.10.tar.gz
  #./configure –prefix=/usr/local/web/pcre
  #make
  #make install
  最后安装apache
  apache
  yum -y install gcc gcc++ zlib-devel
  在源码安装apache之前,我们要先卸载系统中,已经通过rpm包安装的apache。如下:
  rpm -qa |grep httpd
  rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64
  rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64
  安装之前需要先安装apr apr-util pcre,因为apache需要三个的支持
  tar -zxvf httpd-2.2.tar.gz
  cd httpd-2.2
  ./configure --help
  #./configure -prefix=/usr/local/apache -enable-rewrite -enable-so-with-apr=/usr/local/web/apr -with-apr-util=/usr/local/web/apr-util -with-pcre=/usr/local/web/pcre
  #make
  #make install
  apache2.3.8安装成功
  apache加入系统服务
  为了让apache开机启动,我们可以把apachectl启动脚本加入rc.local文件中,如下:
  echo "/usr/local/apache2/bin/apachectlstart">>/etc/rc.local
  我们也可以通过把apache加入系统服务,来启动apache。把apache添加为系统服务有两种方法,第一种是通过chkconfig进行添加,第二种是直接添加系统的各个启动级别。
  我们先来介绍第一种方法,修改启动httpd脚本加入如下两行命令,如下:
  #chkconfig: 2345 70 60
  #description: apache
  说明:
  chkconfig: 2345 70 60中的2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5是图形界面X。
  70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。60是指系统关闭时,脚本的停止顺序号。
  description: apache关于脚本的简短描述。
  使用chkconfig进行添加,如下:
  chkconfig --add httpd
  chkconfig |grep httpd
  chkconfig --add httpd命令的作用是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d到/etc/rc.d/rc6.d目录下。如下:
  find /etc -name *httpd
  开启apache开机启动,使用如下命令:
  chkconfig httpd on
  chkconfig |grep httpd

页: [1]
查看完整版本: apache+php+mysql安装配置