一、说明
以前配置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
如图:
二、配置
1.php配置
首先,由于php7.0.2是用vc14编译,所以需要vc14的支持,如果您的电脑安装了vs2015则可忽略,否则你需要到这里https://www.microsoft.com/en-US/download/details.aspx?id=48145下载vc14,如下图所示:
然后,将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,弹出启动失败错误提示:
打开系统事件查看器查看系统日志,发现如下错误:
还差最后步,这一步和其它版本不一样,我们需要给php添加环境变量,
确定,启动apache24服务,成功。在浏览器里输入localhost回车
如果看到这个页面,恭喜你,成功了。
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目录的路径:
给系统变量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
修改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密码