win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

原文:win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

一、说明

  以前配置apache+php+mysql都是参考网上的,一般都没有什么问题。最近公司有个任务需要在工作电脑上配置apache+php+mysql, 于是到它们的各个官网上下载了最新的版本,按照网上一步一步走,但是发现并没有那么顺利,中间出了各种问题,到处找资料,还好最后都解决了,现在写下来给大家参考一下。

  apache: http://httpd.apache.org/download.cgi   version: 2.4.18

  php: http://www.php.net/downloads.php   version: 7.0.2

  mysql: http://dev.mysql.com/downloads/mysql/   version: 5.7.10

  如图:

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

二、配置

1.php配置

  首先,由于php7.0.2是用vc14编译,所以需要vc14的支持,如果您的电脑安装了vs2015则可忽略,否则你需要到这里https://www.microsoft.com/en-US/download/details.aspx?id=48145下载vc14,如下图所示:

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  然后,将php目录下的php.ini-development文件复制一份,并重新命名为php.ini作为php的默认配置文件,按以下步骤进行修改:

a.添加扩展

  只需去掉相应行前面的";"

  extension=php_curl.dll

  extension=php_gd2.dll

  extension=php_mbstring.dll

  extension=php_mysqli.dll

  extension=php_pdo_mysql.dll

  extension=php_pdo_odbc.dll

  extension=php_xmlrpc.dll

b.配置目录

  修改扩展目录,请提前在php目录下创建custom文件夹,然后在custum文件夹下再创建两个子文件夹,分别为upload和session

  ; On windows:
  extension_dir = "D:/Program Files/apmServer/php-7.0.2-Win32-VC14-x64/ext"

    修改上传目录

  ; http://php.net/upload-tmp-dir
  upload_tmp_dir ="D:/Program Files/apmServer/php-7.0.2-Win32-VC14-x64/custom/upload"

  修改session目录

  session.save_path = "D:/Program Files/apmServer/php-7.0.2-Win32-VC14-x64/custom/session"

2.apache配置

  打开apache目录下conf文件夹中的http.conf文件,按以下步骤修改配置:

a.设置apache服务器根目录

  Define SRVROOT "D:/Program Files/apmServer/httpd-2.4.18-x64-vc11/Apache24"
  ServerRoot "${SRVROOT}"

b.设置侦听端口

  Listen 80

默认是80,通过在netstat -ano命令查看系统80端口是否被占用,如果被占用,请更换一个没有被占用的端口

c.加载php模块

  在#LoadModule vhost_alias_module modules/mod_vhost_alias.so后面加上:

  LoadModule php7_module "D:/Program Files/apmServer/php-7.0.2-Win32-VC14-x64/php7apache2_4.dll"
  PHPIniDir "D:/Program Files/apmServer/php-7.0.2-Win32-VC14-x64/"
  AddType application/x-httpd-php .php .html .htm

注意:这里要是加载的php7模块

d.安装apache服务

  以管理员身份打开命令行cmd,进入apache的bin目录,输入命令:httpd -k install -n apache24, 显示安装成功,但是启动出错

  查看apache日志,发现只有这一行:

  [Sat Jan 23 20:33:04.958214 2016] [ssl:warn] [pid 7236:tid 344] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name

  这是一个警告,并不是错误,似乎没有什么用

  打在服务,右键启动apache24,弹出启动失败错误提示:

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  打开系统事件查看器查看系统日志,发现如下错误:

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  还差最后步,这一步和其它版本不一样,我们需要给php添加环境变量,

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  确定,启动apache24服务,成功。在浏览器里输入localhost回车

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  如果看到这个页面,恭喜你,成功了。

3.MySQL配置

  a.修改配置文件

  将mysql目录下的my-default.ini文件复制一份,并命名为my.ini作为默认配置文件,主要配置如下: 

  [mysql]
    default-character-set=utf8

  [mysqld]

    basedir = "D:/Program Files/apmServer/mysql-5.7.10-winx64"

    datadir = "D:/Program Files/apmServer/mysql-5.7.10-winx64/data"
    port = 3306

    max_connections=200
    character-set-server=utf8
    default-storage-engine=INNODB
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

b.安装sql服务

  添加环境变量: MYSQL_HOME   值为mysql目录的路径:

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  给系统变量Path增加值:%MYSQL_HOME%\bin;

  从命令行cmd中进入mysql目录下的bin路径,执行命令 mysqld --install,执行命令net start mysql启动mysql服务,结果失败

  这是因为mysql5.7安装包中不带data文件夹,就算我们手动创建data文件夹,mysql启动还是失败,网上说可以从低版本的mysql中拷贝过来可以,本人没试。

  但是网上还有另一种方法:执行命令mysqld --initializ既可以自动创建data文件夹及需要的初始数据,亲测过可以。

c.测试mysql

  由于上一步中使用mysqld --initializ命令产生的数据中root账户的密码是随机的,所以我们没办法直接得到root的密码,也就不能登入使用mysql

  解决方法:

  打开my.ini配置文件,在最后加上这一行:#skip-grant-tables,即使用mysql时跳过授权表,也就是无需登录也能使用mysql。保存my.ini,重新启动mysql服务。

  在命令行中输入命令mysql,回车,进入mysql

  win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

  修改root密码:update user set password=password('your password') where user='root';
      不要忘记写入数据库: flush privileges;

  然后退出mysql,重新登录: mysql -u root -p,输入刚才设置的密码,回车成功。

  由于mysql的安全策略,此时还不能使用该账户执行其它操作,必须得重新改一次密码才可以。

  修改密码:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');此时会让你输入旧密码才能执行。

  

  到此所有配置成功!

  总结2点与以前旧版本不一样的地方:

  1.php配置后需要增加系统变量

  2.mysql需要命令生成初始化数据,并且需要手动更改root密码   

  

上一篇:SQL In的替换


下一篇:Spring源码深度解析-《源码构建》